iP: Week 6iP: Week 8


iP: Week 7

  1. Add Increment: A-MoreOOP
  2. Add Increments as PRs: Level-8, Level-9, A-JavaDoc
  3. Set up a product website
  4. Submit the final version Fri, Oct 2nd 2359

1 Add Increment: A-MoreOOP

  • As before, commit, tag, and push after each increment.
Duke A-MoreOOP: Use More OOP

Why more OOP?


2 Add Increments as PRs: Level-8, Level-9, A-JavaDoc

Duke Level-8: Dates and Times optional

Duke Level-9: Find

If your code already has Javadoc comments for all public methods, you can simply add the A-JavaDoc tag to the current commit and skip the A-JavaDoc increment.

Duke A-JavaDoc: JavaDoc if-applicable

3 Set up a product website

  • Add a brief User Guide (UG)
Duke A-UserGuide: User Guide

4 Submit the final version Fri, Oct 2nd 2359

  1. Double-check to confirm your iP meets the criteria for full marks, as given in the panel below.

Admin iP - Grading


  1. Create a new JAR file

    • Create the JAR file in one of these ways:
      • If you have added a GUI or using third-party libraries: use Gradle.
      • Else: you can use IntelliJ.
    • The JAR file should be cross-platform and should work on a computer that has Java 25. 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 25.
      • Run the ./gradlew clean shadowJar command to create the JAR file.
  2. 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 the java -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 use a different OS from yours, this should verify if the app is cross-platform.
      If you don't have ready access to a specific OS, you can ask others to help smoke-test it by posting a smoke-testing request in the forum -- 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.
  3. Create a new release on GitHub (e.g., v0.2) and upload the JAR file.

Your GitHub username :  GitHub Avatar
Note: Type your GitHub username in the blank above so that we can customize sample commands to fit you.

  • There is no need for the release to be tagged A-Release specifically.
  • Ensure your release appears at https://github.com/[[username: JohnDoe]]/ip/releases. Use an incognito browser window when checking this URL, to ensure the release is visible to the public.
  • The JAR file should be uploaded as an 'asset', with the .jar extension. Do not put it inside a zip file.
  • Avoid uploading multiple JAR files to this release, as this can create extra work for the evaluators. Upload only the JAR file you want to be evaluated as your iP.
  • If you have multiple iP releases on GitHub, we take the JAR file from the latest release, irrespective of the release name or the tag used. So, feel free to create more releases if you happen to update the code after creating the initial release.
Duke A-Release: Release

The JAR, User Guide, and the code released via GitHub constitute the iP final submission; there is no separate submission on Canvas.

FAQ How to get a deadline extension for the iP final submission?



iP: Week 6iP: Week 8