Please refer these stacks before going into the implemetations
- Frontend : React with vite & typescript
- Backend : Node.js with express.js
- Database : MongoDB
-
User Registration Form (Signup):
Create a form using React to capture user details (email, password, role).
-
Login Form:
Create a login form and handle JWT token storage in localStorage or cookies.
-
Admin Dashboard:
Build the admin dashboard UI to manage halls, bookings, and users.
-
User Profile Page (optional):
Allow users to view and update their profile information.
Role-Based Access Control:
Define roles: admin, user in the user model (MongoDB).
- admins have all the privillages like accept a reservation or reject a reservation
- users have limited privillages. if we want to categories users then we can differentiate between student and lecturers
-
Hall List View:
Create a view to list all halls with basic details (name, capacity, availability).
-
Booking Form:
Build a booking form where users can select the hall, date, time, and event details. Add client-side form validation (e.g., ensuring event end time is after the start time).
-
Booking Modification/Cancelation:
Add functionality for users and admins to modify or cancel bookings via a modal or edit form.
-
Calendar View:
Use a calendar library (e.g., FullCalendar for React) to display hall bookings. Ensure bookings are color-coded based on status (booked, available, canceled). Add filters (date, hall) to customize calendar views.
-
Graphical Representation (Optional):
If opting for a graphical view of halls, use a library like D3.js or Three.js to visualize hall layouts. Highlight hall details on hover/click (e.g., capacity, availability).
-
Email Notification Setup:
Inform users via a confirmation screen that an email/SMS has been sent after a successful booking.
-
Reminder Notifications:
Show pop-up or toast notifications for reminders on the user dashboard.
later development
---> loading