This site is from a past semester! The current version will be here when the new semester starts.
CS2103/T 2020 Jan-Apr
  • Full Timeline
  • Week 1 [Jan 13]
  • Week 2 [Jan 20]
  • Week 3 [Jan 27]
  • Week 4 [Feb 3]
  • Week 5 [Feb 10]
  • Week 6 [Feb 17]
  • Week 7 [Mar 2]
  • Week 8 [Mar 9]
  • Week 9 [Mar 16]
  • Week 10 [Mar 23]
  • Week 11 [Mar 30]
  • Week 12 [Apr 6]
  • Week 13 [Apr 13]
  • Textbook
  • Admin Info
  • Report Bugs
  • Forum
  • Instructors
  • Announcements
  • File Submissions
  • Tutorial Schedule
  • Java Coding Standard
  • Participation Marks List

  •  Individual Project (iP):
  • Individual Project Info
  • Duke Upstream Repo
  • iP Code Dashboard
  • iP Showcase

  •  Team Project (tP):
  • Team Project Info
  • Team IDs
  • Addressbook-level3
  • Addressbook-level 1,2,4
  • tP Code Dashboard
  • tP Showcase
  • iP: Week 3 iP: Week 5


    iP: Week 4

    1. Review some peer PRs
    2. Add Increments as parallel branches: A-Gradle, A-CheckStyle, Level-10, A-Varargs

    1 Review some peer PRs

    • Review two PRs created by your classmates. PRs can be found here.
      • The allocation of which PRs to review will be specified in this page (you will be notified when the allocation is ready).
      • To find the target PR, you can use a filter author:AuthorUsername e.g., author:johnDoe
      • If the student you have been allocated to review has not created a PR by Monday, you can review another PR of your choice.

    We expect the PR peer-review to be mutually beneficial to the reviewer and the author. i.e., you receive suggestions on how to improve your code, and get to learn alternative designs by reading others' code.

    • Read up the following guidelines:

    • Additional guidelines:

      • Comment on coding standard violations.
      • At the end of the review, we recommend you to choose Comment (i.e., not Approve or Request changes)
    • Use the iP Code Dashboard to view others' code: You can now easily view iP code written by classmates, using the Links → iP Code Dashboard item in the top navigation menu. Click on the </> icon corresponding to a student name to see the code written by that person. We encourage you to read others’ code and learn from them. If you adopt solutions from others (also encouraged), please follow our reuse policy.

    2 Add Increments as parallel branches: A-Gradle, A-CheckStyle, Level-10, A-Varargs

    • Do each enhancement in a separate branch and merge to the master branch only when ready (if you push incomplete features into the master branch, it can confuse others reviewing your PR).
      If you have completed any of them in previous weeks, just add the corresponding tag (no need to create a branch).
    A-Gradle: Use Gradle

    A-Gradle

         Automate project builds using Gradle

    Use Gradle to automate some of the build tasks of the project. Refer to the Gradle tutorial at the Duke repo (i.e., the repo you forked from) to find how to set up Gradle for your project.

    • Minimal: Set up gradle so that you can build and run Duke using gradle.
    • Recommended: Set up gradle to run unit tests.
    • Stretch Goal: Use gradle to automate more things in your project.
    A-CheckStyle: Use CheckStyle optional

    A-CheckStyle

         Use CheckStyle

    Use checkStyle to detect coding style violations.

    If you are using Gradle for your project, refer to the Gradle tutorial at the Duke repo (i.e., the repo you forked from) to find how to use CheckStyle via Gradle. Alternatively, you can try the CheckStyle plugin for Intellij.

    A-Gradle

         Automate project builds using Gradle

    Use Gradle to automate some of the build tasks of the project. Refer to the Gradle tutorial at the Duke repo (i.e., the repo you forked from) to find how to set up Gradle for your project.

    • Minimal: Set up gradle so that you can build and run Duke using gradle.
    • Recommended: Set up gradle to run unit tests.
    • Stretch Goal: Use gradle to automate more things in your project.

    Level-10: GUI

    Level 10. GUI

    Add a GUI to Duke.

    When implementing this feature, you are also recommended to implement the following extension:

    A-JavaFx

         use JavaFX

    Use JavaFX to create a GUI. Refer to the JavaFX tutorials at the Duke repo (i.e., the repo you forked from) to learn how to get started.

    A-Varargs: Use Varargs if-applicable

    A-Varargs

         Use var-args

    Use Java varargs feature, if applicable.


    iP: Week 3 iP: Week 5