Welcome to HallPointer, your one-stop go-to tool as a leader for managing Co-Curricular Activity (CCA) members in a hall setting. This guide will help you get started with using HallPointer, so you can easily keep track of member details, attendance, assigned points and more—all without the hassle of traditional spreadsheets.
HallPointer is crafted to prioritize simplicity and efficiency. Whether you’re tracking member attendance, organizing contact details, or updating points, HallPointer’s mix of easy-to-use commands and real-time visual feedback makes usage simple and straightforward, even if you’re not a tech expert. Plus, built-in checks ensure accuracy, preventing you from wasting your precious time on hunting down data entry errors.
This guide will walk you through HallPointer’s main features and show you step-by-step how to use it effectively. By the end, you’ll know how to make the most of HallPointer’s tools, saving time and allowing you to focus on what truly matters—building a vibrant and engaged community.
Make sure Java is installed:
Check that Java 17
or above is installed by opening a command terminal (Command Prompt for Windows, Terminal for macOS/Linux) and typing java -version
before pressing Enter.
If it is not installed, download and install the right one for your system by following the appropriate guide before continuing: Windows, macOS, Linux.
Download the latest HallPointer application:
Download the most recent HallPointer .jar
file from the release page here.
Place the file in your desired folder:
Move the downloaded .jar
file into the home folder where you want to store your data.
Run HallPointer:
cd
command to navigate to the folder where you saved the .jar
file.java -jar hallpointer.jar
Below the menu, you will see a command box. You can type commands in this box and press Enter to execute them.
For example, typing help
and pressing Enter will show a help window with instructions.
Here are some example commands you can try:
list
: Lists all members.add_member n/May Doe r/4-3-301 t/maydoe123 tag/logistics
: Adds a member named May Doe
to HallPointer.delete_member 3
: Deletes the 3rd member shown in the current list.clear
: Deletes all members.exit
: Exits the app.TIP:
Action | Format / Examples |
---|---|
Add member | add_member n/NAME r/ROOM_NUMBER t/TELEGRAM [tag/TAG]… e.g., add_member n/James Ho r/4-3-301 t/jamesho123 tag/friend tag/colleague |
Update member | update_member INDEX [n/NAME] [r/ROOM_NUMBER] [t/TELEGRAM] [tag/TAG]… e.g., update_member 2 n/James Lee r/5-2-203 t/jameslee99 |
Delete member | delete_member INDEX e.g., delete_member 3 |
Add session | add_session s/NAME d/DATE p/POINTS m/INDEX [m/INDEX]… e.g., add_session s/Rehearsal d/24 Oct 2024 p/2 m/1 m/3 |
Delete session | delete_session s/NAME m/INDEX [m/INDEX]… e.g., delete_session s/Rehearsal m/1 m/3 |
Find members | find_members KEYWORD [MORE_KEYWORDS]… e.g., find_members James Jake |
Find sessions | find_sessions KEYWORD [MORE_KEYWORDS]… e.g., find_sessions Team meeting |
List | list |
Clear | clear |
Help | help |
Exit | exit |
Understanding the Command Format:
UPPER_CASE
are the placeholders you'll replace with your own input.add_member n/NAME
, NAME
can be replaced with John Doe
The full command will be add_member n/John Doe
.[square brackets]
are optional. You can choose to include them or leave them out.n/NAME [tag/TAG]
can be used as n/John Doe tag/friend
or as n/John Doe
.…
after them can be used multiple times or not at all.[tag/TAG]…
can be typed as
(i.e., used 0 times and left out entirely), tag/friend
, tag/friend tag/family
, etc.n/NAME t/TELEGRAM
, t/TELEGRAM n/NAME
is also acceptable.help
, list
, exit
, and clear
) , any extra information you typed after the command will be ignored.help 123
, it will be interpreted as help
.help
Displays an alphabetical list of all available commands for quick and easy reference and a link to the user guide.
Format: help
Example
help
displays the help pageAdds a member to HallPointer. A member must have a name, room assignment, and Telegram username. You can also add tags to help categorize members.
Format: add_member n/NAME r/ROOM_NUMBER t/TELEGRAM_HANDLE [tag/TAG]…
Constraints:
ROOM_NUMBER
should be in the format BLOCK-FLOOR-ROOM
and each field should be numeric.Tips
Examples:
add_member n/John Doe r/4-3-301 t/johndoe123
adds a member with name John Doe
in room 4-3-301
and Telegram username johndoe123
.add_member n/Betsy Crowe d/o Alice Crowe r/2-5-120 t/betsy_crowe tag/logistics
adds a member with name Betsy Crowe d/o Alice Crowe
in room 2-5-120
, Telegram username betsy_crowe
, and tag logistics
.Shows a list of all members registered in HallPointer.
Format: list
Example:
list
shows all members in HallPointer.Updates an existing member in HallPointer.
Format: update_member INDEX [n/NAME] [r/ROOM_NUMBER] [t/TELEGRAM_HANDLE] [tag/TAG]…
Constraints:
Tips:
INDEX
. The index refers to the index number shown in the displayed member list. The index must be a positive integer 1, 2, 3, ….tag/
without specifying any tags after it.Examples:
update_member 1 t/johndoe123_updated n/Johnson Doe
updates the Telegram username and name of the 1st member to be johndoe123_updated
and Johnson Doe
, respectively.update_member 2 n/Betsy Crower tag/
updates the name of the 2nd member to be Betsy Crower
and clears all existing tags.update_member 2 tag/Friend tag/Leader
updates the tags of the 2nd member to Friend
and Leader
.Finds members whose names contain any of the given keywords.
Format: find_members KEYWORD [MORE_KEYWORDS]…
Constraints
hans
will match Hans
.Hans Bo
will match both Bo Hans
and Hans Bo
.Han
will not match Hans
.Hans Bo
will return both Hans Gruber
and Bo Yang
.Note: The find_members
command does not stack filters. Each use of find_members
filters the original full list rather than further filtering any previously filtered list.
Examples:
Deletes the specified member from HallPointer.
Format: delete_member INDEX
Note: The index refers to the index number shown in the displayed member list and must be a positive integer (1, 2, 3, …).
Examples:
list
followed by delete_member 2
deletes the 2nd member in HallPointer.find_members Betsy
followed by delete_member 1
deletes the 1st member in the results of the find
command.Adds a session to HallPointer and associates it with specified members. A session contains a name, date, and points awarded to each member attending the session. You can add multiple members to a session.
Format: add_session s/NAME d/DATE p/POINTS m/INDEX [m/INDEX]…
Constraints:
Tips:
Examples:
list
followed by add_session s/Rehearsal d/24 Oct 2024 p/2 m/1 m/3
adds a session named "Rehearsal" on 24 Oct 2024 worth 2 points, associated with the members at indexes 1 and 3 in the displayed list.This command finds members who have attended sessions with names that contain any of the specified keywords.
Format: find_sessions KEYWORD [MORE_KEYWORDS]…
Constraints:
meeting
will match Meeting
.AGM meeting
will match sessions with names containing either AGM
or meeting
.team
will not match tea
.find_sessions AGM meeting
will return members with sessions named AGM meeting
or team meeting
.Examples:
find_sessions Team
– Returns any member associated with sessions named "Team meeting," "Team bonding," etc.find_sessions AGM meeting
– Returns members associated with sessions such as "AGM meeting" or "team meeting."Deletes a session associated with one or more members in HallPointer.
Format: delete_session s/NAME m/INDEX [m/INDEX]…
Constraints:
meeting
will match Meeting
.Examples:
list
followed by delete_session s/Rehearsal m/1 m/3
Deletes the session named "Rehearsal" for the members at indexes 1 and 3 in the displayed list.Clears all entries from HallPointer.
Format: clear
Exits the program.
Format: exit
Data is saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
HallPointer data is saved automatically as a JSON file at [JAR file location]/data/hallpointer.json
. Advanced users are welcome to update data directly by editing that data file.
Caution: If your changes to the data file make its format invalid, HallPointer will discard all data and start with an empty data file at the next run. It is recommended to back up the file before editing it.
Q: How do I transfer my data to another computer?
A: Install the app on the other computer and overwrite the empty data file it creates with the file that contains the data from your previous HallPointer home folder.
Integer Overflow Limitation: HallPointer does not handle integer overflow, which could lead to incorrect data behavior if extremely large numbers are used (e.g., points or room numbers that exceed typical ranges). Users are advised to avoid excessively high values as this may disrupt the app’s functionality. While unlikely in standard use, such inputs could be considered abnormal or potentially malicious.
Multiple Screens Issue: If you move the application to a secondary screen and later switch to using only the primary screen, the GUI may open off-screen. The remedy is to delete the preferences.json
file created by the application before running the application again.
Help Window Minimization: If you minimize the Help Window and then run the help
command 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.
Graphical User Interface (GUI)
A visual interface that allows users to interact with the application using graphical elements like buttons and icons instead of text commands.
Command Terminal
Where you enter commands to run the HallPointer application (e.g., Command Prompt on Windows, Terminal on macOS/Linux).
Tag
A label to categorize members (e.g., "logistics," "captain").
Session
An event or activity for members (e.g., "Rehearsal") with points awarded for attendance.
JSON File
The file where HallPointer saves your data automatically (hallpointer.json
).
Points
Scores awarded to members for attending sessions.
Telegram Handle
The unique Telegram username for each member.