Skip to content

Project Breakdown

Isaac Joffe edited this page Dec 4, 2023 · 24 revisions

Part 4

The following outlines where to find each of the submission deliverables for Project Part 4.

Addressing Feedback

Address any TA feedback on the previous project part.

The only feedback received was that we should resolve the launch bug, which has been completed.

Code Base of Prototype

Your source code will be inspected. The code should conform to Java coding conventions. Maintain the source code in your source repository.

All source code is high quality and has useful comments. The current project supports all 22 of the provided user stories (3.1, 3.2, 3.3, 3.4, 3.5, 4.1, 4.2, 4.3, 5.1, and 5.2 in addition to the original 12), representing all of the application's functionality. Note that the free API key used for barcode lookup (US 5.2) will expire on December 16th or after about 20 more uses; if this feature stops working, please contact us and we can set up a new free API key.

Code Documentation

For each source file, you should have a brief introductory comment describing its purpose or role within the application or a design pattern, as well as any currently outstanding issues. Provide Javadoc interface documentation for your model classes and their public methods (at least).

Each and every class and method in our source code has a JavaDoc. Since there is only one class per file, this leading JavaDoc outlines the purpose of the file within the application.

Test Cases

Write runnable tests for your model and control classes. Provide intent tests for the requirements you have done. Deliver the test code to your source repository. If you have test data files, also include those. Test data should be realistic.

Functionality that does not rely on the Android ecosystem has been validated through unit tests. The overall behavior of the application has been verified through Android UI tests. All UI tests were made and ran on the Pixel 6 with an API level of 34. Note that to run the UI tests utilizing photos, you must manually take a picture through Android's camera to save it to your gallery. All tests pass.

Screenshot 2023-12-03 202719 Screenshot 2023-12-02 160711 Screenshot 2023-12-02 141811 Screenshot 2023-12-02 144851 Screenshot 2023-12-02 113830 Screenshot 2023-12-03 083246

Object-Oriented Design

Update your object-oriented design using a UML class diagram (or diagrams), including details on key attributes and methods. Add notes as appropriate to clarify. Include notes on the use of design patterns among the classes.

UML diagrams documenting our object-oriented design are available. This page also contains some details about the design patterns used.

Product Backlog

Update the requirements as appropriate. Note which user stories are done at this checkpoint.

We have been keeping track of user stories and other tasks in our GitHub Project page.

User Interface Mockups and Storyboard

Update these diagrams as appropriate.

These diagrams have been updated. Both the original and revised versions of the CRC Cards and UI Storyboards are available.

Sprint Planning and Reviews

Maintain a record of what user stories are planned for each weekly sprint at its start, including who is to work on them. For each intermediate week, in the lab, have a sprint review with your TA mentor and all team members present to review the completed user stories.

We have been meeting twice per week and keeping a record of attendance, discussion topics, and decisions made. We have interacted with the laboratory TA to receive feedback and demonstrate initial prototypes.

Demonstration

Present an engaging demo. The final prototype should show the usability of its user interface and the degree to which its functionality fulfills the user's needs. All team members must contribute to the demo.

This will occur in the laboratory on December 6th. A sample demo video is included below.

1d3aba16-7532-4614-bb7a-03c49efceae5.mp4

Tool Use

Regular and consistent use of GitHub by all team members to share files for the project deliverables, to effectively track issues, and to manage tasks.

All team members have been actively contributing to our repository. We have all made commits and have been using many features of GitHub, including pull requests, code reviews, branching and merging, issues, projects, milestones, and more.


Part 3

The following outlines where to find each of the submission deliverables for Project Part 3.

Addressing Feedback

Address any TA feedback on the previous project part.

The only feedback received was that we should integrate the GitHub milestones feature into our project -- we made this change.

Code Base of Prototype

Your source code will be inspected. The code should conform to Java coding conventions. Your prototype should provide something tangible to the user, supporting about half the requirements. Maintain the source code in your source repository.

All source code is high quality and has useful comments. The current project supports 12 of the 22 provided user stories (1.1, 1.2, 1.3, 1.4, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 6.1), representing over half of the application's functionality.

Code Documentation

For each source code file, you should have a brief introductory comment describing its purpose or role within the application or a design pattern, as well as any currently outstanding issues. Provide Javadoc interface documentation for your model classes and their public methods (at least).

Each and every class and method in our source code has a JavaDoc. Since there is only one class per file, this leading JavaDoc outlines the purpose of the file within the application. Issues in generating JavaDocs were resolved by consulting Stack Overflow.

Test Cases

Write runnable tests for your model and control classes. Provide intent tests for the requirements you have done. Deliver the test code to your source repository. If you have test data files, also include those. Test data should be realistic.

Functionality that does not rely on the Android ecosystem has been validated through unit tests. The overall behavior of the application has been verified through Android UI tests. All UI tests were made and ran on the Pixel 6 with an API level of 34.

Object-Oriented Design

Document your object-oriented design using a UML class diagram (or diagrams), including details on key attributes and methods. Add notes as appropriate to clarify. The diagram(s) will likely evolve.

UML diagrams documenting our object-oriented design are available.

Product Backlog

Update the requirements as appropriate. Note which user stories are done at this checkpoint.

We have been keeping track of user stories and other tasks in our GitHub Project page.

User Interface Mockups and Storyboard Sequences

Update these diagrams as appropriate.

These diagrams have been updated. Both the original and revised versions of the CRC Cards and UI Storyboards are available.

Sprint Planning and Reviews

Maintain a record of what user stories are planned for each weekly sprint at its start, including who is to work on them. For each intermediate week, in the lab, have a sprint review with your TA mentor and all team members present to review the completed user stories.

We have been meeting twice per week and keeping a record of attendance, discussion topics, and decisions made. We have interacted with the laboratory TA to receive feedback and demonstrate initial prototypes.

Demonstration

During your team's assigned lab section after the due date (or possibly at a mutually arranged time), you must demo your working prototype to your TA mentor. All team members have to attend the demo.

This will occur in the laboratory after reading week.

Tool use

Regular and consistent use of GitHub by all team members to share files for the project deliverables, to effectively track issues, and to manage tasks.

All team members have been actively contributing to our repository. We have all made commits and have been using many features of GitHub, including pull requests, code reviews, branching and merging, issues, projects, milestones, and more.

Clone this wiki locally