iP:
A-BetterGui
, A-Personality
, A-MoreErrorHandling
, A-MoreTesting
, A-AiAssisted
tP:
A-BetterGui
, A-Personality
, A-MoreErrorHandling
, A-MoreTesting
, A-AiAssisted
master
branch when ready fully done.A-AiAssisted
tag to the latest commit of your repo without needing any further work.AI.md
file, similar to the iP.AI route.Duke
(as required by Level-0)docs
folder.
docs
folder and named Ui.png
exactly (even if the file format is not png
, name it png
)Ui.png
should show the full GUI window (i.e., not just the part containing the chat messages).Ui.png
should be a single GUI window (i.e., do not stitch multiple screenshots together).Ui.png
correctly and set up the product website correctly, you should be able to see your screenshot in the iP Showcase page (a link to the iP Showcase page is also available in the top navigation menu → Links) and you should be able to access the image using the link https://{your user name}.github.io/{repo name}/Ui.png
(e.g., https://johndoe.github.io/ip/Ui.png
).java -version
command to confirm the terminal is using Java 17../gradlew clean shadowJar
command to create the JAR file.java -jar "JAR_FILE_NAME"
command.v0.2
) and upload the JAR file.
Connecting the dots so far ...
Previously, we mentioned the following two project planning strategies:
We should have a clear overall direction.This ensures we always head in the right direction, even if the final product is not defined precisely yet. An iteration should start by defining a precise target for it, aligned with the project direction. This ensures we always have a concrete target to aim for.
Last week,
What's happening this week:
This week, we focus on two fronts:
Things to note:
Why?: So far, we have user stories we want to include in the MVP version. But user stories simply tell us user needs. To move towards a product design, we need to design product features of the product can fulfill those user needs.
Submission: Note down the feature list in your online project notes document.
This task is time-sensitive. If done later than the deadline, it will not be counted as 'done' (i.e., no grace period).
Deadline: Recommended to finish by the regular weekly project deadline (i.e., before the next weekly briefing), but given the iP final submission is due this week, you may take until Sunday (Sun, Sep 22nd 2359) to submit this.
Why? In addition to helping towards PS2, this deliverable forces you to make some fine-grained product design decisions early, thus giving you a better idea about the complexities that lie ahead, and hence, a better sense of the effort that will be required.
Task: Collate into a document the complete detailed description of the intended behavior of the MVP version of the product.
Feature: Name of the feature e.g., Add contact
Purpose: What it does
Command format: The precise command format of the command.
Example commands: (to show how the command is used)
For each parameter, specify:
John Doe
same as john doe
?Yes, making these decisions is not easy -- and that's why we want you to think about them now rather than later. Feel free to discuss these validation rules in the forum.
Outputs: Precise expected outputs when the command,
Duplicate handling: What rules are used to determine if two contacts are duplicates? e.g., is having the same name enough for two contacts to be considered duplicates, or all details need to be the same?
How does the application react to such duplicate entries? Reject or accept? Why?
Relevant UI mock-ups (unless the UI will be exactly the same as AB3): they can be hand-drawn or created using a tool such as PowerPoint, PlantUML, Figma, etc. -- they can be very low-fidelity mock-ups, as they are meant to be temporary
Recommended: Decide priorities of finer aspects of features, for example, as must-have (to implement in the MVP) and nice-to-have (i.e., to implement in the MVP only if there is time)
e.g., you can decide one date format that is to be supported in user commands as must-have and two other formats as nice-to-have.
It is OK to make compromises when making product decisions -- every design option has costs and benefits, and sometimes, costs outweigh the benefits.
For example, it is fine to restrict the person name to a certain length and a character set even if it is theoretically possible for those restrictions to conflict with some rare real-world person names. But you need to be aware of such conflicts, justify the restriction (e.g., ease of implementation/display), and know how users can work around such a conflict should they encounter it (e.g., if you app doesn't allow two contacts to have the same name but the user need to store two contacts which are different people with the same name, what should the user do?).
You are welcome to (but not required to) follow AB3 when defining the behavior of the new features e.g., use similar command formats, input validation rules, error message formats.
{team-id}.pdf
e.g., CS2103-T09-2.pdf
, and upload to Canvas.Recommended: Divide among team members so that each person does a non-trivial amount of documentation; preferably based on enhancements/features each person would be adding e.g., If you are the person planing to add a feature X, you should be the person to describe the feature X in the User Guide and in the Developer Guide.
Reason: In the final project evaluation your documentation skills will be graded based on sections of the User/Developer Guide you wrote.
If you are not sure what we mean by 'enhancements/features each person would be adding' mentioned above, see the panel below for our recommendation on how to divide the tP work:
Ideally, you should do this task in this week, but you may take an extra week (i.e., by week 7) to finish.