PROJECT: Club Connect


Overview

Club Connect is an application targeted at club members who are students at the National University of Singapore (NUS). It aims to make the tedious process of club management easier and more effective.

Club Connect is an application that a user who loves to type would fancy - in other words, it uses a Command Line Interface (CLI). All output is displayed on a Graphical User Interface (GUI) - which is just computer jargon for a display that includes panes, menus and message boxes.

Code Contributed : [Functional code] [Test code]

Major Enhancement: Account Management

Account Management are authentication which members can store unique data into, logs into their own account to modify their account details and also start the Club Connect by Signing up the first user.

Given below are sections I contributed to the User Guide. They showcase my ability to write technical documentation and the technical depth of my contributions to the project.

Sign Up Feature

Sign Up feature allows the setting up of Club Connect. It adds the first person into Club Connect.


Start of Extract (from UserGuide)

Signing up a member: signup (since v1.4)

Signs up a member to Club Connect.
Format: signup n/NAME p/PHONE_NUMBER e/EMAIL m/MATRIC_NUMBER [t/TAG]…​
Aliases: register, enroll

A member can have any number of tags (including 0).
  • You must not specify a group while signing up.

  • The member who signed up will be automatically be added to a group named exco.

  • You can only sign-up once.

  • You must use the credentials of the signed-up member to continue using Club Connect.

Refer to login command documentation for user credentials.

Example: signup n/Alan Walker p/97456895 e/alanw@gmail.com m/A0156489C t/President

Figure 5 shows the output of the signup command.

signupoutput
Figure 1. Output of signup command.

End of Extract (from UserGuide)

Log In Feature

Log In feature allows each and every member to have their own unique account which stores their data.

Start of Extract (from UserGuide)

Logging in to the application: login (Since v1.3)

Logs in a member to Club Connect.
Format: login u/USERNAME pw/PASSWORD
Alias: signin

Example: login u/A0123456H pw/password

  • Use your MATRIC NUMBER as your username.

  • The default password is password. We advise you to change your password using the changepass command once you’ve logged in.

Figure 6 shows the output of the login command.

loginoutput
Figure 2. Output of login command.

End of Extract (from UserGuide)

Change Password Feature

Change Password Feature allows members to change their password to improve the security of their accounts.

Start of Extract (from UserGuide)

Changing password : changepass (Since v1.4)

Changes your password, if you are logged in.

Format: changepass u/USERNAME pw/OLD_PASSWORD npw/NEW_PASSWORD
Alias: changepw

  • Members are only able to change their own password.

  • Exco members can change the password of any member. The member is indicated by their username.

Examples:

  • changepass u/A0123456H pw/password npw/pword
    Changes the password of the member with username A0123456H to pword.

  • changepass u/A1234567H pw/password npw/brandnewpassword
    Changes the password of the member with username A1234567H to brandnewpassword.

Figures 7 and 8 show the output of the changepass command (before and after).

changepassbefore
Figure 3. Before the changepass command has been executed.
changepassafter
Figure 4. After the changepass command has been executed.

End of Extract (from UserGuide)

Log Out Feature

Log out feature allows members to switch accounts between them.

Start of Extract (from UserGuide)

Logging out of the application : logout (Since v1.4)

Logouts out the user from Club Connect.
Format: logout
Alias: signout

Figure 9 shows the output of the logout command.

logoutoutput
Figure 5. Output of logout command.

End of Extract (from UserGuide)

Minor Enhancement: Display Member Details

Revamped Selected User Interface to display the details of the member selected

Start of Extract (from UserGuide)

Selecting a member : select (since v1.5rc)

Selects the member identified by the index number used in the most recent member listing.
Format: select INDEX
Aliases: s, show

  • Selects the member and loads the member page the member at the specified INDEX.

  • The index refers to the index number shown in the most recent listing.

  • The index must be a positive integer 1, 2, 3, …​

In order to get the UI to look as intended, check out [Tips].

Examples:

  • list
    select 2
    Selects the 2nd member in Club Connect.

  • find Betsy
    s 1
    Selects the 1st member in the results of the find command.

Figure 25 shows the output of the select command.

selectoutput
Figure 6. Member overview panel with a member’s details.

End of Extract (from UserGuide)

Implementation

Implementation of features from major enhancement.

Given below are sections I contributed to the Developer Guide. They showcase my ability to write technical documentation and the technical depth of my contributions to the project.

Start of Extract (from Developer Guide)

Account Management

Account Management are authentication which members can store unique data into, logs into their own account to modify their account details and also start the Club Connect by Signing up the first user.

Current Implementation

Account Management mechanism is facilitated by several command classes in Club Connect.

Signing up

signup mechanism is fascilitated by the SignUpCommand class. It allows the setting up of Club Connect.

SignUpCommand can only be executed once. Only can be executed again after clearing Club Connect.

The SignUpCommand extends for Command. It is not an undoable command. Figure 19 (shown below) depicts the UML representation of the SignUpCommand.

SignUpCommandUML

Figure 19. UML Diagram of SignUpCommand.

Parsing of command is performed by SignUpCommandParser, which returns a SignUpCommand object after parsing Name, Phone, Email, Matric Number, [Tags]. Figure 20 below shows the sequence diagram of the SignUpCommandParser.

SDforSignUpCommand

Figure 20. Sequence Diagram for the parsing of `SignUpCommandParser.`

Figure 21 below shows the high-level sequence diagram of the command execution.

SDSignUp

Figure 21. High-Level Sequence diagram of signing up a member.

Logging in

login mechanism is facilitated by the LogInCommand class. It allows Exco members to use Exco privileges in the Club Book. It also allows both Members and Exco to have their own account. The LogInCommand consists of the following fields:

  • Username - Username of the member.

  • Password - Password of the member.

The LogInCommand extends for Command. It is not an undoable command. Figure 22 (shown below) depicts the UML representation of the LogInCommand.

LogInCommandUML

Figure 22. UML Diagram of LogInCommand.

Parsing of command is performed by LogInCommandParser, which returns a LogInCommand object after parsing Username and Password object. Figure 23 below shows the sequence diagram of the LogInCommandParser.

SDforLogInCommand

Figure 23. Sequence diagram of LogInCommandParser.

Figure 24 below shows the high-level sequence diagram of the command execution.

SDLogIn

Figure 24. High-Level Sequence diagram of logging in a member.

Changing Password

changepass mechanism is facilitated by the ChangePasswordCommand class. It allows Members to change their current password to a new password. The ChangePasswordCommand consist fo the following fields:

  • Username - Username of the member.

  • Password - Current Password of the member.

  • NewPassword - New Password given by the member.

ChangePasswordCommand extends from Command and not from UndoableCommand, as it is not an undoable command. Figure 25 (shown below) depicts the UML representation of the ChangePasswordCommand.

ChangePasswordUML

_Figure 25. UML Diagram of ChangePasswordCommand.

Parsing of command is performed by ChangePasswordCommandParser, which returns a ChangePassword object after parsing Username, Password and Newpassword. Figure 26 below shows the sequence diagram of the ChangePasswordCommandParser.

SDforChangePasswordCommand

_Figure 26. Sequence diagram of ChangePasswordCommmandParser.

Figure 27 below shows the high-level sequence diagram of the command execution.

SDChangePassword

_Figure 27. High-Level Sequence diagam of changing the password of a member

End of Extract (from Developer Guide)

Other Contributions

  • Implement Sort functions where member shown will always be sorted in alphabetical order.

  • Reported existing bugs to teammates.

  • Reported bugs and suggestions for other teams in the class.