OpenLake / OpenLake/Student_Database_COSA

[FOSSOVERFLOW-25] feat: Support Private Room Bookings (Private Events / Meetings)

Open
#229 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement help wanted
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.