Overview
TutorAid is a software build by a team of 5 Computer Science Software Engineering Student. I were tasked to implement the features of Notes for our software engineering project. We chose to morph the addressbook 3 to a teaching assistant assisting software which is called TutorAid. TutorAid is an imporved version of addressbook 3 which allows teaching assistant record student attandence, module management, earning management and notes taking.
This is how TutorAid looks like:
Role
My main role was to design the Notes
features which allows teaching assistant to record their notes based on the module and the type of class they are teaching. Notes consists a variety of functions which allow great flexibility for teaching assitant which is addnote
, editnote
, deletenote
, findnote
and also listnote
. The list of functions allows teaching assistant to create note, make an amendment from the note, delete the note or find the desire the note from the list of notes. Besides, I also wrote all sort of test cases to ensure that all the code that I wrote has reached the expected quality and reduce the chance of errors in the code.
Summary of contributions
This sections will show my contribution to the team project which consists of my code, documentation and other helpful informations.
Enhancement added: Added the Notes
features with addnote
, editnote
, deletenote
, findnote
and listnote
commands.
-
What it does: allow user to
addnote
the desire notes,editnote
to make amend to the note that want to change,deletenote
the desire note,findnote
the specific note from the list of notes and last but not leastlistnote
down all the notes that previously have save in TutorAid. -
Justification: Notes is a very important features in TutorAid as it provides a great flexibility to teaching assistant. With the
addnote
functions, teaching assistant will be able to add the note based on the module he/she teaches and the type of class that they teach with any content of the note. However, when mistake is made on the note amendment is needed. Hence,editnote
functions is added which allow teaching assistant to edit the note either on module, class type or the content. Therefore, there is no need to worry about getting worry of typing error while taking note. Besides,deletenote
function allow teaching assistant to remove the notes that are unwanted. When the notes save getting more, it is very difficult to find the notes that desire. Hencefindnote
function is implemented to aid this problem. It allows to search for any related keywords such as the module code, class type or the content itself. Last but not least,listnote
function. This is significantly important as after the searching of notes, viewing the list of notes allow teaching assistant to check all the notes that are save. -
Credits: The Note features is inspired by AddressBook 3 and 4, however, notes features has a great complexity when come to implementation.
Minor Enhancement: Delete button is added to allow user to delete note easily.
Code contributed: [All Commits] [Project Code Dashboard]
Other contributions
-
Project Management:
-
Enhancements to existing features:
-
Documentation:
-
Community:
-
Tools:
-
setup Netlify for team repository
-
setup Travis for team repository
-
Contributions to User Guide
Given below are sections I contributed to the User Guide. They showcase my ability to write documentation targeting end-users. |
Notes
Add Note: addnote
Adds Note to the list of notes.
Format: addnote c/MODULE_CODE type/CLASS_TYPE note/NOTE_CONTENT
Examples:
-
addnote c/CS2103T type/lab note/Check for project submission date
Only tutorials / tut / lab / consultations / c / sectionals / s
arguments are allowed for TYPE .
|
Edit Note: editnote
To provide a great flexibility, editing of the notes is allowed.
Update any Note in the list of notes.
Format: editnote INDEX c/MODULE_CODE type/CLASS_TYPE note/NOTE_CONTENT
Examples:
-
editnote 1 c/CS2103T
-
editnote 2 type/lab
-
editnote 3 note/check for meeting time
-
editnote 1 c/CS2103 type/tut note/update project content
Delete Note: deletenote
/ deletebutton
Let’s say that if you would like to delete the note from the list there are two option available.
Option 1:
Delete Note in the list of notes.
Format: deletenote INDEX
Option 2: Delete Note with DeleteButton.
Examples:
-
deletenote 1
-
press the
x
delete button to delete the desire notes.
Find Note: findnote
In order to find the desire note, finding with keyword such as the module_code, class_type or note_content is allow.
Delete Note in the list of notes.
Format: findnote KEYWORD
Examples:
-
findnote CS2103T
Listing all note : listnote
To view the list of note. Type listnote
to view the full list of note.
List all note.
Format: listnote
Contributions to Developer Guide
Given below are sections I contributed to the User Guide. They showcase my ability to write documentation targeting end-users. |
Notes Features
Add Notes
The addnote
command allows for tutors to add their notes into TutorAid.
The format for the addnote
command is as follows:
addnote c/<MODULE_CODE> type/<CLASS_TYPE> note/<NOTE_CONTENT>
Overview
The add claim addnotes
mechanism is facilitated by AddNotesCommand
and AddNotesCommandParser
, taking in the
following input from the user: Module_Code
, Class_Type
and Note_Content
, which will construct Notes
objects.
The AddNotesCommand
implements Parser
with the following operation:
-
AddNotesCommandParser#parse()
- This operation will take in aString
input from the user and create individual objects based on the prefixesc/
,type/
andnote/
. TheString
value after the respective prefixes will create the respective objects. A validation check will be done to ensure that the strings that are entered by the user is entered correctly. If any of the strings entered are invalid, an error will be shown to the user to enter the correct format of the respective objects.-
c
would useParserUtil#parseClassId()
to ensure that the module code entered by the user is in the correct format of CSXXXX. -
type
would useParserUtil#parseClassType()
to ensure that the class typed input by the user is in the correct format of CSXXXX. -
note
would useParserUtil#parseContent()
to ensure that the content typed in by the user is in not empty.
-
-
After validation of the individual objects, a
Notes
object would be created with the parameterscode
,type
andcontent
. -
AddNotesCommandParser
would then return aAddNotesCommand
object with the parameter,Notes
object.
The following activity diagram summarizes what happens when a user executes a new command.
Example Scenerio
-
Step 1: The user enters
addnote c/CS2103T type/tut note/Update Project
to add a note for teaching classes. This adds aNotes
object that the user has added to record what needs to be done for the class. -
Step 2:
LogicManager
would useTutorAidParser#parse()
to parse input from the user. -
Step 3:
TutorAidParser
would match the command word given by the user with the correct command. In this example, the given command isaddnote
, thus,AddNotesCommandParser
object would be created with the user’s input. -
Step 4:
AddNotesCommandParser
performs a validation check on each of the respective objects throughAddNotesCommandParser#parse()
. In this case, it would useParserUtil#parseClassId()
,ParserUtil#parserClassType()
andParserUtil#parseContent()
. It would then return aAddNotesCommand
object with anNotes
object. -
Step 5:
LogicManager
would executeAddNotesCommand#execute
. In this particular method, theNotes
object will be check with the rest of the priorNotes
object, to ensure that there is no duplicateNotes
object. If there are no similarNotes
object with the same parameters created previously, it would then be added into the notes list. -
Step 6:
AddNotesCommand
would then return aCommandResult
toLogicManager
, which would show the user that the newNotes
object have been successfully added.