Skip to content

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laundry Reservation System

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
Desktop View Mobile View
Interactive reservation grid on desktop Mobile view

Key Features

🔐 Identity & Authentication

  • User registration and login with email verification
  • Role-based access control (Admin/User)
  • Password reset and Email confirmation

📧 Email Integration

  • Automated email notifications for reservations
  • Account verification emails
  • Password reset functionality

👨‍💼 Admin Management

  • 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

👤 User Features

  • Interactive reservation grid with time slot booking
  • Personal reservation management
  • Strike and ban status viewing
  • Profile management with room number

🌐 Localization

  • Multi-language support (Czech/English)
  • Culture-specific date and time formatting

🛠️ Technical Features

  • 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

Quick Start for Developers

Prerequisites

  • .NET 9.0 SDK
  • Docker & Docker Compose
  • Git

1. Clone and Setup

git clone <repository-url>
cd LaundryReservationSystem

2. Start with Docker

docker compose up -d

3. Access the Application

The application will be available at http://localhost:8081

Default Admin Login:

  • Email: admin@laundry.com
  • Password: ChangeThisPassword123

Initial Setup:

  1. Log in with the admin credentials above
  2. Navigate to the Management tab
  3. Create some Washers to enable reservation creation functionality
  4. Consult the Manual page in the admin tab for further assistance

Database Setup

The database is automatically seeded with Admin accounts. Automatic daily backups are configured in docker-compose.yaml to ./backups/ directory.

Adding New Migrations

dotnet ef migrations add YourMigrationName
dotnet ef database update

Deployment Guide

Production Deployment with Docker

  1. Prepare Environment:

    cp .env.example .env
    # Edit .env with production values
  2. Deploy:

    docker compose down --remove-orphans
    docker compose up -d --build

GitLab CI/CD Deployment

  1. 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
    

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages