Uniflow is a command-line university module management assistant that helps students organize their timetables, track academic progress, and collaborate through course reviews and ratings. It allows users to add modules, detect timetable clashes, record grades, calculate GPA, add reviews, and rate courses using intuitive text commands.
This product is designed for university students who prefer a fast, keyboard-based workflow and need a compact way to manage academic and timetable data without relying on GUI-based tools.
InsertCommandPurpose:
Adds a new module to the user’s timetable while checking for time clashes.
Key Features:
Module object from parsed user input:
i/ → Module IDn/ → Module Named/ → Dayf/ → Start Timet/ → End Times/ → Session Type (optional)ModuleList.findClash(module)yes / no) when a clash is foundModuleList.addModule(module) after confirmationUI.showMessage()isExit() = false)Example Usage:
insert i/CS2113 n/SoftwareEng d/Mon f/10:00 t/12:00 s/Lecture
Example Output:
Got it! I've added this module:
CS2113 SoftwareEng (Mon 10:00–12:00 Lecture)
Now you have X module(s) in the list.
DeleteCommandPurpose:
Removes an existing module from the list based on its module ID.
Key Features:
ModuleList.deleteModuleById(moduleId)UI.showMessage()isExit() = false)Example Usage:
delete i/CS2113
Example Output:
Noted. I've removed this module:
CS2113 SoftwareEng
Now you have X module(s) left in the list.
ParserPurpose:
Acts as the central command router that validates user input and instantiates the appropriate command class.
parseInsertCommandExpected Format:
insert i/<id> n/<name> d/<day> f/<start> t/<end> [s/<type>]
parseDeleteCommandExpected Format:
delete index/<module_index>
UI)Purpose:
Handles all user interaction, input, and output formatting.
Key Features:
showWelcome()readCommand()showMessage() and showError()