By: Team T11-1 Since: Jan 2019 Licence: MIT

1. Introduction

Efficient Learning Scheduler is targeted to NUS students who are interested in finding ways to improve the efficiency of their learning habits. It generates an efficient and tailored learning schedule for these students to follow daily. The generated learning schedule takes into account the modules that the students are taking this semester to make their learning as efficient as possible. This intelligent scheduler also takes in research data from ALSET (http://nus.edu.sg/alset/) to complement the schedule based on past data from other students who took the modules. == Quick Start

  1. Ensure you have Java version 9 or later installed in your Computer.

  2. Download the latest addressbook.jar here.

  3. Copy the file to the folder you want to use as the home folder for your Address Book.

  4. Double-click the file to start the app. The GUI should appear in a few seconds.

    Ui
  5. Type the command in the command box and press Enter to execute it.
    e.g. typing help and pressing Enter will open the help window.

  6. Some example commands you can try:

    • list : lists all contacts

    • addn/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 : adds a contact named John Doe to the Address Book.

    • delete3 : deletes the 3rd contact shown in the current list

    • exit : exits the app

  7. Refer to Section 2, “Features” for details of each command.

2. Features

Command Format

  • Words in UPPER_CASE are the parameters to be supplied by the user e.g. in add n/NAME, NAME is a parameter which can be used as add n/John Doe.

  • Items in square brackets are optional e.g n/NAME [t/TAG] can be used as n/John Doe t/friend or as n/John Doe.

  • Items with ​ after them can be used multiple times including zero times e.g. [t/TAG]…​ can be used as   (i.e. 0 times), t/friend, t/friend t/family etc.

  • Parameters can be in any order e.g. if the command specifies n/NAME p/PHONE_NUMBER, p/PHONE_NUMBER n/NAME is also acceptable.

2.1. Viewing help : help

Views all the possible commands to be used on the program.
Format: help

2.2. Adding a person: add

Adds a person to the address book
Format: add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS m/MODULE [t/TAG]…​

A person can have any number of tags (including 0)

Examples:

  • add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 m/CS2113

  • add n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Prison p/1234567 m/CS2106 t/criminal

2.3. Listing all persons : list

Shows a list of all persons in the address book.
Format: list

2.4. Locating persons by name: find

Finds persons whose names contain any of the given keywords.
Format: find KEYWORD [MORE_KEYWORDS]

  • The search is case insensitive. e.g hans will match Hans

  • The order of the keywords does not matter. e.g. Hans Bo will match Bo Hans

  • Only the name is searched.

  • Only full words will be matched e.g. Han will not match Hans

  • Persons matching at least one keyword will be returned (i.e. OR search). e.g. Hans Bo will return Hans Gruber, Bo Yang

Examples:

  • find John
    Returns john and John Doe

  • find Betsy Tim John
    Returns any person having names Betsy, Tim, or John

2.5. Adding a module: addActivity

Adds a new activity into a person’s timetable. The activity can be a module or an event.
Format: addActivity PERSON_INDEX act/ACTIVITY_NAME day/DAY_INT time/TIME_INT
Example: addActivity 1 act/CS2113 day/2 time/12

2.6. Listing all activities for a person : listactivity

Shows a list of all activities in the timetable of a specific person in the left panel of the application UI. The command is followed by an index of a person in the current person list to choose which person’s timetable to be shown.
Format: listactivity PERSON_INDEX
Example: listactivity 1

2.7. Adding an event to the event calendar : addevent

Adds an event to the event calendar.
Format: addevent ett/TITLE ed/DATE etm/TIME ev/VENUE \[eta/AUDIENCE] \[edc/DRESSCODE] \[eds/DESCRIPTION]

Target audience, dress code and description are not compulsory. Event can still be added to the calendar without these attributes.

Examples:

  • addevent ett/UBS - Unlock Your Potential with us ed/01/04/2019 etm/15:00-16:00 ev/UBS Office eta/All Year 1 female students edc/Business Formal eds/Unlock Your Potential with us.

  • addevent ett/Career Festival ed/05/06/2019 etm/10:00-12:00 ev/MPSH

2.8. Listing all events : listevent

Shows a list of all events in the event calendar in the left panel of the application UI.
Format: listevent

2.9. Filter events on a given date : filterevent

Shows a list of all events that are happening on a given date in the left panel of the application UI.

The date in the input has to follow the DD/MM/YYYY format. If not, an error message will be shown.

Format: filterevent DATE
Example: filterevent 15/04/2019

2.10. Check availability of a person to attend an event : checkAvailEvent

Checks if a person can attend an event, i.e. checks if there is an activity in the person’s timetable that clashes with the event. The choice of person and choice of event are done using the indexes of the person and event in the last shown list (left panel of the application UI).
The results of this command will be shown in the Results Display part of the application UI (right below the Command Box).

The indexes must be lower than the size of the person and event list. If not, an error message will be shown.

Format: checkAvailEvent person/PERSON_INDEX event/EVENT_INDEX
Example: checkAvailEvent person/1 event/1

2.11. Generating a learning schedule: 'interleave' [coming in v2.0]

Generates a learning schedule based on the modules in the storage. A calendar week view will appear in the GUI as seen above in Section 2. User would be able to generate a timetable based on the concept of interleaving. During one of my interactions with Mr Fung from ALSET, he mentioned that students should study in settings that closely resembles exam settings. That was what inspired this project and feature. Thus, the default (and minimum) focus period is 30 mins (average human attention span) with 5 mins rest and maximum is 2 hours with 2 hours rest, as most exams lasts 2 hours and occurring from either 9am-11am, 1pm-3pm and 5pm-7pm. Format: interleave

2.11.1. Generate a interleaved schedule based on module codes [coming in v?.?]

Interleave each module with 30 mins blocks. Assume each module has 3 hours self study.

2.11.7. Use the app to collect data anonymously on students users. [coming in v?.?]

Extract academic performance indicators anonymously from school database, then convert all these data into an analysable format for data analysis, trend finding etc.

2.11.9. Clearing all schedule: 'clear' [coming in v2.0]

Clears the learning schedule and deletes all existing modules in the database. Format: clear

2.11.10. Undoing previous command: 'undo' [coming in v2.0]

Restores the learning schedule to the state before the previous undoable command was executed. Format: undo

2.11.11. Redoing previous command: 'redo' [coming in v2.0]

Reverses the most recent undo command. Format: redo

2.11.12. Exiting the program: 'exit'

Exits the Efficient Learning Scheduler. Format: exit

2.12. Compare two time table: 'tablecompare' [coming in v2.0]

compare two time table to find the difference Format:tablecompare

Examples:

  • delete 1
    list
    undo (reverses the delete 1 command)

  • select 1
    list
    undo
    The undo command fails as there are no undoable commands executed previously.

  • delete 1
    clear
    undo (reverses the clear command)
    undo (reverses the delete 1 command)

2.12.1. Redoing the previously undone command : redo

Reverses the most recent undo command.
Format: redo

Examples:

  • delete 1
    undo (reverses the delete 1 command)
    redo (reapplies the delete 1 command)

  • delete 1
    redo
    The redo command fails as there are no undo commands executed previously.

  • delete 1
    clear
    undo (reverses the clear command)
    undo (reverses the delete 1 command)
    redo (reapplies the delete 1 command)
    redo (reapplies the clear command)

2.12.2. Clearing all entries : clear [coming in v2.0]

Clears all entries from the address book.
Alias command: 'c'
Format: clear

3. Command Summary

  • Add add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS m/MODULE [t/TAG]…​
    e.g. add n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 m/CS2106 t/friend t/colleague

  • Find : find KEYWORD [MORE_KEYWORDS]
    e.g. find James Jake

  • List : list

  • Add Activity addActivity PERSON_INDEX act/ACTIVITY_NAME day/DAY_INT time/TIME_INT
    e.g. addActivity 1 act/CS2113 day/2 time/12

  • List Activity listactivity PERSON_INDEX
    e.g. listactivity 1

  • Add Event addevent ett/TITLE ed/DATE etm/TIME ev/VENUE \[eta/AUDIENCE] \[edc/DRESSCODE] \[eds/DESCRIPTION]
    e.g. addevent ett/UBS - Unlock Your Potential with us ed/01/04/2019 etm/15:00-16:00 ev/UBS Office eta/All Year 1 female students edc/Business Formal eds/Unlock Your Potential with us.

  • List Event listevent

  • Filter Event filterevent DATE
    e.g. filterevent 15/04/2019

  • Check Availability Event checkAvailEvent person/PERSON_INDEX event/EVENT_INDEX e.g. checkAvailEvent person/1 event/1

  • Help : help