VenueBooking is an ASP.NET Core MVC web application for discovering, managing, and booking event venues. It supports three roles: Admin, Owner, and Customer.
- ASP.NET Core MVC (.NET 9)
- Entity Framework Core 9
- SQL Server / LocalDB
- Cookie authentication and session state
- Razorpay payment integration
- Customer venue search and browsing with filters for city, venue type, guest count, and date
- Venue details pages with themes, pricing, images, amenities, reviews, and blocked date handling
- Customer registration, login, booking history, booking details, notifications, and messages
- Owner dashboard for venue management, bookings, revenue, reviews, and subscription limits
- Admin dashboard for users, venues, bookings, revenue, approvals, messages, and audit activity
- Razorpay order creation and payment signature verification
- Contact page, FAQ, About, Privacy, and error pages
- Controllers/ - MVC controllers for Admin, Auth, Customer, Home, and Owner workflows
- Data/ - EF Core DbContext and model configuration
- Models/ - domain entities and enums
- ViewModels/ - page-specific view models
- Services/ - application services such as RazorpayService
- Views/ - Razor views and shared layouts
- wwwroot/ - static files, styles, scripts, and uploads
The app loads appsettings.Local.json automatically on startup. Keep secrets there so they do not get committed.
Example structure:
{
"Razorpay": {
"KeyId": "your_key_id",
"KeySecret": "your_key_secret"
}
}The default SQL Server connection string is in appsettings.json and targets VenueBookingDB on LocalDB.
- Restore packages
dotnet restore- Apply database migrations
dotnet ef database update- Run the application
dotnet runIf you prefer Visual Studio, you can also run the app with F5 after the database is configured.
appsettings.Local.jsonis ignored by Git so Razorpay keys stay local.- Build output folders such as
bin/andobj/are also ignored. - Authentication redirects unauthenticated users to
/Auth/Login.