Skip to content

feroz-hub/ResortManagement

Repository files navigation

Resort Management System

A comprehensive resort management application built with ASP.NET Core MVC, following N-Tier architecture principles.

🚀 Overview

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.

✨ Features

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

🛠️ Technology Stack

  • 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

📁 Project Structure

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.

📋 Prerequisites

⚙️ Setup & Installation

  1. Clone the repository:

    git clone <repository-url>
    cd ResortManagement
  2. Configure the Database: Update the connection string in ResortManagement.Web/appsettings.json:

    "ConnectionStrings": {
      "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=ResortManagement;Trusted_Connection=True;TrustServerCertificate=True"
    }
  3. Apply Migrations: Run the following command in the Package Manager Console (selecting ResortManagement.Infrastructure as the default project) or via terminal:

    dotnet ef database update --project ResortManagement.Infrastructure --startup-project ResortManagement.Web
  4. External Services Configuration: Ensure you have valid keys for:

    • Stripe: SecretKey and PublishableKey
    • Syncfusion: Licensekey
    • SendGrid: Key (Check appsettings.json for placeholders)

🏃 Running the Application

To run the application from the command line:

dotnet run --project ResortManagement.Web

The application will typically be available at https://localhost:5001 or http://localhost:5000.

🧪 Tests

  • TODO: Add unit and integration tests. No tests were detected in the current repository.

📜 License

  • TODO: Specify the license for this project.

Generated by Junie.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published