- Add Increments:
A-BetterGui
,A-Personality
,A-MoreErrorHandling
,A-MoreTesting
,A-AiAssisted
- Finalize the features
- Set up a product website
- Submit the final version Fri, Sep 20th 2359
1 Add Increments: A-BetterGui
, A-Personality
, A-MoreErrorHandling
, A-MoreTesting
, A-AiAssisted
- As before, we recommend (but not require) that each increment is done as a separate branch and merged to the
master
branch when ready fully done.
- If you are already following the iP.AI route, you may add the
A-AiAssisted
tag to the latest commit of your repo without needing any further work. - Otherwise (i.e., if you haven't been using AI tools in the iP until now), the increment below is an opportunity for you to use the iP to explore how AI tools can help with programming tasks. If you take it up, in places where you use AI-assisted code, give some details (e.g., which tool you used how it helped) as a code comment. Alternatively, you can add an
AI.md
file, similar to the iP.AI route.
2 Finalize the features
- Ensure the product can handle common errors , such as the user making an unintentional error in the command, or the data file not being found in the expected location.
- Ensure that the name of the product name is not
Duke
(as required by Level-0)
and the name is shown correctly everywhere it appears in the UI e.g., title bar of the GUI.- Reminder: You may give the product any name, but do not rename the repo.
- Reminder: You can give the chatbot any personality (there is no need to follow the exact command/response formats given)
- Remember to give credit for any code you reused or solutions you adopted from others. Reuse without giving credit is plagiarism and will be reported to the university for disciplinary action.
3 Set up a product website
- Add a representative screenshot of the product to the
docs
folder.- The file should be in the
docs
folder and namedUi.png
exactly (even if the file format is notpng
, name itpng
) 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).- Ideally, the product name should visible in the screenshot e.g., in the title bar of the Window
- Also note the tips given in the panel below:
- The file should be in the
- Add a brief User Guide (UG)
- If you added the
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 linkhttps://{your user name}.github.io/{repo name}/Ui.png
(e.g.,https://johndoe.github.io/ip/Ui.png
).
4 Submit the final version Fri, Sep 20th 2359
- Double-check to confirm your iP meets the criteria for full marks:
- Create a new jar file
- Create the JAR file using Gradle -- this needs to be a fat JAR file (hence, it's best created using Gradle's shadow plugin).
- The JAR file should be cross-platform and should work in a computer that has Java 17 (but no other Java version). To avoid version compatibility issues, we strongly recommend the following approach:
- Open a terminal window, and navigate to the root of your project folder.
- Run the
java -version
command to confirm the terminal is using Java 17. - Run the
./gradlew clean shadowJar
command to create the JAR file.
- Do the following smoke tests to ensure the jar file works (reason: a similar flow will be used when grading your iP).
- Copy the jar file to an empty folder and test it from there. This should surface issues with hard-coded file paths.
When running the jar file for smoke testing, instead of double-clicking the jar file, do the following: open a terminal -> navigate to the jar location -> run thejava -jar "JAR_FILE_NAME"
command. - Pass the jar file to team members and ask them to do a test drive. Assuming some of your team members' OS differ from yours, this should verify if the app is cross-platform.
If you don't have ready access to a specific OS, post a link to your JAR in the forum and ask others to help with the smoke testing -- some of them will even appreciate the opportunity to help a classmate.
Note that concepts you encounter while doing course project tasks (e.g., smoke testing) are in the scope of the final exam.
- Copy the jar file to an empty folder and test it from there. This should surface issues with hard-coded file paths.
- Create a new release on GitHub (e.g.,
v0.2
) and upload the JAR file.- Recommended to refrain from uploading multiple JAR files as this can cause extra work for the evaluators.