# CampusConnect User Documentation

CampusConnect supports student semester registration, sports booking,
guesthouse booking, hall booking, payment verification, role-based dashboards,
and Excel reports.


## Public Pages

- `/` opens the booking gateway and today's booking status.
- `/auth/login` opens login.
- `/auth/register` allows Student and Staff self-registration only.
- `/auth/forgot-password` opens password reset.
- `/sports`, `/guesthouse`, and `/hall` open booking modules.


## Account Registration

Students and staff may self-register using a RUB email address. After
registration, the app sends an email verification link. The user cannot log in
until the email has been verified.

Privileged roles are created by IT Admin only:

- DAA
- DSA
- DRIL
- PL
- HoD
- SSO
- Finance
- Exam-cell
- Coach
- GuestHouseManager
- CollegeAdmin
- ITAdmin

Solo roles allow only one account:

- DAA
- DSA
- DRIL
- Coach
- CollegeAdmin
- GuestHouseManager
- Finance
- Exam-cell
- ITAdmin

PL and HoD accounts are limited to one account per programme. SSO accounts are
limited by hostel assignment.


## IT Admin

IT Admin can:

- Add users.
- Delete users.
- Reset passwords.
- Add new programmes.
- Assign PL and HoD users to programmes.
- Assign SSO users to hostels.
- Download the user report.

Programmes are managed from the IT Admin Add User page. New programmes appear in
student registration and PL/HoD assignment lists.


## Student Semester Registration

Students can:

- Log in after email verification.
- Open `/student/dashboard`.
- Submit semester registration from `/student/registerForm`.
- Upload a payment receipt when tuition payment is required.
- Select hostel during registration.

Registration notices are sent to Finance, Exam-cell, matching PL/HoD, SSO for
the student's hostel, DAA, and DSA as applicable.


## Semester Registration Review

Finance reviews the uploaded payment receipt. When Finance approves a paid
registration, the student registration status becomes Confirmed.

Exam-cell can view and download semester registration status records. DAA and
DSA can view overall registration reports. PL and HoD can view records for their
programme. SSO users can view students assigned to their hostel scope, including
names and phone numbers.


## Sports Booking

Users can submit outdoor sports bookings from `/sports`.

For online pay-before bookings:

- The user uploads the payment acknowledgement.
- Coach can click Money Paid & Confirm.
- The booking becomes confirmed.
- Finance and CollegeAdmin reports show the confirmed status.

For pay-after/manual bookings, the booking may still be approved, but collection
is handled manually outside the app.


## Guesthouse Booking

Users can submit guesthouse bookings from `/guesthouse`.

For online pay-before-stay bookings:

- The guest uploads the payment acknowledgement.
- GuestHouseManager or CollegeAdmin can click Money Paid & Confirm.
- The booking becomes confirmed.
- Finance reports show the confirmed status.

For pay-after-stay bookings, payment collection is handled manually outside the
app.


## Hall Booking

Users can submit hall booking requests from `/hall`. CollegeAdmin reviews hall
requests and can approve, reject, or cancel according to the configured
cancellation rules.


## Reports

Excel reports are available from role dashboards and admin booking pages.
Monthly reports show the selected month. All-record reports are available for
sports and guesthouse where needed. Empty reports include a clear no-records
message row.


## Demo Users

After running:

```bash
CONFIRM_FLUSH=YES node scripts/flushDatabase.js --seed-demo-accounts
```

All demo users use password:

```text
demo
```

Demo emails:

- `demo.student@rub.edu.bt`
- `demo.staff@rub.edu.bt`
- `demo.daa@rub.edu.bt`
- `demo.dsa@rub.edu.bt`
- `demo.dril@rub.edu.bt`
- `demo.pl@rub.edu.bt`
- `demo.hod@rub.edu.bt`
- `demo.sso@rub.edu.bt`
- `demo.finance@rub.edu.bt`
- `demo.examcell@rub.edu.bt`
- `demo.coach@rub.edu.bt`
- `demo.guesthouse@rub.edu.bt`
- `demo.collegeadmin@rub.edu.bt`
- `demo.itadmin@rub.edu.bt`
