Iteration 1


These are the deadlines for this iteration.

Upload Requirement Specifications (SRS)Thu10/111:00 PM
Upload UML Class DiagramThu10/111:00 PM
Create Project PlanningThu10/111:00 PM
Deliverable (source code of a working app)Tue10/611:00 PM

In your group repo, there is a folder named docs under which there is the file. Use this to write the SRS for your project idea. This will be similar to what you did in HW1.


You have until Thursday 10/1 11pm to complete and turn this step in.

Class Diagram

Add image file(s) named class_diagramX under the docs folder (X being 1, 2, 3, ...). Use any common image format you like e.g. jpg, jpeg, png, bmp etc. The image(s) should provide the UML class diagram of your project. This does not have to be complicated for now. Start Simple! You will refine/enhance this as you make progress through the iterations. Though, while desiging your system, have in mind good design characteristics that we talked about in class: high cohesion and low coupling!


The class diagram image file(s) must be uploaded in your repo under docs folder; do not link images!


You have until Thursday 10/1 11pm to complete and turn this in.

Project Planning: Giuthub Project Board

You need to plan out your tasks using Github Project. Open your project repo on Github, open Project tab, and create a new project named Project Backlog. Leave Template as None. Create three columns: 1) "It1-To Do" with preset To do 2) "It1-In Progress" with preset In Progress, and 3) "It1-Done" with preset Done. You will need to keep the colmuns updated as you develop your app. List all your to do tasks extracted from the user story or user stories you plan to finish for iteration 1 under the "It1-To Do" column. When you start working on a task, move it under the "It1-In Progress" column, and when it is completed list it under the "It1-Done" column.


You do not need to have a long list of tasks to complete for iteration 1. Aim low and hit! Pick one or two simple user stories, create a list of tasks to deliver those user stories and get to work! The primary idea here is to get into the habit of leveraging Github Project to document your work items and keep track of the progress.


Note there is not necessarily a one-on-one mapping between a user story and a task. To implement a user story, you might need to complete a number of tasks, or a task might serve more than one user story, or might not even be related to any particular user story. Use your columns for the tasks that are actively on your project's radar.


It is a good idea to connect/convert your project cards to Github issues, but it is not a requirement. At minimum you need to have the three columns and they must be kept updated at all times.


Aim to finish at least one user story by the end of Iteration 1 (Tuesday 10/6 11 PM). At the end of iteration 1, you must deliver a software that does what you have listed in the iteration backlog. Break things down and each person in the group must be responsible for a number of tasks/user stories. Be a team player. Commit/push often. Keep you project backlog and design (class diagram) current.


You must inculed a at the top level of your project folder that serves as a manual for your project. I, as the user of your app, should be able to get an idea what this app is about and be able to run and use it by looking at


Write JUnit tests for your implementations as much as you can. We will not require you to write tests, but writing them are strongly recommended.


We will consider your last commit (i.e. last push to your group repo) by Tue 10/6 11 PM as your submission for this iteration.

Gradescope submission not needed!

You do not need to submit to Gradescope for iteration submissions. We use Gradescope for homeworks only.