Week 7 [Mon, Sep 29th] - Project

iP:

  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 3rd 2359

tP:

  1. Ensure you know tP expectations
  2. Plan the next iteration (v1.0)
  3. Start the next iteration

iP

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

Duke A-JavaDoc: JavaDoc

3 Set up a product website

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

4 Submit the final version Fri, Oct 3rd 2359

  1. Double-check to confirm your iP meets the criteria for full marks, as given in the panel below.
    For example, ensure your Git Standard tag is green in the iP progress dashboard, as it relates to a condition you need to satisfy to receive full marks.

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 in a computer that has Java 17. To avoid version compatibility issues, we strongly recommend the following approach:
      1. Open a terminal window, and navigate to the root of your project folder.
      2. Run the java -version command to confirm the terminal is using Java 17.
      3. 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).
    1. 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.
    2. 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, you can ask others' help to 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.
    • Recommended to refrain from uploading multiple JAR files as this can cause extra work for the evaluators.
Duke A-Release: Release

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


tP: Plan the Iteration

Intro to tP Week 7

In this week, we get ready to start tP iterations. We start by planning the first iteration.

1 Ensure you know tP expectations

  • If you haven't done so already, make sure you know individual and team expectations of the tP

2 Plan the next iteration (v1.0)

  • Plan the next iteration. As you know, you should follow the breadth-first iterative process. Therefore, first you must decide what functionalities should be in the product if you had only two weeks to implement it. You have done that already when you chose user stories for v1.0, translated that to features, and even drafted the UG based on those features. You can tweak that plan further at this point if you wish.
    • Aim to produce a working MVP at the end of this iteration even if the functionalities are not polished (polishing can be done in a later iteration).
    • Avoid depth-first implementations: "I'll do the back-end part of feature X in this iteration" is not acceptable as that is not in the spirit of breadth-first iterative process. Remember, we are pretending this to be the last iteration; why would you implement the back-end part of a feature in the last iteration?
      It is OK to add simpler versions of bigger features, but not OK to add partial features that can't be used yet.
  • Divide the work among the team members i.e., the work required for the current iteration.
  • Reflect the above plan in the issue tracker by creating and assigning issues to yourself and to the corresponding milestone. The panel below explains the full workflow we prescribe you to follow in the tP.

3 Start the next iteration

  • Stronger teams are welcome to stay one week ahead of the tP schedule. So, feel free to move on to next week's tp tasks, and get started on the next iteration (i.e., v1.0).