The task is to create a mobile web application that will allow:
- viewing studios, types of classes, and schedules;
- booking spots for classes;
- paying online or choosing "payment on site";
- receiving confirmations and reminders (e-mail + WhatsApp);
- automatically creating events in Google Calendar for the studio/trainer.
Administrators should be able to manage schedules, studios, trainers, and the client database.
2. Main functionality
2.1. User roles
1. Client
- selecting a location;
- selecting a type of class;
- selecting a date and time;
- entering contact details;
- online payment / or choosing "payment on site";
- receiving confirmation.
2. Administrator
- managing companies, studios, and halls;
- creating/editing types of classes;
- setting up schedules;
- managing trainers;
- viewing clients and bookings.
3. Trainer
- receiving notifications about new bookings;
- viewing their own schedule (reading).
3. User Flow
3.1. Selecting a studio
The user sees a list:
The studio is linked to its Google Calendar.
3.2. Selecting a type of class
List of classes:
- Adults Group
- Kids Group
- My Own Group
- Private Session
Show:
- title,
- description,
- price,
- duration.
3.3. Selecting a date and time
Show:
- available slots (date/time),
- trainers,
- number of free spots.
Unavailable slots — not available.
Checks:
- the hall is free,
- the trainer is free,
- the maximum number of participants is not exceeded.
3.4. Contact details
Fields:
- Name,
- E-mail,
- WhatsApp (with country code),
- checkbox agreeing to the terms.
3.5. Payment
2 options:
- Online payment (API Stripe / Xendit / Midtrans)
- Payment on site
After successful payment — status "paid".
3.6. Confirmation
After booking:
- show details,
- "Add to calendar" button,
- studio WhatsApp button.
4. Integrations
4.1. Google Calendar API
When booking:
- create an event,
- add the client and trainer (optional),
- upon cancellation — delete the event.
4.2. Payment system
Support:
- cards,
- local methods,
- minimum currencies: IDR.
4.3. WhatsApp
MVP option:
- via
wa.me — template of ready text.
Optionally:
- WhatsApp Business Cloud API.
4.4. Email
Sending confirmation — through any service:
- SendGrid / Mailgun / SMTP.
5. Notifications
To the client:
- after booking — email + (if possible) WhatsApp;
- reminders 24 hours and 2 hours before.
To the trainer:
- e-mail or WhatsApp template.
To the administrator:
- e-mail about new booking.
6. Admin panel (MVP)
Responsive (can be in the same framework).
6.1. Companies
- name,
- logo,
- time zone,
- email for Google Calendar.
6.2. Studios
- name,
- address,
- Google Maps link,
- number of halls,
- maximum capacity.
6.3. Trainers
- name,
- email,
- WhatsApp,
- available studios,
- which classes they can conduct.
6.4. Classes
- name,
- description,
- type,
- price,
- duration,
- maximum number.
6.5. Schedule
Functions:
- creating one-time and recurring slots,
- changing the trainer,
- selecting the hall,
- quick editing.
6.6. Clients
- name,
- email,
- WhatsApp,
- booking history.
7. Technical requirements
7.1. Frontend
- Responsive layout (mobile first)
- TailwindCSS or another modern CSS framework
7.2. Backend
- Node.js + TypeScript
- Express or NestJS
- or your option
- Admin panel authorization: JWT
- Roles: admin, trainer
7.5. Architecture
- Microservices are not needed
- One backend + one frontend
- Clean project structure
7.6. Security
- HTTPS
- Secure storage of API keys
- Access restrictions to the admin panel
8. Development stages
Stage 1 — Main client part
- displaying studios
- selecting classes
- schedule
- booking
- confirmation via e-mail
Stage 2 — Integrations
- Google Calendar
- payments
- WhatsApp
Stage 3 — Admin panel
- companies
- studios
- trainers
- classes
- schedule
- clients
Stage 4 — Testing and release
- QA
- checking integrations
- deploy
9. Expected result
The developer must deliver:
- A ready working mobile web application.
- An admin panel with roles.
- Connected integrations (Google Calendar, Email, WhatsApp, payments).
- API documentation and admin panel usage instructions.
- Test and production environment.
10. Requirements for the performer
- Experience with API integrations (preferably Google/payment systems).
- Experience in creating admin panels.
- Level: Middle Full-Stack (independent implementation of the full cycle).