View on GitHub

tp

Developer Guide

Acknowledgements

Design & implementation

Overview

image

Command component image

Module component image

The Diagrams above explains the high-level design of the App.

Given below is a quick overview of main components and how they interact with each other.

Main components of the App

Duke is responsible for,

At app launch: Initializes the components in the correct sequence, and connects them up with each other. At shut down: Shuts down the components.

The App consists of a few components.

UI: The UI of the App. Parser: Parse instruction given by the user. Api: Extract data from the NUSMOD API. Storage: Reads data from, and writes data to, the hard disk. Module: Contains information for Modules. Command: The command executor. How the components interact with each other

The Sequence Diagram below shows how the components interact with each other for the scenario where the user issues the command list all. image

Product scope

Target user profile

NUS students who take modules, and prefer CLI.

Lily is a part-time NUS student studying cyber security while working a full time job. She spent most of her time working during the weekdays and studying on the weekends. This causes her to not have enough time to spend with her family and friends during the school period. She also has a lot of friends from different groups and during the school holiday period, she spent lots of time catching up with her friends and family. During the second year of school, she spent quite a lot of time planning not just her next semester module, but her next year’s module as well to ensure she got the module she wanted. She also does not like to create an account online as she is a cyber security student, she practices avoiding using the same password twice and giving out unnecessary information.

Value proposition

Module planning is a complex task which requires planning. Our app aims to let NUS students plan their upcoming modules more easily.

User Stories

Version As a … I want to … So that …
v1.0 new user see usage instructions I can refer to them when I forget how to use the application
v1.0 new user download NMP for free from github I will not incur any costs
v2.0 user view a specific module I can view module information that is relevant to me
v2.0 user view my list of added modules I can do a review of what modules I’ve been interested in
v2.0 user remove modules from my list of added modules my list will only contain the modules that I wanted
v2.0 user view all modules offered for the term I can bid for my modules

Non-Functional Requirements