Project: EdRecord

EdRecord is a desktop student management app, for teaching assistants to manage their student contacts. The EdRecord codebase was initially adapted from AddressBook Level 3, a desktop address book application. The app is optimized for users that can type fast and are comfortable with using a CLI. This is a medium sized Java project with roughly 15k LoC.


Code Contributed

RepoSense Link

PR Authored

PR Reviews

Issues Authored

Enhancements Implemented

  1. Assignment View
    • A new command view (contacts/asg) was added. This command toggles the current view between contacts and assignment. The contacts view is optimized for looking through contacts, while the assignment view is optimized for displaying the list of assignments and grades for each student.
    • Major changes were made to the UI of the product, including the addition of tables for displaying assignments.
    • This feature required heavy usage of the observer pattern, so that the UI is able to reflect changes to assignments etc. when the user makes changes
    • The assignment view is an important attraction of our product, as teaching assistants are able to easily manage their students’ assignment submissions through this interface.
  2. cd Command to Select a Module
    • This command enables teaching assistants to select a particular module that they will like to work in. After selecting a module, future commands will work based on this particular module.
    • This somewhat emulates the concept of multitenancy and is motivated by the fact that most of the time, users will only be working on a specific module. Hence, keystrokes are saved as users would not need to specify the module in their commands every time.
    • This also included changes to the UI, specifically the status bar footer, which was updated to display the currently selected module.
  3. lsmod and lsclass Command to List all Modules and Classes
    • These commands enable teaching assistants to quickly get a full list of the modules and classes that they have
    • This comes in handy for users to quickly verify that their previous commands (usually adding or deleting modules/classes) worked as intended
  4. Arrow Keys to Cycle Through Command History
    • This is a familiar feature to those proficient with a terminal. Users are able to use their up and down arrow keys to cycle through their previous commands.
    • This is a feature targeted at our intended users, and will greatly improve their efficiency in using our app.

User Guide

  1. Refine and elaborate on documentation for lsmod, mkmod, mkclass, etc.
  2. Contributed some to the introduction and setting up sections
  3. Proofreading and formatting

Developer Guide

  1. Updated existing UML diagrams: #221
  2. Added all instructions for manual testing

Team-based tasks

  1. Helped in setting up Github repo
  2. In charge of maintaining the issue tracker
    1. Authoring issues based on discussions or previous PRs
    2. Assigning issues to respective teammates
    3. Ensuring issues have correct tags and milestones
    4. Ensuring all issues are being worked on, or closed with valid justifications
  3. In charge of release management for every iteration
    1. Ensure all relevant issues and PRs are closed, or postponed to next iteration
    2. Ensure product on master is in a state fit for release
    3. Create the Github release and ensure the tags are correct
    4. Close the milestone
  4. Non specific UG/DG contributions
    1. Created About Us page
    2. Added all instructions for manual testing
  5. In charge of integration: Ensure that all PRs have the correct tags/milestone, appropriate title and description, at least 2 approving reviews and all checks passing before finally merging into master

Reviewing/Mentoring

  1. Contributed to forum discussions (example: #109)
  2. PRs Reviewed: Full List; With non-trivial comments: #82, #92, #98
  3. Reported bugs and suggestions for other teams in the class (examples: #179, #174, #173, #119, #133)