Hosted on Vercel: https://scheduler-nextjs-eta.vercel.app/
This is a scheduling app for a tennis club. It allows users to:
View and choose a tennis court location from the homepage. For now only one location is available, the other two will be added in the future.
Book a training session: After choosing a location, users can see a calendar with available dates and book a session.
View other users' bookings to avoid conflicts.
In the future, the app will include Telegram authentication for users.
To book a training session, users must be authenticated with their phone number (for now there is no confirmation SMS, it is enough to insert a phone number).
If a user clicks on the "Book the court" button without being logged in, a modal window will appear, prompting them to authenticate by entering their name and phone number.
For creating a new account a user must use their name, phone number and a password. After registering a user can log into their account to book a training session, view and delete their own bookings.
Maximum booking window: Users can book training sessions up to 14 days in advance.
Booking time: From 5:00 AM to 11:00 PM.
Minimum session duration is 1 hour.
Node v22.14.0
NPM 10.9.2
react-router-dom
Next.js
TypeScript
fetch API
SCSS
HTML5
Next.js API Routes
Mongoose
MongoDB Atlas