aquaexplorers

Administrator — user manual

This guide walks through the admin area in a sensible order: configure the site, add people and classes, run enrollments and payments, then use reports and communication. Use the overviews below as a map; each section adds practical detail.

How the modules connect

Work through the four stages below in order. Later stages depend on earlier ones (for example, you need branches before you can place a class at a pool).

High-level data flow

Read stages 1 → 4 in order. On small screens they stack top to bottom.

1 Configuration

  • Settings — emails, payments, WhatsApp, exports
  • Branches — each pool or venue

Do this first so classes, fees, and parent payment options behave correctly.

2 People

  • Users — logins: admin, coach, parent
  • Coaches — linked to classes they teach
  • Students — profiles tied to a parent user

Parents must exist before you attach children; coaches must exist before you assign a class.

3 Schedule

  • Swim classes — level, branch, coach, size
  • Lesson sessions — dated lessons on the timetable (attendance, reports)

Each class sits at a branch. Weekly slots define recurring times; lesson sessions are specific dates for that class.

4 Operations

  • Enrollments — review requests, assign class and slot, invoices
  • Enrollment payments — verify payslips, approve or record manual payment for enrollment invoices
  • Counter — create accounts and submit enrollment at reception (same flow as parent Enroll)
  • Attendance — rosters from class timetables and enrolled swimmers

Enrollment ties a student to a class and weekly slot; staff generate and collect fees through enrollment invoices. Enrollment payments is the queue for verifying uploads and recording cash or card at the desk.

  • Branch → swim class: classes are offered at a location.
  • User → student: every swimmer profile belongs to a parent login.
  • Coach → swim class: coaches appear on lessons you assign to them.
  • Swim class + weekly slot + student → enrollment: intake places the swimmer on the class roster for that recurring time.
  • Enrollment invoice → payment: fees are tracked on enrollment invoices; Stripe or manual methods follow your Settings.
  • Lesson sessions → attendance: dated lessons use the same class; coaches mark who attended.

1. First-time setup

Complete these before inviting parents or accepting online enrollment.

Suggested setup order

  1. 1 Dashboard — confirm the app is healthy.
  2. 2 Settings — emails, payments, exports.
  3. 3 Branches — add every pool or venue.
  4. 4 Users & roles — staff and parent logins.
  5. 5 Coaches — assign to classes.
  6. 6 Swim classes — then add sessions.
  1. Dashboard
    • Review revenue and enrollment metrics for a quick health check.
    • Use the sidebar to open students, classes, enrollments, or reports.
  2. Settings
    • Adjust notification and communication options (including email) and other toggles your build exposes.
    • Under parent payment options: enable Stripe (requires STRIPE_SECRET and keys in .env), manual payslip upload for enrollment invoices, or both.
    • Use CSV export links when you need raw payment or operational data.
  3. Branches
    • Create one row per pool or venue so class setup and parent location choices stay accurate.

Stripe will not show to parents until the feature is enabled in Settings and the server is configured with valid API keys.

Public landing page (home)

Control what visitors see on the site home: featured swim class cards and a gallery. Only items marked visible appear on the public page.

  1. Landing page
    • Add or edit "Swimming classes" cards and "Gallery" items with images stored under public media.
    • Use show/hide (visibility) so you can draft content without publishing it.
    • Reorder items with sort order so the home page matches your marketing.

2. People & access

Who can log in, who is taught, and how students link to parents.

Accounts that can log in

Each is a normal user in Users & roles — you assign one or more roles per person.

Admin

Full access to settings, data, and all admin screens.

Coach

Sees assigned classes, sessions, attendance, and their students.

Parent

Enrolls swimmers, pays enrollment invoices, and sees their own children only.

Student (swimmer profile)

For most families, this is not a login: you create a swimmer profile and link it to a parent user, and the parent enrolls for that child. Some schools also use self-managed student logins for older swimmers (created via Counter or Registration).

How they fit together

  • Parent ↔ Student — One parent account can have several student profiles. Enrollment requests and invoices are always tied to a specific student.
  • Coach ↔ Student — Coaches see students who are in their assigned classes through timetables and attendance, not by a direct "link" on the student card alone.
  • Admin — Creates users, classes, and rules; can do everything coaches and parents do where the app allows.
  1. Users & roles
    • Create accounts for admins, coaches, and parents. Each user has one login; roles control which sidebar items appear.
    • Parents need an account before you can attach their children as students.
  2. Coaches
    • Assign coach users to swim classes so their "My classes" and "My sessions" lists populate.
  3. Students
    • Add name, level, branch, parent link, and optional photo.
    • From the list: Progress notes, Certificates (PDF), Edit — use search and pagination on busy sites.

3. Classes, sessions & attendance

Follow this path in the menus when you need to take attendance or check a lesson.

From class to attendance

1 Open Swim classes
2 Sessions for that class
3 Open one lesson date
4 Attendance → save
  1. Swim classes
    • Define level, capacity, branch, and assigned coach.
    • Configure weekly slots for the class, then add lesson sessions (dated lessons) for the timetable and attendance.
  2. Sessions (all classes)
    • Cross-class view of upcoming lessons — useful for staffing and room checks.
  3. Attendance
    • Open a session from the class session list, then Attendance. Coaches can use the same path from their area.
    • Record who attended before relying on reports for attendance history.

4. Enrollments & parent payments

Families submit enrollment from Parent → Enroll (or Counter). Staff work the request under Enrollments; money for enrollment invoices is tracked separately from lesson timetables.

Typical flow

Parent submits enrollment (location, class, weekly slot)

Staff review under Enrollments

Pay online

Stripe on enrollment invoice when enabled

Upload payslip

Parent upload; staff verify

Pay at reception

Record via Enrollment payments

Invoice paid and enrollment activated when your process is complete
  1. Enrollments
    • Open each request, assign swim class and weekly slot, set billing where needed, send or generate invoices, and move statuses through your workflow.
    • Parents track the same requests under Parent → My enrollments.
  2. Enrollment payments
    • Use this queue to approve payslips, reject with a note, or record manual payment (cash/card at desk) for enrollment invoices.

The Stripe webhook must be reachable from the internet in production so online enrollment payments can complete automatically after checkout.

Enrollment payments (admin)

Use this screen when families pay enrollment or intake fees tied to an invoice from Enrollments. It lists payment rows linked to enrollment invoices so you can verify uploads, approve, reject, or record cash at the counter.

Where to open it

Sidebar: Enrollment → Enrollment payments.

  1. Context: Enrollments first
    • Under Enrollments, staff review the request, assign a class, generate an invoice, and move the request to invoice sent when the family should pay.
    • A payment record for that invoice may appear as pending verification (for example after a bank transfer or payslip) or you may record payment manually from this module.
  2. Filters and fields
    • Search: narrow by student name or assigned class / branch.
    • Verification: show all rows, only pending verification, paid, or rejected.
    • Reject note: type the reason before you reject a payslip; it is stored on the payment for staff reference.
    • Manual method: label used when you use Receive manual (for example cash or card at reception).
  3. Row actions
    • View payslip: downloads the uploaded file when one exists.
    • Approve: marks the payment paid, marks the enrollment invoice paid, and sets the enrollment to active (keeps the existing payment method on the row).
    • Reject: sets the payment to rejected and saves your reject note; the family’s enrollment stays on invoice until you handle a new payment or use Mark invoice as paid on the enrollment review screen.
    • Receive manual: same outcome as approve for activating enrollment, but overwrites the payment method with the text in Manual method (typical for counter collection).

You can still mark an enrollment invoice paid from Enrollments → open a request; Enrollment payments is the dedicated queue when you work through verification filters and payslip files in bulk.

Counter

Use this at reception to create or look up accounts and submit an enrollment request with the same steps as Parent → Enroll: student details, preferred location, class (by age), and weekly slot.

  1. Counter
    • Choose Parent & child or Student alone (self account).
    • For a family: find or create a parent by email (temporary password emailed when possible).
    • For self-service: find or create a student login by email.
    • For a child linked to a parent: enter a new swimmer or pick an existing child profile; enter date of birth when adding a new swimmer.
    • Section 3 — Enrollment preferences appears after eligibility is known: select preferred location, then class, then weekly slot; add notes and submit enrollment.

If email fails, ask the family to use "Forgot password" on the login page. Counter actions are recorded in the activity log.

5. Reports, exports & communication

  1. Reports
    • Charts plus drill-down links into students, classes, sessions, and enrollment activity.
  2. Announcements
    • Post news parents should see on their next visit.
  3. Activity log
    • Audit trail for accountability and troubleshooting "who changed what".

Quick troubleshooting

Parents cannot pay online
Check Admin → Settings (Stripe enabled), .env keys, and that the enrollment invoice still shows payment due.
Coach sees no classes
Confirm the coach user is linked under Coaches and assigned to the swim class.
No confirmation email
Check Settings for notification options, mail configuration in .env, and spam folders.
Enrollment payment stuck on pending verification
Open Enrollment → Enrollment payments, find the row, view the payslip if needed, then Approve or Receive manual. If the proof is wrong, reject with a clear note so staff know what to ask the family for.

Never share admin accounts. Use separate users and the Activity log to track changes.