This site is from a past semester! The current version will be here when the new semester starts.

Week 8 [Fri, Oct 1st] - Project

tP:

  1. Ensure you know tP expectations
  2. Start implementing v1.0
  3. Use GitHub to manage milestones
  4. Add some JUnit Tests

tP: mid-v1.0

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 Start implementing v1.0

You may i.e., copy-paste, not clone/forkre-purpose/adopt code from any of the below to be used in your tP, provided you give credit to the source (and do not claim such code as yours).

  • The iP code of any of your team members, or of any other person in the module.
  • Code from AddressBook-Level2 or any code used in module activities

Learn how to use Gradle

  • The tP project template given to you is already configured to use Gradle (a build automation and dependency management tool).
  • If you haven't encountered Gradle before, learn more about Gradle from the Gradle tutorial @SE-EDU/guides
  • Some useful Gradle tasks you can try (to familiarize yourself with using Gradle):
    • run: runs the project code
    • clean: deletes files generates from previous runs
    • check: runs the tests
    • checkstyleMain: checks your Java functional code for compliance with some (but not all) rules specified in the coding standard, using a tool called checkstyle
    • checkstyleTest: similar to above, but checks the test code instead
    • shadowJar: creates a JAR file for your project
  • Note that GitHub Actions too is using Gradle to check the code you push to GitHub. Specifically, it runs the check task and then it uses the shadowJar task to build the JAR file which is then used to do I/O redirection tests (as per the files in your text-ui-text folder)
  • Start implementing v1.0, by adding code in small steps, while working in parallel, aiming to produce a VERY simple working version after one week, and a bit more functional version at the end of iteration (i.e., after two weeks).

  • See the panel below for our recommendations on the project workflow.

3 Use GitHub to manage milestones

  • We recommend using the GitHub issue tracker and its milestones feature to manage your project milestones, as explained in the following panels.

4 Add some JUnit Tests