πŸ“– User Guide

πŸ“Œ Table of Contents

  1. ✨ Introduction
  2. πŸ‘‹ Quick Overview
  3. πŸ›  Installation
  4. πŸš€ Getting Started
  5. πŸ“š Features
  6. πŸ›  Troubleshooting
  7. πŸ€” FAQs
  8. πŸ“ Command Summary
  9. πŸ“§ Contact Support

Introduction

Welcome to WhoDat, the fastest way for NUS SoC teaching assistants to manage student contacts! πŸŽ“ Designed for fast typists, WhoDat lets you find students grouped by tags and classes effortlessly with just a few keystrokes.

Say goodbye to:
❌ slow, cluttered spreadsheets that take too much procrastination to set up
β€”now you can
βœ… add and retrieve student details in seconds πŸš€

With a minimalist graphic interface, WhoDat ensures that your contact management is efficient, distraction-free, and perfectly suited for busy student tutors like you.

Quick Overview

First time using WhoDat? Not sure where to start? Fret not, here's a quick overview of WhoDat.

  • To start installing and running the app, refer to the Getting Started section.
  • If you need a compilation of the available commands, check out our Command Summary.
  • Is there a pressing question on your mind? The FAQ might have what you are looking for.

Installation

Download whodat.jar from our latest github release:
https://github.com/AY2425S2-CS2103T-T14-3/tp/releases/tag/v1.6 πŸ”₯

Getting Started

  1. Open up Terminal (if you're using Mac OS) and command shell if you're using Windows. Navigate to the folder where the jar file is using the following instruction:
    cd ~/Downloads
  1. Start running the application by copy-pasting in the following command:
    java -jar whodat.jar
  1. Your application window will pop up, and you can start managing contacts like a boss. πŸ‘¨β€πŸ’»πŸ‘©β€πŸ’»

Features

Feature 1: Add Contact

🎯 Purpose: Want to save student details without memorizing 100+ names? This feature lets you add a student's name, ID, NUSNET ID, and tutorial class. πŸ“

πŸ”€ Command Format:
Note: Bracketed fields "[ ]" are optional.

add n/name i/ID e/NUSNET-ID c/class [t/tag1] [t/tag2]

πŸ–₯ Example:

add n/Lin Xinyi i/A0277024H e/E1136951 c/CS1101-03 t/NeedHelp

πŸ’‘ How it works:

  • Name: English alphabets only (no special characters or numbers) and we have made it case-insensitive, and it will be automatically formatted to Title Case. ✨
  • Student ID: Starts and ends with a letter, with seven numbers in between (e.g., A1234567X). πŸ”
  • NUSNET ID: Always starts with β€˜E’ followed by seven digits. Your email will be generated automatically (because we are nice like that). πŸ“§
  • Class: Simple as how you remember, you may format it as [course code]-[tutorial number] (e.g. CS1101-03 for CS1101, Tutorial 03). However, go ahead if you would like to customize class field format however you want! 😎
  • Tag: Optional tag(s) to attach remarks about a student, e.g. NeedHelp. You may add more than one tags! Each tag must be less than 16 characters long and contains NO SPACE.

πŸ”Ž Duplicate Check: If a student with the same student ID or NUSNET ID exists, we will stop you right there! No cloning allowed. 🚫

❕Case Sensitivity: ClassId, StudentId, NUSNETId and Tag are case-sensitive, only Name is not.


Feature 2: Delete Contact

🎯 Purpose: Remove students who dropped out, switched classes, or never actually existed in your list. πŸ—‘

πŸ”€ Command Format:

delete ID

πŸ–₯ Example:

delete A0272111H
delete a0272111h

πŸ›‘ What to expect:

  • Case-insensitive search
  • If the ID exists, it is now gone forever (unless you re-add it, of course). πŸƒβ€β™‚οΈπŸ’¨
  • If the ID does not exist, we will let you knowβ€”because deleting a ghost is not possible. πŸ‘»

Feature 3: Mass Delete Contacts

🎯 Purpose: Remove multiple students at one go. πŸ—‘

πŸ”€ Command Format:

m_delete ID1, ID2, ...

πŸ–₯ Example:

m_delete A0272111H, A1234567G, A0123456F

πŸ›‘ What to expect:

  • No confirmation prompt β€” deletions happen instantly in this version.
  • At least one student ID must be supplied. If multiple student IDs are supplied, they must be comma-separated.
  • Only valid and existing student IDs will be deleted, and they’ll appear under the Deleted Students section.
  • All invalid student IDs (i.e. incorrect format) will be shown under the Invalid Student IDs section.
  • All valid but non-existent student IDs will appear under the Missing Student IDs section.

πŸ”Ž Duplicate Check:

  • Duplicate valid IDs will be removed before proceeding with mass-delete. The student ID will be displayed only once in the Missing Student IDs section or Deleted Students section.
  • Duplicate invalid IDs are not filtered out β€” they will be listed as provided in the Invalid Student IDs section, but will not affect the operation.

πŸ’‘ What Counts as a Valid Student ID?

  • Begin with a capital A
  • Follow with 7 digits
  • End with any capital letter
  • E.g. A1234567G

Feature 4: List Contact

🎯 Purpose: Want a bird’s-eye view of all your students? Use this to list all stored contacts. πŸ¦…

πŸ”€ Command Format:

list

πŸ’‘ Bonus: If you accidentally type something extra, not to worryβ€”we will still show the list and gently correct you. πŸ€—


Feature 5: Edit Contact

🎯 Purpose: Mistakes are meant to be made. So are typos. No problemβ€”this feature lets you update any information easily. πŸ”„

πŸ”€ Command Format:

edit StudentID prefix/new_value

πŸ–₯ Example:

edit A0272222H n/Xinyi

πŸ›  How to use:

  • Key in the case-sensitive student ID to locate the student whose info you want to change.
  • n/ for name, i/ for student ID, e/ for NUSNET ID, c/ for class.
  • The new value must follow the same rules as adding a contact. πŸ‘¨β€βš–οΈ

Feature 6: Find Contact

🎯 Purpose: Need to find a student’s details fast? Search by name! πŸ”

πŸ”€ Command Format:

find name
find StudentId

πŸ–₯ Example:

find Jane Doe
find A1234567H

πŸ’‘ Cool Features:

  • Case-insensitive name search (We do not judge your capitalization skills). πŸ” 
  • Partial matches work as far as a whole word is matchedβ€”so even if you only remember "Jane," you are good to go. But beware! StudentId has to be the exact match🧠

Feature 7: Filter Contact

🎯 Purpose: Want to only see students from a specific tutorial class, or with a specific tag? You can use the filter command!

πŸ”€ Command Format:

filter_c classId
filter_t tag

πŸ–₯ Example:

filter_c cs1231-05
filter_t NeedHelp

πŸ’‘ Keep in mind:

  • You can filter by classId or Tag, but not both! 🚦
  • Both searches are case-insensitive for your convenience.

Feature 8: Help

🎯 Purpose: Want to learn about how to use different commands? Type help and help will be right there!

πŸ”€ Command Format:

help

πŸ’‘ How it Works:

  • A website link will pop up in a window, just copy the link and paste it to your browser!

Feature 9: Clear

🎯 Purpose: New semester? Clear your data to make space for the new students!

πŸ”€ Command Format:

clear

πŸ’‘ Keep in mind:

  • No confirmation window will pop up, and no redo is possible. So you have to make up your mind before hitting enter!

Feature 10: Exit

🎯 Purpose: End of the day, close the application and take a break!

πŸ”€ Command Format:

exit

πŸ’‘ Keep in mind:

  • All data will be saved upon exiting, and you can always come back to it!

Troubleshooting

πŸ” Invalid input? Follow the error messagesβ€”they exist for a reason! 😜

πŸ” Duplicate entry? Each student ID and NUSNET ID must be unique, so check your list first. πŸ“‹

πŸ” Forgot the command? Go to "Help" tab on the top left of the window, or simply type help, and there you will find everything you need to know. πŸ˜†

πŸ” Unable to access jar file? Make sure to copy the jar file to your device's Downloads folder, and try following the start guide again!


FAQs

❓ Q: How strict is the input format?
πŸ’‘ A: Very strict! We want to keep data clean and accurateβ€”no messy databases here. 🧼

❓ Q: Can I update any field?
πŸ’‘ A: Yes! Just use the correct update command, and remember to key in the student ID first, and you’re good to go. πŸ”„

❓ Q: How do I add a tag to an existing student, if I forgot to add tag when keying in the information?
πŸ’‘ A: Use the edit function here, and change the Tag field just like any other! If you want to add more than one tags, just use more than one t/tag fields!

πŸ–₯ Example:

edit A0272222H t/NeedHelp t/LateSubmission

Command Summary

Command Format, Examples
Help help
Add add n/name i/studentId e/emailid c/classId
e.g. add n/Joshua Lai i/A1234567S e/E1234567 c/cs1231-05
Delete delete studentId
e.g. delete A1234567S
Mass Delete m_delete studentId1, studentId2
e.g. m_delete A1234567S, A0123456B
Edit edit StudentID prefix/new_value
e.g. edit A0272222H n/Xinyi
List list
Find find name or find studentId
e.g. find Alex or find A1234567S
Filter filter_c classId or filter_t tag
e.g. filter_c cs1231-05 or filter_t sampletag
Clear clear
Exit exit

Contact Support

Need help? Have feedback? Found a bug? 🐞 Drop us an email at E1136951@u.nus.edu, and we’ll get back to you faster than you can type add n/John Doe! πŸ’Œ