Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

CSCI 3081W: Program Design and Development

Final Project: New Feature Extension

Fall 2022

Subject to minor changes

New Feature Checkoff due date: Wednesday, November 23th at 11:59 pm           Writing, Coding, and Presentation due date: Friday, December 16th at 11:59 pm

Goal

Design and implement new features to add to the ongoing project, i.e. initial lab10 code.

Overview:

In this homework assignment, you will apply all the concepts learned so far from the beginning  of design patterns to being able to work in a sprint (workshop 6). Consider the lab project as an ongoing project in your workplace. As a team of agile coders, you have to work in ~4 weeks time to impress your product owners (the instructors and TAs). You have to design a feature addition to this project, and come up with a good design pattern which leads to seamless integration. The report you submit will inform the reader about your feature (this refers to the checkoff). The implementation must use a pattern which creates a robust design and works well with any old and future features. The video should show a demo of this feature, before deployment to DockerHub.

What you'll learn this assignment:

1.   Designing a new feature for a project.

2.   Applying agile skills by working in a sprint.

3.   Creating a UML for a new feature.

4.   Coding the new feature for an existing codebase.

5.   Presenting the implementation through a video.

Instructions:

Work with your team members but be sure that you understand the solutions you come up with  and not one person is doing all the work. If you need help, you can talk with your TAs in your lab section.

Designing a New Feature:

The feature that you pick must be significantly interesting!

We recommend that you get checked off before coding your idea!

We also have a Gradescope submission for getting your idea checked off (due 11/23)!

The checkoff is required!

Examples:

1.   Decorator - battery wrapped around the drone Factory - add recharge stations

Logic must be updated too

2.   Singleton - data collection - then output to .csv and analyze the data that you collected

3.   If you come up with another idea and want to get it checked off as valid” , please talk to one of your TAs!

Requirements (whole project)

Coding

-     Use design pattern to implement your new feature

-     Brainstorm different design patterns, your first choice may not always be the best one.

-     If mid-way through your coding process, you see a better way to implement things, by all means try it out

-     Place all of the newly created classes inside the libs/transit folder

Documentation

-     Doxygen

-     Doxygen for ALL of the classes (existing and newly created)

-    You are not required to do doxygen for the classes under these folder

-     dependencies/

-     libs/routing/

-     libs/transit/util/

-     apps/

-     Doxyfile and the generated materials from doxygen (i.e., index.html,...)

-     Google Code Style

-     Code Style for ALL of the classes (existing and newly created)

-    You are not required to do code styling for the classes under these folder

-     dependencies/

-     libs/routing/

-     libs/transit/util/

-     apps/

-    Write Up

-     File Name: README (.pdf, .doc, .md, etc … ) (should be located in your GitHub repository)

-     Team number, member names, and x500.

-    What is the project about (overview of the whole project, not just the hw4)?

-     How to run the simulation (overview of the whole project, not just the hw4)?

-    What does the simulation do (overview of the whole project, not just the hw4)?

-     New Feature

-    What does it do?

-    Why is it significantly interesting?

-     How does it add to the existing work?

-    Which design pattern did you choose to implement it and why?

-     Instruction to use this new feature (if the new feature is not user interactable, please mention this as well)

-     Sprint retrospective

-    UML

-     Create UML diagram depicting ONLY your new feature

-     Upload this to the github repo and also display this in the aforementioned README file

Docker

-     Upload and push your final code to the docker

-     Put this link inside the github README (be sure to state what the link is about).

Video Presentation (~5 min)

-     Explain the new feature that your team has implemented

-    What is it?

-    Why is this new feature important?

-    Which design pattern did you use?

-     Demo

-     Optional: Source code if you have more time

-     Everyone in the team must talk with video cameras on

-    You can upload this video to any online storage space and put the link that will redirect toward your video inside the README (be sure to state what the link is about). Make  sure we all have access to this video (i.e., teaching staff).

Peer Review

-    Review your teammates by filling out the form below

Submission (due Dec 16th)

-     Gradescope:

-     github repo link

-     Github:

-     Source Code

-     Doxygen

-    Write up (README file)

-     Docker link

-    Video presentation link

-    UML

-    Peer Review: Fill out this form: https://forms.gle/4gN8p4Noe239tqw38

Grading Breakdown:

-     Coding: 45%

-     Documentation: 40%

-     Presentation: 5%

-     Docker: 5%

-     Peer review: 5%

Important:  If your code does not compile, you won’t receive credit for the coding section.