Front desk
Shift pass logs, daily checks, complaints with escalation, lost & found, and cash reports with bill, coin and roll counts.
ASP.NET Core 9 · EF Core · SignalR
MyHotel runs the day-to-day of a hotel: a rooms board that updates live, work orders, shift logs, complaints, cash counts, inventory and team messaging, for five departments and five permission levels, across multiple properties.
All screenshots are from the real app running locally with fictional sample data.
Real-time
One SignalR hub carries two kinds of events. Personal notifications go to user_{id}, and hotel-wide events like room status changes go to hotel_{id}. The hub only lets a connection join hotels the user has a role in.
The front desk files a work order. NotificationService saves a notification for each engineer and pushes it; their bell badge ticks up and a toast slides in.
A manager marks room 103 inspected. Every open board for that hotel receives RoomStatusChanged and patches the tile, the counts and the status bar in place, with no reload.
Notification row per member, except the sender.ReceiveNotification to each user_{id} group.textContent.Tour

Floor-by-floor board. Status is shown by colour, icon and label, so it still reads for colour-blind users. Changing a status happens in place and is broadcast to every open board.

List or board view (the choice is remembered). Cards move forward with one click; new orders notify Engineering.

Cross-module reporting for managers, filtered by period.

Direct messages and department announcements with read receipts. The chat refreshes on a 15-second poll.

Per-department stock with quick add/use controls (AJAX) and low-stock highlighting.

Four themes (light, dark, sunset, ocean) driven by CSS variables in a prebuilt Tailwind stylesheet.

Sign in with email or phone. In development, one-click demo accounts cover every role.



Built for staff on the floor: drawer navigation, scrollable filter chips, no horizontal scrolling at phone widths.
Features
Shift pass logs, daily checks, complaints with escalation, lost & found, and cash reports with bill, coin and roll counts.
Live rooms board with notices (VIP, DND, early check-in, late checkout), cleaning requests and supply inventory.
Work orders (list or board), preventive maintenance schedule, meter readings and an asset register.
Group sales pipeline plus the shared meetings, schedule, messages and inventory tools.
Budget and expenses, cross-module reports, staff evaluations, directory and a room-tax calculator.
Multi-hotel switching, employee and department management, per-user permission overrides and admin impersonation.
Role hierarchy
Architecture
Server-rendered Razor views with a sprinkle of Alpine.js, thin controllers, scoped services, EF Core on SQLite, and one SignalR hub for push.
Stack
Run it
SQLite is created and migrated on first run. In Development the app seeds two fictional hotels, 22 staff accounts and 64 rooms, and the sign-in page offers one-click demo accounts.
Needs the .NET 9 SDK. Node is only needed if you change Tailwind classes.
# clone and run
git clone https://github.com/GustavoLarcoDev/myhotel.git
cd myhotel
dotnet run
# open http://localhost:5122
# sign in as jaime@myhotel.com / jaime123 (demo GM)
# tests
dotnet test tests/MyHotel.Tests/MyHotel.Tests.csproj