Cai Kaian's Project Portfolio Page
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
Enhancements Implemented
- 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.
- A new command
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.
lsmod
andlsclass
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
- 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
- Refine and elaborate on documentation for
lsmod
,mkmod
,mkclass
, etc. - Contributed some to the introduction and setting up sections
- Proofreading and formatting
Developer Guide
- Updated existing UML diagrams: #221
- Added all instructions for manual testing
Team-based tasks
- Helped in setting up Github repo
- In charge of maintaining the issue tracker
- Authoring issues based on discussions or previous PRs
- Assigning issues to respective teammates
- Ensuring issues have correct tags and milestones
- Ensuring all issues are being worked on, or closed with valid justifications
- In charge of release management for every iteration
- Ensure all relevant issues and PRs are closed, or postponed to next iteration
- Ensure product on master is in a state fit for release
- Create the Github release and ensure the tags are correct
- Close the milestone
- Non specific UG/DG contributions
- Created About Us page
- Added all instructions for manual testing
- 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