Erin May's Project Portfolio Page
Project: FaculType
FaculType is a desktop app for managing faculty members and their modules, optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI) created with JavaFX. It is written in Java, and has about 11 kLoC.
Given below are my contributions to the project.
- New Feature: Implemented Modules (including its attributes and UniqueModuleList)
- What it is: A representation of modules that are available in the user’s university/college.
- Justification: This feature improves the product by allowing users to insert modules into the app.
- Highlights: This feature is a foundation for module-related commands to be added in the future. It required an in-depth analysis and understanding of how the application works as a whole (from displaying the components to how it stores the data).
- New Feature: Added the ability to list all modules
- What it does: A command to show all available modules in the active semester in the module list.
- Justification: This feature improves the product by allowing users to only reset the view of the module list while still keeping the filtered contacts list.
- Highlights: This feature required an understanding of the model class.
- New Feature: Added the ability to detect duplicate prefixes
- What it does: Detects whether there’s a duplicate prefix provided by the user.
- Justification: Restricts the user by forbidding multiple prefixes in commands which doesn’t support multiple prefixes of the same type.
- Highlights: This feature required an understanding of how the
ArgumentMultimapclass works.
- New Feature: Added the ability to detect any prefix from the list of required prefixes
- What it does: Checks whether there exists at least one prefix from the list of supported prefixes by a command.
- Justification: This feature improves the app by allowing commands (such as
findandfindmod) to be more flexible by not requiring users to provide all supported prefixes (users only need to input at least one prefix). - Highlights: This feature required an understanding of how the
ArgumentMultimapclass works.
- New Feature: Displays the module list and a view of switching semesters
- What it does: Switches the tabs in the GUI to represent the switching of semesters.
- Justification: This feature improves the product as it gives users a graphical view of all the modules in the active semester (Semester 1 or Semester 2).
- Highlights: This feature required an in-depth understanding of how JavaFX works (both in the design aspect and the functional coding aspect) and an analysis of all existing components and its CSS attributes.
- Credits: Module TabPane color scheme link.
-
Code contributed: RepoSense link
- Enhancements to existing features:
- Enables listing of all contacts, modules, or both (Pull requests #96, #98)
- Allow finding by attributes (Pull requests #105, #117, #124, #133)
- Updated the GUI to better suit the app (Pull requests #86, #145, #149, #171, #172, #174, #183, #187, #220, #226, #245, #247)
- Wrote additional test utils for new features (Pull request #61)
- Wrote additional test cases for new and existing features (Pull requests #61, #66, #96, #98, #105, #117, #124)
- Documentation:
- User Guide:
- Developer Guide:
- Community: