cowork-server

cowork-server is an API server for a coworking space with shared meeting rooms. It provides the backend needed to manage users, access control, rooms, bookings, and the practical limits around shared-room usage.

User and access management

The service includes registration, login, logout, refresh tokens, one-time-password flows, password changes, profile and avatar updates, user activation and lockout controls, roles, and dynamic permissions. Administrative queries support user and role listings, details, and filtering.

Meeting-room operations

Members can browse meeting rooms, view bookings, book a room, update a booking, cancel a booking, and retrieve their own booking history. A booking is checked against the room's active status, daily opening hours, duration rules, and a booking window of up to 14 days ahead.

The booking handler prevents overlapping reservations for the same room and time range. It also applies a per-user daily reserved-minutes limit, calculates billable minutes and the booking amount from the room's hourly price, and tracks monthly allowance usage and remaining minutes.

Service design

The C# solution separates application, domain, infrastructure, framework, and web layers. It uses command/query handlers, validation, transactions, caching, an outbox-based notification flow, and email or in-app notification strategies. Docker and Docker Compose files are included for local or containerized operation.

View the source on GitHub