{"id":31758593,"url":"https://github.com/bartugkaan/hotelproject","last_synced_at":"2025-10-09T20:47:28.466Z","repository":{"id":317409259,"uuid":"1055424207","full_name":"BartugKaan/HotelProject","owner":"BartugKaan","description":"A comprehensive hotel management system built with ASP.NET Core 8.0, featuring a modern web interface and robust REST API for managing hotel operations including bookings, staff, services, and customer communications.","archived":false,"fork":false,"pushed_at":"2025-09-30T16:43:18.000Z","size":26077,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-09-30T18:29:07.242Z","etag":null,"topics":["asp-net-core","automapper","efcore","fluentvalidation","mvc","n-tier-architecture","rest-api","sql"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BartugKaan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-12T08:45:43.000Z","updated_at":"2025-09-30T16:43:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"24caf895-21a6-470d-81bb-a5812f2bcf38","html_url":"https://github.com/BartugKaan/HotelProject","commit_stats":null,"previous_names":["bartugkaan/hotelproject"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/BartugKaan/HotelProject","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BartugKaan%2FHotelProject","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BartugKaan%2FHotelProject/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BartugKaan%2FHotelProject/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BartugKaan%2FHotelProject/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BartugKaan","download_url":"https://codeload.github.com/BartugKaan/HotelProject/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BartugKaan%2FHotelProject/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001983,"owners_count":26083259,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asp-net-core","automapper","efcore","fluentvalidation","mvc","n-tier-architecture","rest-api","sql"],"created_at":"2025-10-09T20:47:22.705Z","updated_at":"2025-10-09T20:47:28.461Z","avatar_url":"https://github.com/BartugKaan.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🏨 Hotel Management System\n\nA comprehensive hotel management system built with ASP.NET Core 8.0, featuring a modern web interface and robust REST API for managing hotel operations including bookings, staff, services, and customer communications.\n\n![.NET](https://img.shields.io/badge/.NET-8.0-blue)\n![ASP.NET Core](https://img.shields.io/badge/ASP.NET_Core-8.0-purple)\n![Entity Framework](https://img.shields.io/badge/Entity_Framework-8.0-green)\n![SQL Server](https://img.shields.io/badge/SQL_Server-Database-red)\n![Bootstrap](https://img.shields.io/badge/Bootstrap-4.0-blue)\n\n## 📖 Overview\n\nThis Hotel Management System provides a complete solution for hotel operations management. It includes both a RESTful API backend and a responsive web frontend, designed with clean architecture principles and modern development practices.\n\n### 🎯 Key Features\n\n- **🏠 Booking Management**: Complete reservation system with approval workflow\n- **👥 Staff Management**: Employee registration and management\n- **🛎️ Service Management**: Hotel services catalog and administration\n- **📞 Contact System**: Customer inquiries and message management\n- **🏃‍♂️ Guest Management**: Guest registration and profile management\n- **🏨 Room Management**: Room inventory and pricing management\n- **📧 Email Notifications**: Automated email system for booking status updates\n- **🔐 Authentication \u0026 Authorization**: Secure login system with role-based access\n- **📱 Responsive Design**: Mobile-friendly interface with Bootstrap\n- **✅ Data Validation**: Comprehensive validation using FluentValidation\n\n\n## 🎨 Project Screenshots\n\u003cimg width=\"1255\" height=\"914\" alt=\"Ekran görüntüsü 2025-09-30 193622\" src=\"https://github.com/user-attachments/assets/cdec15a6-a2ec-4fb8-971e-a8fe33657831\" /\u003e\n\u003cimg width=\"1255\" height=\"919\" alt=\"Ekran görüntüsü 2025-09-30 193642\" src=\"https://github.com/user-attachments/assets/eec59235-af3c-4c74-9a77-d0b03914d1ac\" /\u003e\n\u003cimg width=\"1255\" height=\"916\" alt=\"Ekran görüntüsü 2025-09-30 194130\" src=\"https://github.com/user-attachments/assets/e533d9e0-54e5-4817-8bd1-f3d7367f087a\" /\u003e\n\n\n\n\n\n## 🏗️ Architecture\n\nThe project follows Clean Architecture principles with clear separation of concerns:\n\n```\nHotelProject/\n├── ApiConsume/                          # Backend API Layer\n│   ├── HotelProject.Api/                # REST API Controllers\n│   ├── HotelProject.BusinessLayer/      # Business Logic \u0026 Services\n│   ├── HotelProject.DataAccessLayer/    # Data Access \u0026 Repository Pattern\n│   ├── HotelProject.DtoLayer/           # Data Transfer Objects\n│   └── HotelProject.EntityLayer/        # Domain Entities\n└── Frontend/\n    └── HotelProject.WebUI/              # MVC Web Application\n```\n\n## 🛠️ Technologies Used\n\n### Backend\n- **ASP.NET Core 8.0** - Web API framework\n- **Entity Framework Core 8.0** - Object-Relational Mapping\n- **SQL Server** - Database management system\n- **AutoMapper 12.0** - Object-to-object mapping\n- **FluentValidation 11.5** - Input validation\n- **ASP.NET Core Identity 8.0** - Authentication \u0026 authorization\n- **Swagger/OpenAPI** - API documentation\n\n### Frontend\n- **ASP.NET Core MVC 8.0** - Web framework\n- **Bootstrap 4** - CSS framework\n- **jQuery** - JavaScript library\n- **Font Awesome** - Icon library\n- **AdminLTE** - Admin dashboard template\n\n### Development Tools\n- **Repository Pattern** - Data access abstraction\n- **Dependency Injection** - IoC container\n- **SOLID Principles** - Clean code practices\n- **RESTful API Design** - Standard HTTP methods\n\n## 📋 Prerequisites\n\nBefore running this application, make sure you have the following installed:\n\n- [.NET 8.0 SDK](https://dotnet.microsoft.com/download/dotnet/8.0)\n- [SQL Server](https://www.microsoft.com/en-us/sql-server/sql-server-downloads) (LocalDB or full installation)\n- [Visual Studio 2022](https://visualstudio.microsoft.com/) or [VS Code](https://code.visualstudio.com/)\n- [SQL Server Management Studio](https://docs.microsoft.com/en-us/sql/ssms/) (optional, for database management)\n\n## 🚀 Getting Started\n\n### 1. Clone the Repository\n\n```bash\ngit clone https://github.com/your-username/hotel-management-system.git\ncd hotel-management-system\n```\n\n### 2. Database Setup\n\n1. Update the connection string in both projects:\n   - `ApiConsume/HotelProject.Api/appsettings.json`\n   - `Frontend/HotelProject.WebUI/appsettings.json`\n\n```json\n{\n  \"ConnectionStrings\": {\n    \"DefaultConnection\": \"Server=(localdb)\\\\MSSQLLocalDB;Database=HotelProjectDb;Trusted_Connection=true;TrustServerCertificate=true;\"\n  }\n}\n```\n\n2. Apply database migrations:\n\n```bash\n# Navigate to the API project\ncd ApiConsume/HotelProject.Api\n\n# Create and apply migrations\ndotnet ef database update\n```\n\n### 3. Run the Applications\n\n#### Option 1: Using Visual Studio\n1. Set both `HotelProject.Api` and `HotelProject.WebUI` as startup projects\n2. Press `F5` to run both applications simultaneously\n\n#### Option 2: Using Command Line\n\nTerminal 1 (API):\n```bash\ncd ApiConsume/HotelProject.Api\ndotnet run\n```\n\nTerminal 2 (Web UI):\n```bash\ncd Frontend/HotelProject.WebUI\ndotnet run\n```\n\n### 4. Access the Applications\n\n- **API Documentation**: `https://localhost:7242/swagger`\n- **Web Application**: `https://localhost:7041`\n- **Admin Panel**: `https://localhost:7041/AdminLayout`\n\n### 5. Default Login Credentials\n\nThe system creates a default admin user on first run:\n- **Email**: `admin@hotel.com`\n- **Password**: `Admin123!`\n\n## 📚 API Documentation\n\n### Base URLs\n- **API**: `https://localhost:7242/api`\n- **Web UI**: `https://localhost:7041`\n\n### Core Endpoints\n\n#### 🏨 Booking Management\n```http\nGET    /api/Booking                     # Get all bookings\nGET    /api/Booking/{id}                # Get booking by ID\nPOST   /api/Booking                     # Create new booking\nPUT    /api/Booking                     # Update booking\nDELETE /api/Booking/{id}                # Delete booking\nPUT    /api/Booking/ApproveBooking      # Approve booking\nPUT    /api/Booking/RejectBooking       # Reject booking\nPUT    /api/Booking/AddToWaitList       # Add to wait list\nGET    /api/Booking/GetByStatus/{status} # Get bookings by status\n```\n\n#### 🏠 Room Management\n```http\nGET    /api/Room                        # Get all rooms\nGET    /api/Room/{id}                   # Get room by ID\nPOST   /api/Room                        # Create new room\nPUT    /api/Room                        # Update room\nDELETE /api/Room/{id}                   # Delete room\n```\n\n#### 👥 Staff Management\n```http\nGET    /api/Staff                       # Get all staff\nGET    /api/Staff/{id}                  # Get staff by ID\nPOST   /api/Staff                       # Create new staff\nPUT    /api/Staff                       # Update staff\nDELETE /api/Staff/{id}                  # Delete staff\n```\n\n#### 🛎️ Service Management\n```http\nGET    /api/Service                     # Get all services\nGET    /api/Service/{id}                # Get service by ID\nPOST   /api/Service                     # Create new service\nPUT    /api/Service                     # Update service\nDELETE /api/Service/{id}                # Delete service\n```\n\n### Request/Response Examples\n\n#### Create Booking Request\n```json\nPOST /api/Booking\n{\n    \"name\": \"John Doe\",\n    \"email\": \"john.doe@email.com\",\n    \"checkIn\": \"2024-10-15T14:00:00\",\n    \"checkOut\": \"2024-10-20T12:00:00\",\n    \"adultCount\": \"2\",\n    \"childrenCount\": \"1\",\n    \"roomCount\": \"1\",\n    \"specialRequest\": \"Late checkout if possible\",\n    \"description\": \"Honeymoon suite preferred\"\n}\n```\n\n#### Booking Response\n```json\n{\n    \"bookingId\": 1,\n    \"name\": \"John Doe\",\n    \"email\": \"john.doe@email.com\",\n    \"checkIn\": \"2024-10-15T14:00:00\",\n    \"checkOut\": \"2024-10-20T12:00:00\",\n    \"adultCount\": \"2\",\n    \"childrenCount\": \"1\",\n    \"roomCount\": \"1\",\n    \"specialRequest\": \"Late checkout if possible\",\n    \"description\": \"Honeymoon suite preferred\",\n    \"status\": \"Pending\"\n}\n```\n\n## 🎨 Web Interface Features\n\n### Public Pages\n- **Homepage**: Hotel overview and featured services\n- **Booking Form**: Online reservation system\n- **Contact Page**: Customer inquiries\n- **Services**: Hotel amenities and services\n\n### Admin Dashboard\n- **Booking Management**: View, approve, reject, and manage reservations\n- **Staff Administration**: Employee management\n- **Room Management**: Room inventory control\n- **Service Management**: Hotel services administration\n- **Contact Management**: Customer inquiry handling\n- **Guest Management**: Guest profile administration\n\n## 🔧 Configuration\n\n### Email Settings\nConfigure SMTP settings in `appsettings.json`:\n\n```json\n{\n  \"EmailSettings\": {\n    \"SmtpServer\": \"smtp.gmail.com\",\n    \"SmtpPort\": 587,\n    \"SmtpUsername\": \"your-email@gmail.com\",\n    \"SmtpPassword\": \"your-app-password\",\n    \"FromEmail\": \"your-email@gmail.com\",\n    \"FromName\": \"Hotel Management System\"\n  }\n}\n```\n\n### Security Settings\n- **CSRF Protection**: Enabled with X-CSRF-TOKEN header\n- **HTTPS Redirection**: Enforced in production\n- **Secure Cookies**: HttpOnly and SameSite policies\n- **HSTS**: HTTP Strict Transport Security enabled\n\n## 🧪 Testing\n\nRun the test suite:\n\n```bash\n# Run all tests\ndotnet test\n\n# Run tests with coverage\ndotnet test --collect:\"XPlat Code Coverage\"\n```\n\n## 📦 Deployment\n\n### IIS Deployment\n\n1. Publish the applications:\n```bash\ndotnet publish -c Release -o ./publish\n```\n\n2. Configure IIS with the published files\n3. Update connection strings for production database\n4. Configure SSL certificates\n\n### Docker Deployment\n\n```dockerfile\n# Dockerfile example\nFROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base\nWORKDIR /app\nEXPOSE 80\nEXPOSE 443\n\nFROM mcr.microsoft.com/dotnet/sdk:8.0 AS build\nWORKDIR /src\nCOPY [\"HotelProject.Api/HotelProject.Api.csproj\", \"HotelProject.Api/\"]\nRUN dotnet restore \"HotelProject.Api/HotelProject.Api.csproj\"\nCOPY . .\nWORKDIR \"/src/HotelProject.Api\"\nRUN dotnet build \"HotelProject.Api.csproj\" -c Release -o /app/build\n\nFROM build AS publish\nRUN dotnet publish \"HotelProject.Api.csproj\" -c Release -o /app/publish\n\nFROM base AS final\nWORKDIR /app\nCOPY --from=publish /app/publish .\nENTRYPOINT [\"dotnet\", \"HotelProject.Api.dll\"]\n```\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## 📝 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbartugkaan%2Fhotelproject","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbartugkaan%2Fhotelproject","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbartugkaan%2Fhotelproject/lists"}