Rushil Ramesh's Project Portfolio Page
Project: ClassMATE
ClassMATE is a desktop application designed for instructors of the CS2101 Module in NUS to easily store class and student details. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC.
Given below are my contributions to the project.
-
Code contributed: Check out my contributions here
- Enhancements Implemented:
- New Feature: Added the ability to add tutorial classes:
- PR #94, #97
- Allows the user to create a tutorial class with a class code and schedule (and optional tags) so that they can add students to them in the future. This is a basic feature of a CRUD application like ClassMATE.
- This implementation was slightly challenging as it was my first feature implemented, which involved making several
additions to the existing code, including the creation of
TutorialClass
,Schedule
,ClassCode
(contributed by Yirui) and theEmptyClasscode
which define the tutorial class. I also modified several files involved in the logic behind parsing and executing anAddClassCommand
. As I implemented theTutorialClass
feature, I also had to work on the UI, creating aClassListPanel
so that users could view classes and students on two separate lists.
- New Feature: Added the ability to delete tutorial classes
- PR #97, #147
- Allows the user to delete a tutorial class from a specified index in the list of classes. This is a basic CRUD operation that users should be able to perform in the event they no longer require details of a particular class or are assigned to another class.
- This implementation required an understanding of the
UniqueList
s and theModelManager
as a whole, as deleting a class involved more than simply removing aTutorialClass
from the list of classes, but involved an update of each student’s designated class to an ‘empty class’, meaning the student has no class. This required addingPredicate
classes and new methods inModelManager
.
- New Feature: Implemented the ability to view the students in a class
- PR #135
- Allows the user to view a particular class by its index in the list of classes. The student list is filtered to display only students from the particular tutorial class, and the class list only displays the selected class.
- This implementation involved the creations of more
Predicate
classes to filter the students out. In addition, I made changes to the UI, including setting the layout of the main page and the UI of the individual students and tutorial classes. I also implemented the list class feature which brings the user back to the original list of classes.
- Enhancement to existing feature: Student management features.
- PR #135
- Adjusted student functionality, such as preventing students from being added to an empty class and adding a class code.
- These features were related to tutorial class, therefore some of my other PRs include updates to student management features.
- New Feature: Added the ability to add tutorial classes:
- Documentation:
- User Guide:
- Added documentation for the features
addstu
,viewstu
anddeletestu
#57 - Added a write-up for the various sections, including the Features section and its various subsections. #148
- Included a CLI Tutorial for users. #148
- Made cosmetic tweaks to various headings, numberings etc. #148
- Updated Command Summary with all new features #143
- Added documentation for the features
- Developer Guide:
- Added User Stories and Use Cases for CRUD features for students and tutorial classes. #65
- Added and updated Tutorial Class Management features section. #124
- Updated Architecture diagrams to reflect ClassMATE’s architecture. #124
- Updated Class Diagrams for UI, Logic and Model #124
- Created Sequence diagram for
AddClassCommand
#124
- User Guide:
- Team-Based tasks:
- Managed testing for releases
v1.1
-v1.4
(4 releases) on GitHub - Conducted manual testing of features based on descriptions provided in the User Guide.
- Bug Fixes:
- Added summary of follow-up action following the PE-D to each issue raised by reviewers.
- Managed testing for releases
- Review Contributions
- Community Contributions
- Bugs reported in other teams work: 1, 2
- Smoke Test CATcher