A comprehensive web application for managing laundry machine reservations in dormitories. Built with ASP.NET Core and Blazor, featuring advanced user management and administrative tools. Optimized for both desktop and mobile devices.
| Desktop | Mobile |
|---|---|
![]() |
![]() |
| Interactive reservation grid on desktop | Mobile view |
- User registration and login with email verification
- Role-based access control (Admin/User)
- Password reset and Email confirmation
- Automated email notifications for reservations
- Account verification emails
- Password reset functionality
- User verification and approval system
- Ban and strike management for rule violations
- Washer configuration and maintenance
- Holiday and out-of-order period scheduling
- Internal reservation creation
- Comprehensive punishment tracking
- Interactive reservation grid with time slot booking
- Personal reservation management
- Strike and ban status viewing
- Profile management with room number
- Multi-language support (Czech/English)
- Culture-specific date and time formatting
- PostgreSQL database with Entity Framework Core
- MudBlazor UI component library
- Docker containerization support
- Comprehensive test coverage
- Repository pattern architecture
Tech Stack:
- Frontend: Blazor Server with MudBlazor UI
- Backend: ASP.NET Core 9.0 with Entity Framework Core
- Database: PostgreSQL 16
- Email: SMTP
- Deployment: Docker + Docker Compose
- CI/CD: GitLab CI/CD
- .NET 9.0 SDK
- Docker & Docker Compose
- Git
git clone <repository-url>
cd LaundryReservationSystemdocker compose up -dThe application will be available at http://localhost:8081
Default Admin Login:
- Email:
admin@laundry.com - Password:
ChangeThisPassword123
Initial Setup:
- Log in with the admin credentials above
- Navigate to the Management tab
- Create some Washers to enable reservation creation functionality
- Consult the Manual page in the admin tab for further assistance
The database is automatically seeded with Admin accounts.
Automatic daily backups are configured in docker-compose.yaml to ./backups/ directory.
dotnet ef migrations add YourMigrationName
dotnet ef database update-
Prepare Environment:
cp .env.example .env # Edit .env with production values -
Deploy:
docker compose down --remove-orphans docker compose up -d --build
- Configure GitLab Variables:
Go to Project Settings → CI/CD → Variables and add:
DB_CONNECTION_STRING DB_PASSWORD ADMIN_PASSWORD EMAIL_USERNAME EMAIL_PASSWORD EMAIL_SMTP_SERVER EMAIL_SMTP_PORT EMAIL_SENDER_EMAIL EMAIL_SENDER_NAME EMAIL_ENABLE_SSL IDENTITY_REQUIRE_CONFIRMED_ACCOUNT

