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.