Developer Guide

Introduction

All-in-OneNUS is a Command Line Interface(CLI) application that aims to help students with their university lives. All-in-OneNUS has 4 components, Team Planner, CAP Calculator, Module Planner and Food Recommendation App.

Overall Design

The AllinOneNus class contains the main method of the program, which will call the run() method from the OverallParser class. From there, the user can then access the 4 components of the application, whereby inputting a number from 1-4 will call the respective classes. Architecture Diagram ** **

Team Planner


Design

TeamPlannerUMLDiagram

The architecture Diagram displayed above explains the high level design of the Team Planner. There are a few core components to the TeamPlanner feature

  1. TeamPlanner
  1. TeamUi
  1. TeamParser
  1. TeamManager
  1. TaskManager
  1. TeamPlannerStorage

Implementation



CAP Calculator


Design

Architecture

DesignDiagram

The Architecture Diagram given above explains the high-level design of the CAP Calculator. Given below is a quick overview of each component.

  1. UiText
  1. ParserForCapCalculator
  1. CommandsForCapCalculator
  1. ModuleList
  1. ModuleStorage
UiText Component

DesignDiagram

ParserForCapCalculator Component

DesignDiagram

CommandsForCapCalculator Component

ImplementationDiagram

ModuleStorage Component

ModuleList Component


Implementation

This section describes some unique details on how certain features are implemented

Add

ImplementationDiagram

A general explanation of how this feature works:

  1. When the user calls this feature by adding in his module data (e.g. CS2113T A 4)
  2. The AddNewModuleCommand calls ModuleList#gradesToPoints() method which handles the logic of converting the grades to points. So in this case A is translated to a 5.00.
  3. It thens calls ModuleList#add method to add the moduleData to the list of modules.
  4. It then calls UiText#moduleAlreadyUpdate() to inform the user that the input is verified and added.
  5. AddNewModuleCommand then calls ModuleStorage#writeToFile() to store the updated data to hard disk.

PrintModuleList

ImplementationDiagram

A general explanation of how this feature works:

  1. When the user calls this feature by requesting for “list” in the user interface
  2. The PrintModuleListCommand calls UiText#printModuleData() to display the list of modules in the current semester
  3. The PrintModuleListCommand starts and calls ModuleList#calculate() method twice which handles the logic of computing the current semester CAP and the overall CAP respectively.
  4. It then calls ModuleList#printCurrentSemCap and ModuleList#printOverallCap to display the current semester’s CAP and the overall CAP respectively.

The calculation of the cap is given by this formula:

image

This is handled by ModuleList#calculate() which also self invocates ModuleList#totalMcsTimesGrade(), ModuleList#totalMcs() in order to output the correct computation



Module Planner


Design

moduleplannerUMLdiagram


Implementation



Food Recommendation App


Design

foodrecommendationUMLdiagram

The Architecture Diagram shown above explains the high-level design of the Food Recommendation feature. There are 5 main components to the feature.

  1. FoodRecommendation
  1. FoodStoreUi
  1. FoodStoreParser
  1. FoodStoreStorage
  1. FoodStore

Implementation

ImplementationDiagram

A general explanation for the adding a food store to the list.

  1. addStore method from FoodRecommendation class takes in a FoodStore class as a parameter.
  2. The method then calls the addStore method from FoodStoreUi class.
  3. The addStore method from FoodStoreUi class calls the showToUser method, which shows the FoodStore as an output to the user.
  4. The method will terminate and return to the addStore from FoodRecommendation, which will now call the add method from FoodStoreList, which is the ArrayList that stores all the FoodStore classes.
  5. The add method will terminate and return to the addStore from FoodRecommendation, which will also terminate.


Product scope

Target user profile:

Value proposition

User Stories

Version Tool As a … I want to … So that I can …
v1.0 CAP Calculator student add my modules and grades on a platform store additional module information in a convienent place
v1.0 CAP Calculator student view my modules I am taking in the current semester view my overall and semester CAP
v1.0 CAP Calculator student delete module data remove erroneous inputs
v1.0 CAP Calculator student edit module data simulate my overall and semester CAP based on academic ability
v1.0 CAP Calculator student exit CAP Calculator use other tools in All-in-OneNUS
v1.0 CAP Calculator student request help within CAP navigate the app better
v1.0 CAP Calculator student change the semester I am viewing view my module data in a different semester
v1.0 Food Recommendation food savvy individual view my food options make better choices when selecting places to eat
v1.0   team leader view the team members at one glance manage my team better
v1.0   team leader exclusively be able to add and delete members ensure that the members list is updated and accurate
v1.0   team leader delegate tasks to my team members distribute the work evenly
v1.0   student gather more insights about modules offered know if I stand a chance in getting that module
v1.0 Food Recommendation student get a recommendation on what food store to buy from save time on deciding what to eat
v2.0 Food Recommendation student know which food stores around me are halal know what I can and cannot eat
v2.0   team member mark a task as completed inform my team members that the task has been completed
v2.0   team member view at one glance which tasks are more important prioritise my tasks efficiently
v2.0   team member track team members progress ensure that I do not do a task that has already been completed
v2.0   team leader track the tasks that have been completed ensure deliverables are completed on time
v2.0 CAP Calculator student display all my module data view all my modules at a glance
v2.0 CAP Calculator student update my student year status update my module data when I commence to the next semester
v2.0 CAP Calculator student know what my semester CAP has to be achieve the desired overall CAP

Non-Functional Requirements

{Give non-functional requirements}

Glossary

Instructions for manual testing

{Give instructions on how to do a manual product testing e.g., how to load sample data to be used for testing}