OpenLake / OpenLake/Student_Database_COSA
[FOSSOVERFLOW-25] feat: Support Private Room Bookings (Private Events / Meetings)
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 13
- Forks
- 58
- Avg merge
- 20h 27m
- Merged PRs (30d)
- 3
Description
Description
Currently, rooms can only be booked by creating a public event. There is no way to book a room for internal purposes like meetings, practice sessions, or informal gatherings.
We need to introduce a "Private Event" (backend terminology) that allows eligible users to book rooms without creating a public-facing event.
On the frontend, this can be shown as something like "Meeting" or "Internal Booking".
Requirements
Backend
- Introduce a new event type:
private_event - Store this in DB as a private event
- Ensure private events are not visible in public event listings
- Integrate with existing clash detection logic
Authorization
- Only Core Members and above can create private bookings
- Roles should be validated in backend middleware
Frontend
- Add option while booking:
- "Public Event"
- "Internal Meeting / Private Booking"
- Hide private events from public calendar/event feed
- Show private bookings only to authorized users (if required)
Booking Rules
- Private bookings must:
- Use same clash detection logic
- Respect room availability
- Follow role permissions
Acceptance Criteria
- Authorized users can create private room bookings
- Private bookings don’t appear as public events
- Clash detection works for private bookings
- Role-based access is enforced
- UI clearly differentiates between public and private bookings
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files or tests are named. Start by locating the room-booking and event-creation entry points, role-validation middleware, public event listings, and clash-detection logic. Done means authorized users can create private bookings, they are excluded from public views, permissions are enforced, and clashes are handled consistently.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, mongodb, node.js, react
- Domain
- authorization, backend, database, frontend, full-stack
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100