A comprehensive resort management application built with ASP.NET Core MVC, following N-Tier architecture principles.
The Resort Management System is designed to handle villa bookings, amenities, and payments for a resort. It provides a web interface for customers to view and book villas, and an administrative dashboard for managing the resort's operations.
- Villa Management: Create, update, and delete villa listings.
- Booking System: Customer-facing booking flow with availability checks.
- Payment Integration: Secure payments via Stripe.
- Identity & Access Management: User registration, login, and role-based access control.
- Dashboard: Administrative dashboard for tracking bookings and revenue.
- Reporting: Exporting data to PDF/Excel using Syncfusion.
- Email Notifications: Automated emails (via SendGrid) for booking confirmations.
- Framework: .NET 8.0 (ASP.NET Core MVC)
- Database: Microsoft SQL Server with Entity Framework Core
- Identity: ASP.NET Core Identity
- Payments: Stripe.net
- Reporting: Syncfusion
- Email: SendGrid
- UI: Bootstrap, jQuery, Razor Pages
The solution follows a clean architecture / N-Tier approach:
- ResortManagement.Web: The presentation layer (MVC). Contains controllers, views, and view models.
- ResortManagement.Application: The application logic layer. Contains service interfaces, implementations, DTOs, and common utilities.
- ResortManagement.Domain: The domain layer. Contains entity models and core business logic.
- ResortManagement.Infrastructure: The data access and external services layer. Contains DB context, migrations, repository implementations, and third-party service integrations.
- .NET 8.0 SDK
- SQL Server (or LocalDB)
- Visual Studio 2022 or JetBrains Rider
-
Clone the repository:
git clone <repository-url> cd ResortManagement
-
Configure the Database: Update the connection string in
ResortManagement.Web/appsettings.json:"ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=ResortManagement;Trusted_Connection=True;TrustServerCertificate=True" }
-
Apply Migrations: Run the following command in the Package Manager Console (selecting
ResortManagement.Infrastructureas the default project) or via terminal:dotnet ef database update --project ResortManagement.Infrastructure --startup-project ResortManagement.Web
-
External Services Configuration: Ensure you have valid keys for:
- Stripe:
SecretKeyandPublishableKey - Syncfusion:
Licensekey - SendGrid:
Key(Checkappsettings.jsonfor placeholders)
- Stripe:
To run the application from the command line:
dotnet run --project ResortManagement.WebThe application will typically be available at https://localhost:5001 or http://localhost:5000.
- TODO: Add unit and integration tests. No tests were detected in the current repository.
- TODO: Specify the license for this project.
Generated by Junie.