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
ArgumentMultimap
class 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
find
andfindmod
) 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
ArgumentMultimap
class 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: