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

Week 13 [Fri, Apr 12th] - Project

tP: v1.4

  1. Do final polish-ups
  2. Submit deliverables Mon, Apr 15th 23:59
  3. Submit the demo video Wed, Apr 17th 2359
  4. Wrap up the milestone Wed, Apr 17th 2359
  5. Prepare for the practical exam
  6. Attend the practical exam during the weekly briefing on Fri, Apr 19th
  7. [if needed] Attend the makeup practical exam Sun, Apr 21st 1400-1600

tP: v1.4

1 Do final polish-ups

  • Continue with any remaining bug fixing and test/code-quality/documentation improvements.

2 Submit deliverables Mon, Apr 15th 23:59

  • Deadline for all v1.4 submissions is Mon, Apr 15th 23:59:00 unless stated otherwise. Note that 23:59:01 is considered late, as per the Canvas deadline mechanism.
  • Penalty for late submission (per file):
    -1 mark for missing the deadline (up to 2 hour of delay).
    -2 for an extended delay (up to 24 hours late).
    Penalty for delays beyond 24 hours is determined on a case by case basis.
    • Even a one-second delay is considered late, irrespective of the reason.
    • For submissions done via Canvas, the submission time is the timestamp shown by Canvas.
    • When determining the late submission penalty, we take the latest submission even if the same exact file was submitted earlier. Do not submit the same file multiple times if you want to avoid unnecessary late submission penalties.
    • The whole team is penalized for problems in team submissions e.g., a -1 penalty for a team submission will be a -1 penalty for each team member.
  • Submit via the Canvas assignment we have set up. CS2103T students: documents should be submitted to both courses. It's not enough to submit to CS2101 side only.
  • Follow submission instructions closely. Any non-compliance will be penalized. e.g. wrong file name/format.
    Canvas might automatically add a file name suffix (e.g., *-1.pdf, *-2.pdf, ...) if you upload a file multiple times. You can safely ignore that suffix.
  • Do not update the code during the 14 days after the deadline. Get our permission first if you need to update the code in the repo during that code-freeze period.
    • You can update issues/milestones/PRs even during the code-freeze period.
    • [CS2103T only] You can update the source code of the docs (but not functional/test code) if your CS2101 submission deadline is later than our submission deadline. However, a code-freeze period of 1-2 days is still recommended, so that there is a clear gap between the tP submission and subsequent docs updates.
      On a related note, there is no need to additional stylistic 'beautifications' to the docs before submitting to CS2101 side. The two teaching teams have agreed that there will be no extra credit for such additional beautifications.
    • You can update the code during the code-freeze period if the change is related to a late submission approved by us.
    • You can continue to evolve your repo after the code-freeze period.

Submissions:

Don't take PDF conversion lightly: To convert the UG/DG into PDF format, go to the generated page in your project's github.io site and use this technique to save as a pdf file. Using other techniques or not following the settings suggested in the given technique can result in issues such as missing background colors, poor quality resolution, unnecessarily large files (the last two can be considered as bugs).

The PDF versions of the UG/DG should be usable by the target readers, even if not as neat/optimized as the Web versions. For example, margins and page breaks need not be optimized, but they should not hinder the reader either. Assume some will occasionally choose the PDF version over the Web version e.g, for printing, offline viewing, annotating etc.

PE uses the PDF versions of UG/DG, not the Web version! Any problems in those PDF files (e.g., broken links, messed up formatting) can be reported as bugs.

Ensure hyperlinks in the pdf files work. Broken/non-working hyperlinks in the PDF files will be considered as bugs. Again, use the conversion technique given above to ensure links in the PDF files work.

PDF files should,

  • be paginated at a reasonable page size (e.g., A4). Reason: single-page PDF files don't work well in some PDF viewers, and not suitable for printing either.
  • allow copying text so that readers can copy text from them (e.g., copy an example command from the UG).

Try the PDF conversion early. If you do it at the last minute, you may not have time to fix any problems in the generated PDF files (such problems are more common than you think).

Side benefits for early submissions: Given that using buffers to reduce the risk of deadline overruns is a learning outcome of this course, we strongly encourage setting an internal submission deadline a few hours earlier than the actual deadline. As an incentive, we plan to perform some checks on early submissions and inform you if we found issues with your submission (e.g., incorrect file name/format), thus giving you a chance to fix them before the deadline and avoid a penalty for it.

You may use automated tools to improve documentation: e.g., tools such as Grammarly may be used to improve the writing quality and find grammar errors.

The icon indicates team submissions. Only one person need to submit on behalf of the team but we recommend that others help verify the submission is in order.
We will not entertain requests to limit late penalties of team submissions to one person even if the delay was one person's fault. That is, the responsibility (and the penalty) for team submissions are to be shared by the whole team rather than burden one person with it.

  • Product:
    • Do a release on GitHub, tagged appropriately e.g., v1.4 or v1.4b.
      Writing detailed release notes is optional.
      No need to include UG/DG pdf files in the release.
    • Upload the jar file to Canvas.
      File name: [team ID][ProductName].jar e.g. [CS2103-T09-2][ContactsPlus].jar
      Recommended to avoid spaces and special characters in the product name as it can cause problems when running the JAR file using the command line.
      This name requirement is for the JAR file you upload to Canvas only. You may name the JAR file you upload to GitHub in any reasonable way.

  • Source Code: Push the code to GitHub and tag with the version number. Source code (please ensure the code reported by RepoSense as yours is correct; any updates to RepoSense config files or @@author annotations after the deadline will be considered a late submission). Note that the quality of the code attributed to you accounts for a significant component of your final score, graded individually.

  • User Guide:
    • Convert to pdf and upload to Canvas.
    • File name: [TEAM_ID][ProductName]UG.pdf e.g.[CS2103-T09-2][ContactsPlus]UG.pdf

  • Developer Guide:
    • submission is similar to the UG
    • File name: [TEAM_ID][ProductName]DG.pdf e.g. [CS2103-T09-2][ContactsPlus]DG.pdf

  • [Optional] Project Portfolio Page (PPP):
    • HTML version: make available on github.io
    • See the panel below to learn when you should opt for this submission.

Admin tP → Deliverables → Project Portfolio Page

At the end of the project each student is required to submit a Project Portfolio Page. To reduce workload, this deliverable has been made optional this semester. You need to submit this only if you think your team members are not fully aware of your contribution to the tP. Also, we will ask you to submit this if there is a dispute about your contribution level.

Details ... (read only if you opted to submit this deliverable)

PPP Objectives

  • For you to use (e.g. in your resume) as a well-documented data point of your SE experience
  • For evaluators to use as a data point for evaluating your project contributions

PPP Sections to include

  • Overview: A short overview of your product to provide some context to the reader. The opening 1-2 sentences may be reused by all team members. If your product overview extends beyond 1-2 sentences, the remainder should be written by yourself.
  • Summary of Contributions --Suggested items to include:
    • Code contributed: Give a link to your code on tP Code Dashboard. The link is available in the Project List Page -- linked to the icon under your profile picture.
    • Enhancements implemented: A summary of the enhancements you implemented.
    • Contributions to the UG: Which sections did you contribute to the UG?
    • Contributions to the DG: Which sections did you contribute to the DG? Which UML diagrams did you add/updated?
    • Contributions to team-based tasks
    • Review/mentoring contributions: Links to PRs reviewed, instances of helping team members in other ways.
    • Contributions beyond the project team:
      • Evidence of helping others e.g. responses you posted in our forum, bugs you reported in other team's products,
      • Evidence of technical leadership e.g. sharing useful information in the forum

Keep in mind that evaluators will use the PPP to estimate your project effort. We recommend that you mention things that will earn you a fair score e.g., explain how deep the enhancement is, why it is complete, how hard it was to implement etc.

  • OPTIONAL Contributions to the Developer Guide (Extracts): Reproduce the parts in the Developer Guide that you wrote. Alternatively, you can show the various diagrams you contributed.
  • OPTIONAL Contributions to the User Guide (Extracts): Reproduce the parts in the User Guide that you wrote.

PPP Format

  • File name (i.e., in the repo): docs/team/github_username_in_lower_case.md e.g., docs/team/goodcoder123.md
  • Follow the example in the AddressBook-Level3
  • PDF file submission: not required.


  • Product Website: Update website (home page,Ui.png, AboutUs.md etc.) on GitHub. Ensure the website is auto-published.

3 Submit the demo video Wed, Apr 17th 2359

Admin tP → Deliverables → Demo

To reduce workload, this deliverable has been removed from tP requirements this semester.

Details ... (no longer applicable)

  • Record a demo of all the product features, in a reasonable order. Some options:
    • Screen record each feature and tie it up (see the "Suggested tools" below for tool options).
    • Schedule + record a zoom meeting within the team, where you share your screens and do the demo.
  • The quality of the demo will not affect marks as long as it serves the purpose (i.e., demonstrates the product features). Hence, don't waste too much time on creating the video.
  • Audio explanations are strongly encouraged (but not compulsory) -- alternatively, you can switch between slides and the app to give additional explanations.
  • Annotations and other enhancements to the video are optional (those will not earn any extra marks).
  • All members taking part in the demo video is encouraged but not compulsory.
  • File name: [TEAM_ID][product Name].mp4 e.g.[CS2103-T09-2][ContactsPlus].mp4 (other video formats are acceptable but use a format that works on all major OS'es).
  • File size: Recommended to keep below 200MB. You can use a low resolution as long as the video is in usable quality.
  • Submission: Submit to Canvas (via the corresponding assignment).
  • Deadline: 2 days after the main deadline
  • Suggested tools:
    • Ink2Go: You can use this to record your screen and annotate if necessary. Here are some instructions from NUS CIT to help you get started.
    • Handbrake: A free/open-source tool to help convert videos to MP4.

Demo Duration

  • Strictly 18 minutes for a 5-person team, 15 minutes for a 4-person team, 21 minutes for a 6-person team. Exceeding this limit will be penalized.

Demo Target audience

  • Assume you are giving a demo to a higher-level manager of your company, to brief them on the current capabilities of the product. This is the first time they are seeing the new product you developed. The actual audience are the evaluators (two tutors).

Demo Scope

  • Start by giving an overview of the product so that the evaluators get a sense of the full picture early. Include the following:
    • What is it? e.g., FooBar is a product to ensure the user takes frequent standing-breaks while working.
    • Who is it for? e.g., It is for someone who works at a PC, prefers typing, and wants to avoid prolonged periods of sitting.
    • How does it help? Give an overview of how the product's features help to solve the target problem for the target user

Here is an example:

Hi, welcome to the demo of our product FooBar. It is a product to ensure the user takes
frequent standing-breaks while working.
It is for someone who works at a PC, prefers typing, and wants to avoid prolonged periods
of sitting.
The user first sets the parameters such as frequency and targets, and then enters a
command to record the start of the sitting time, ... The app shows the length of the
sitting periods, and alerts the user if ...
...
  • There is no need to introduce team members or explain who did what. Reason: to save time.
  • Present the features in a reasonable order: Organize the demo to present a cohesive picture of the product as a whole, presented in a logical order.
  • No need to cover design/implementation details as the manager is not interested in those details.

Demo Structure

  • Demo the product using the same executable you submitted
  • Use a sufficient amount of demo data. e.g at least 20 data items. Trying to demo a product using just 1-2 sample data creates a bad impression.

Demo Tips

  • Plan the demo to be in sync with the impression you want to create. For example, if you are trying to convince that the product is easy to use, show the easiest way to perform a task before you show the full command with all the bells and whistles.


4 Wrap up the milestone Wed, Apr 17th 2359

  • As usual, wrap up the milestone on GitHub i.e., close issues/PRs/milestone (no code changes allowed). Note that the deadline for this is the same for everyone (i.e., does not depend on your tutorial).

5 Prepare for the practical exam

  • After reading the above 2, we strongly recommend you read ahead the info given in the item 6 below as well, to know in advance what will happen during the PE itself.

6 Attend the practical exam during the weekly briefing on Fri, Apr 19th

  • Ensure you read the instructions on PE Preparation (given in item 5 above)
  • Attend the practical test, to be done during the weekly briefing.

7 [if needed] Attend the makeup practical exam Sun, Apr 21st 1400-1600

  • In the very unlikely event that the PE had to be cancelled due to technical issues, attend the makeup PE on this day.
  • Note: This is not an alternative option for students who could not attend the PE, as all students need to do the PE at the same time.