COM661 Full Stack Strategies


COM661 Full Stack Strategies and Development

Over the course of the module, we construct the Biz Directory - a sample full stack application built around a database containing information on a range of businesses and a collection of user-contributed reviews.  The assignment tests your understanding of this material by having you build your own full stack application, based around a data set of your choice. You can obtain your data set from any source, but you should modify its structure (if required) to provide the most appropriate fit for your functionality.

Your application can be in any field but must be driven by a back-end Python Flask API that interfaces with a MongoDB database and must provide opportunities to demonstrate all of the main database operations (store, retrieve, modify, delete).  The front-end of the application will be developed in Angular.

The primary focus should be on usability and functionality.  The application should fulfil a well-defined need and should provide a quality user experience.

Marking

Submissions will be marked according to the following criteria

Database structure and appropriateness to the application     
Range and complexity of database queries    
Provision of API endpoints with appropriate use of HTTP verbs and status codes
Use of individual user accounts and appropriate authentication
Evidence of automated API testing
Usability and appropriateness of front-end application    
Demonstration of a range of Angular directives
Code structure and presentation
Extension of functionality from the Biz Directory example provided in class
Provision of appropriate documentation    

This assignment is worth 100% of the total mark for the module

Effort

This assignment has a total notional workload of 40 hours.

Submission

The deadline for submission is Friday 15th December 2023.  All work should be submitted to the Submission link in the Assessment area of Blackboard and should consist of the following elements:

A Zip file containing all code files for the back-end API.

A Zip file containing all code files for the front-end application.
Note: Please delete the node_modules folder from your front-end application before creating the Zip file – but ensure that your package.json file contains all instructions needed to re-build the application.

A Zip file containing a JSON file for each MongoDB collection in the database. JSON files should be generated by running the mongoexport command for each collection.

A video submission that provides a demonstration of your application in use with appropriate voiceover. Be sure to demonstrate all functionality (both front-end and back-end) that you want to draw attention to.  The maximum length of the video is 5 minutes.  

A PDF file containing 
oa complete code listing of the back-end API 
oa summary of all API endpoints
oa printout of the result of running an automated collection of tests on the API through Postman
oa printout of the API documentation generated through Postman

A PDF file containing
oCode listings for the front-end application files that you have developed or modified (you do not need to provide listings of files that are part of the Angular application structure that you have not modified)

A completed self-evaluation sheet on which you provide a critical appraisal of your submission against a range of marking criteria.

A video demonstrating the preparation of a submission pack for the sample Biz Directory application will be made available on Blackboard. 

Feedback

An interim submission during Week 8 (Friday 17th November) will consist of a short summary of your data set, application domain and implementation plan. This submission is for feedback only (i.e., no marks are awarded for this) and feedback on this will be provided through Blackboard within one week.  

Individual feedback on each final submission will be provided in written form under the categories presented in the marking criteria above.  

Feedback on final submissions will be returned by Tuesday 23rd January 2024.


Marking Scheme

You should be able to judge the level of your submission by reference to the following criteria.  Note that the Biz Directory example referred to here, relates to the state of the application at the end of Practical D5

1st Class (70%+)    The application will be fit-for-purpose and usable for the intended task.  Functionality will be in excess of that demonstrated by the Biz example.  The application will provide realistic examples of the CRUD database operations, and will be free from bugs.

2:1 (60-69%)    The application will have a level of functionality similar to that of the Biz Directory example but will be in a different application area with a different data set.  There may be minor usability issues or functionality deficiencies that prevent it from being truly fit for the intended purpose.  The application should be free from major bugs that prevent elements of functionality from running properly.

2:2 (50-59%)    The application will be similar to the Biz Directory example in terms of working functionality and data structure but will suffer from bugs or performance issues that prevent it from being a usable application.  There will be at least some evidence that the developer has attempted to extend the basic functionality.  The application may have significant usability issues.

3rd (40-49%)    The application will be heavily influenced by the Biz Directory example, with extended re-use of code without modification.  There will have been no visible attempt to enhance the functionality and there may be significant bugs that prevent it from working properly.

Fail (<40%)    The application will suffer from major bugs that prevent it from being properly examined.  There will have been no attempt to enhance functionality from the Biz Directory
 

2.2 Multi-Class CNN This section describes the multi-class implementation used to differentiate and classify four histopathological categories (ductal, lobular, mucinous, and papillary). The implementation followed the same engineering principles as the binary pipeline but used a categorical output and class-aware design choices to address the increased label complexity. 2.2.1 Data and Preprocessing The multi-class dataset was found on “BREAST CANCER HISTOPATHOLOGICAL DATABASE (BreakHisv1).” This dataset is modified to only include four types of malignant breast tumors, which are the four types of breast cancer used in training the model. The data structure is organized by breast cancer types, individual patient histopathology files, and the zoom factor of tissue screening. It is then assembled into a data frame of file paths and labels (class mapping: ductal carcinoma = 0, lobular carcinoma = 1, mucinous carcinoma = 2, papillary carcinoma = 3). The dataset contained 5,429 images distributed unevenly across classes (ductal: 3,451; mucinous: 792; lobular: 626; papillary: 560). An 80/20 train/validation split yielded 4,343 training and 1,086 validation samples. Images were loaded on-the-fly via ImageDataGenerator with rescaling (1./255) and light augmentation (rotation range=15, width/height shifts up to 0.1, horizontal flip). This on-the-fly strategy reduces memory pressure and preserves I/O efficiency for large image collections. Model architecture and training The multi-class CNN uses four convolutional blocks with progressively larger filters (32 → 64 → 128 → 256), each block containing Conv2D→BatchNormalization→MaxPooling2D→Dropout (0.25). After flattening, dense layers of 512 and 256 units with batch normalization and 0.5 dropout are applied; the final layer is Dense. The model is compiled with the Adam optimizer and categorical cross entropy loss to support mutually exclusive class prediction. Two experiment configurations exist in the codebase: (a) the original configuration (Batch Size = 32, Epochs = 30, LR = 0.001) that produced the run log included with this submission, and (b) a speed-optimized variant (Batch Size = 64, Epochs = 15, LR = 0.002) for faster iteration. Evaluation and Diagnostics Model evaluation uses a held-out generator and sklearn.metrics.classification_report and confusion_matrix to report per-class precision, recall, and F1-score; a seaborn heatmap visualizes the confusion matrix and matplotlib plots training/validation accuracy and loss. The run log for the original configuration reports a peak validation accuracy of 0.6529 (epoch 4) and a recorded training accuracy of 0.6967 (epoch 5) during the captured epochs; the full evaluation (per-class metrics and confusion-matrix counts) is then produced and included in the presentation. 2.2.4 Practical observations and improvements The dataset’s class imbalance (ductal dominance) is the main challenge for multi-class discrimination. Remedies to consider include class-weighted loss or oversampling of minority classes, focal loss to mitigate easy negative dominance, stronger augmentation targeted at minority classes, or stratified patch sampling. The model’s dense head (flatten → 512 units) yields ~19.4M parameters and can be prone to overfitting; replacing the flatten + dense stack with a GlobalAveragePooling2D followed by a small dense head or applying more aggressive dropout or L2 regularization may reduce overfitting. The literature suggests further gains from transfer learning (pretrained EfficientNet/ResNet backbones or DenTnet) and patch-level context models (BiLSTM on ordered patches) for cases where contextual arrangement of tissue is diagnostic. Step-by-step processing pipeline: Assemble DataFrame of filepaths and labels and report class counts. Create ImageDataGenerator instances for training (rescale + augmentation) and validation (rescale). Split into train/validation via train_test_split(..., stratify=df['label']) and create flow_from_dataframe generators. Build CNN (Conv blocks → Flatten → Dense → Softmax), compile with Adam + categorical_crossentropy. Train with model.fit using EarlyStopping and ReduceLROnPlateau callbacks; save the best model. Evaluate with a test generator: compute predicted classes, print classification_report, plot confusion matrix, and save accuracy/loss curves.分析multi-CNN模型的作用英文分析优点
09-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值