How u6610909/spacereserve works
SpaceReserve is a campus room-booking product with a React client and REST API. Students and faculty sign in through Microsoft Entra ID, discover rooms through browsing or natural-language search, and manage reservations and attendees; facility staff maintain rooms and can override bookings, while admins inspect audit and utilization data. The API also exposes a keyed peer booking lookup and lost-item features. The sampled code establishes key auth, search, room, reservation, and admin paths; some unsampled service wiring is omitted rather than inferred.
Main entry points: App.tsx Page routing · app.ts Express API · client.ts API client · prisma.ts Prisma database
Components 23
Student and Staff App
- Page routing
frontend/src/App.tsx - Sign-in page
frontend/src/pages/SignInPage.tsx - Room browsing
frontend/src/pages/RoomsBrowsePage.tsx - Room details
frontend/src/pages/RoomDetailPage.tsx - My reservations
frontend/src/pages/MyReservationsPage.tsx - Room management
frontend/src/pages/RoomManagementPage.tsx - Admin dashboard
frontend/src/pages/AdminDashboardPage.tsx - Lost and found
frontend/src/pages/LostFoundPage.tsx - API client
frontend/src/api/client.ts
REST API
- Express API
backend/src/app.ts
Booking Capabilities
- Authentication
backend/src/modules/auth/auth.service.ts - Room services
backend/src/modules/rooms/rooms.service.ts - Natural search
backend/src/modules/search/search.service.ts - Reservations
backend/src/modules/reservations/reservations.service.ts - Admin operations
backend/src/modules/admin/admin.service.ts - Lost-item records
backend/src/modules/lostItems/lostItems.service.ts - Peer booking lookup
backend/src/modules/external/external.routes.ts
External Services
- Microsoft Entra ID
- Gemini interpretation
backend/src/integrations/gemini.ts - FinderAI lookup
backend/src/integrations/finderai.ts
Persistent State
- Prisma database
backend/src/lib/prisma.ts
Other components
- Campus user
- Admin user
Connections 35
- Campus user → Page routing: uses
- Admin user → Page routing: uses
- Page routing → Sign-in page: routes to
- Page routing → Room browsing: routes to
- Page routing → Room details: routes to
- Page routing → My reservations: routes to
- Page routing → Room management: role-gates
- Page routing → Admin dashboard: role-gates
- Page routing → Lost and found: routes to
- Sign-in page → API client: requests
- Room browsing → API client: requests
- Room details → API client: requests
- My reservations → API client: requests
- Room management → API client: requests
- Admin dashboard → API client: requests
- Lost and found → API client: requests
- API client → Express API: HTTP calls
- Express API → Authentication: dispatches
- Express API → Room services: dispatches
- Express API → Natural search: dispatches
- Express API → Reservations: dispatches
- Express API → Admin operations: dispatches
- Express API → Lost-item records: dispatches
- Express API → Peer booking lookup: dispatches
- Authentication → Microsoft Entra ID: OIDC exchange
- Authentication → Prisma database: upserts user
- Natural search → Gemini interpretation: interprets query
- Natural search → Room services: filters rooms
- Natural search → Prisma database: reads vocabulary
- Room services → Prisma database: reads/writes
- Reservations → Prisma database: reads/writes
- Admin operations → Prisma database: reads/writes
- Lost-item records → Prisma database: reads records
- Peer booking lookup → Prisma database: booking lookup
- Room details → FinderAI lookup: requests lookup