A feature-rich reservation system for small businesses, like salons.
- Frontend: Angular served from Go binary.
- Login: Email & password-based.
- Roles & Permissions: Role-based access; authorized via 'GSESSION' cookie.
- Schedule:
- Only staff with
WRITEpermission can create schedules. - Bulk schedule creation & no conflicts.
- Schedules can only be deleted if not linked to a reservation.
- Weekly recurring schedules.
- Only staff with
- Services:
- Staff with
WRITEorDELETEpermission can manage services. - Services linked to other data like reservation, or staff can’t be deleted but can be hidden.
- Only staff with
WRITEcan assign services to others.
- Staff with
- Reservations:
- Allow Multiple services per reservation.
- Quoted price required.
- No overbooking; cannot delete, only cancel.
- Staff notified on creation or status change.
- Reservation status set to
COMPLETEDonly with payment info. - 1-day reminder notifications for pending appointments.
- Services:
- Clients can view all services.
- Multiple services can be reserved.
- Max price per service:
DECIMAL(6, 2).
- Reservations:
- Clients see valid available times per staff in their timezone.
- Reservations for future dates only; no rescheduling, only cancellations.
- Clients and staff receive notifications on status changes.
- Invoices: Only staff can send invoices.
- Online Payment: Clients can pay via an online invoice.
migrate create -ext sql -dir ./database/migrations/ -seq create_users_table.docker run --rm -v $(pwd)/database/migrations:/database/migrations migrate/migrate create -ext sql -dir ./database/migrations/ -seq payment_detailgo clean -testcache