Welcome to CCAttendance! We've created this friendly desktop app for recording and tracking attendance of students in CCAs. It’s built specially for hall attendance managers who want a simpler, faster way to track who’s showing up for which CCAs. If the current system feels messy and tiring to use, CCAttendance is here to make your life easier! CCAttendance is your helpful assistant that makes it easy to organise students and coordinating hall activities all in one place.
Ensure you have Java 17 or above installed in your Computer.
Mac users: Ensure you have the precise JDK version prescribed here.
Download the latest .jar file from here.
Copy the file to the folder you want to use as the home folder for CCAttendance.
Open a command terminal, cd into the folder you put the jar file in, and use the java -jar CCAttendance.jar command to run the application.
A GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.

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.
Some example commands you can try:
list : Lists all students.
create_s n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 : Adds a contact named John Doe to the list.
delete_s 3 : Deletes the 3rd student shown in the current list.
clear : Deletes all contacts.
exit : Exits the app.
Refer to the Features below for details of each command.
Each student is represented by a student card. Other than the name, phone number, address, and email, the student card also shows their attendance and role in each CCA.
The role is represented by the element labeled A which shows the CCA on the left and the role inside the square brackets. E.g. the student above is a Member of Boxing CCA.
The attendance is represented by the element labeled B which shows the CCA on the left and the number of sessions attended out of the total sessions in the brackets. E.g. the student above has attended 6 out of 20 sessions in Boxing CCA.
Each CCA is represented by a CCA card. The card shows the name of the CCA, the roles available in the CCA, and the total sessions.
The name of each role are the texts in the square brackets. E.g. the CCA above has 3 roles: President, Vice-President, and Member. Member is the default role and will thus appear in every CCA.
Notes about the command format:
Words in UPPER_CASE are the parameters to be supplied by the user.
e.g. in create_s n/NAME, NAME is a parameter which can be used as create_s n/John Doe.
Items in square brackets are optional.
e.g n/NAME [c/CCA_NAME] can be used as n/John Doe c/Basketball or as n/John Doe.
Items with ... after them can be used multiple times including zero times.
e.g. [r/ROLE_NAME]... can be used as r/Captain r/Vice-Captain or as r/Captain or as nothing at all.
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.
Extraneous parameters for commands that do not take in parameters (such as help, list, exit and clear) will be ignored.
e.g. if the command specifies help 123, it will be interpreted as help.
If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines as space characters surrounding line-breaks may be omitted when copied over to the application.
helpShows a message explaning how to access the help page.
Format: help
listShows a list of all students in the student list.
Format: list
findFinds students whose names contain any of the given keywords.
Format: find KEYWORD [MORE_KEYWORDS]
hans will match Hans.Hans Bo will match Bo Hans.Han will not match Hans.OR search).
e.g. Hans Bo will return Hans Gruber, Bo Yang.Examples:
find John returns john and John Doefind alex david returns Alex Yeoh, David Li
create_sCreates and adds a student to the list of students.
Format: create_s n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS
/ in names, making names like David s/o Daniel invalid.Examples:
create_s n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 creates a student named John Doe, with phone number 98765432, email of johnd@example.com, and address of John street, block 123, #01-01.create_cCreates and adds a CCA to the list of CCAs.
Format: create_c c/CCA_NAME
Member and total sessions set to 0 by default.R0ck-n-R0ll is a valid CCA name, but -Basketball- is not. It is up to the user to make meaningful CCA names.Caution:
CCA names are case-sensitive. For example, Basketball and basketball are considered different CCA names.
Examples:
create_c c/Basketball creates a CCA named Basketball, with a role Member and a total sessions set to 0.edit_sEdits the name, phone, email, or address of an existing student in the student list.
Format: edit_s INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS]
INDEX. The index refers to the index number shown in the displayed student list. The index must be a positive integer (1, 2, 3, …).n/, p/, e/, a/) must be provided.Examples:
edit_s 1 p/91234567 e/johndoe@example.com Edits the phone number and email address of the student at index 1 to be 91234567 and johndoe@example.com respectively. Their name, address, CCAs, and roles remain unchanged.edit_s 3 n/Peter Tan a/Blk 123, Clementi Ave 4, #05-06 Edits the name and address of the student at index 3. Their phone, email, CCAs, and roles remain unchanged.edit_cEdits an existing CCA in the CCA list.
Format: edit_c INDEX [c/CCA_NAME] [r/ROLE_NAME]... [t/TOTAL_SESSIONS]
Caution:
Role names are case-sensitive. For example, Captain and captain are considered different.
INDEX. The index refers to the index number shown in the displayed CCA list. The index must be a positive integer (1, 2, 3, …).Member role will automatically be created.r/ without specifying any roles after it remove all the CCA’s roles except for Member.Member.Examples:
edit_c 1 c/Volleyball r/Captain r/Vice-Captain t/40 Edits the CCA with the first index in the CCA list. Renames it to Volleyball, updates the available roles to Captain, Vice-Captain and Member, and updates the total sessions to 40.add_cAssigns an existing CCA from the CCA list to a specific student. The student will be assigned a default role (e.g., Member) for the added CCA.
Format: add_c INDEX c/CCA_NAME
CCA_NAME to the student at the specified INDEX.INDEX refers to the index number shown in the displayed student list. The index must be a positive integer (1, 2, 3, …).CCA_NAME provided must exactly match the name of a CCA already present in the main CCA list (use list or view the CCA panel to see available CCAs).Examples:
add_c 2 c/Tennis Assigns the existing Tennis CCA to the student at index 2 in the current student list. The student gets the default role for Tennis.add_rAdds a role to a student in a CCA.
Format: add_r INDEX c/CCA_NAME r/ROLE_NAME
INDEX in the CCA.Member).Tip:
If you want to edit the role of a student in a CCA, you can use remove_r to remove the existing role and then use add_r to add the new role.
Examples:
add_r 2 c/Basketball r/Captain Adds the role Captain to the 2nd student in the student list in the CCA Basketball.attendRecords the attendance of a student in a CCA.
Format: attend INDEX c/CCA_NAME a/AMOUNT
INDEX in the specified CCA.Examples:
attend 2 c/Basketball a/1 Records the attendance of the 2nd student in the student list in the CCA Basketball one time (i.e. increase attendance by 1).attend 3 c/Basketball a/2 Records the attendance of the 3rd student in the student list in the CCA Basketball two times (i.e. increase attendance by 2).delete_sDeletes the specified student from the list of students.
Format: delete_s INDEX
INDEX.Examples:
list followed by delete_s 2 deletes the 2nd student in the student list.find Betsy followed by delete_s 1 deletes the 1st student in the results of the find command.delete_cDeletes the specified CCA from the list of CCAs.
Format: delete_c INDEX
INDEX.Examples:
delete_c 2 deletes the 2nd CCA in the CCA list.remove_rRemoves a role from a student in a CCA.
Format: remove_r INDEX c/CCA_NAME
INDEX in the CCA (i.e. turns the student into a Member).Examples:
remove_r 2 c/Basketball Removes the role of the 2nd student in the student list in the CCA Basketball.remove_cRemoves a specific CCA assignment (including its associated role and attendance) from a student.
Format: remove_c INDEX c/CCA_NAME
CCA_NAME from the student at the specified INDEX.INDEX refers to the index number shown in the displayed student list. The index must be a positive integer (1, 2, 3, …).CCA_NAME for the removal to be successful.Examples:
remove_c 1 c/Basketball removes the Basketball CCA assignment from the student at index 1 in the current student list.clearClears all entries in both student and CCA list.
Format: clear
exitExits the program.
Format: exit
CCAttendance data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
CCAttendance data are saved automatically as a JSON file [JAR file location]/data/addressbook.json. Advanced users are welcome to update data directly by editing that data file.
Caution:
If your changes to the data file makes its format invalid, CCAttendance will discard all data and start with an empty data file at the next run. Hence, it is recommended to take a backup of the file before editing it.
Furthermore, certain edits can cause CCAttendance to behave in unexpected ways (e.g., if a value entered is outside the acceptable range). Therefore, edit the data file only if you are confident that you can update it correctly.
Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous CCAttendance home folder.
preferences.json file created by the application before running the application again.help command (or use the Help menu, or the keyboard shortcut F1) again, the original Help Window will remain minimized, and no new Help Window will appear. The remedy is to manually restore the minimized Help Window.| Action | Format, Examples |
|---|---|
| Help | help |
| List | list |
| Find | find KEYWORD [MORE_KEYWORDS]e.g., find James Jake |
| Create Student | create_s n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS e.g., create_s n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 |
| Create CCA | create_c c/CCA_NAME e.g., create_c c/Basketball |
| Edit Student | edit_s INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS]e.g., edit_s 2 n/James Lee e/jameslee@example.com |
| Edit CCA | edit_c INDEX [c/CCA_NAME] [r/ROLE_NAME]... [t/TOTAL_SESSIONS]e.g., edit_c 2 c/Basketball r/Captain r/Vice-Captain t/40 |
| Add CCA | add_c INDEX c/CCA_NAME e.g., add_c 2 c/Basketball |
| Add Role | add_r INDEX c/CCA_NAME r/ROLE_NAME e.g., add_r 2 c/Basketball r/Captain |
| Record Attendance | attend INDEX c/CCA_NAME a/AMOUNTe.g., attend 2 c/Basketball a/1 |
| Delete Student | delete_s INDEXe.g., delete_s 3 |
| Delete CCA | delete_c INDEXe.g., delete_c 2 |
| Remove Role | remove_r INDEX c/CCA_NAMEe.g., remove_r 2 c/Basketball |
| Remove CCA | remove_c INDEX c/CCA_NAMEe.g., remove_c 2 c/Basketball |
| Clear | clear |
| Exit | exit |