This repository contains a system designed to manage and optimize the operations of an amusement park. The project integrates a database system and a dynamic web application built using ASP.NET Razor Pages, ensuring scalability, advanced functionality, and user-friendly interfaces.
- 8 modules, 18 tables for structured and detailed data management.
- Includes SQL scripts for database schema, triggers, views, and stored procedures:
AmusementParkDB.sql
Procedures.sql
Triggers.sql
Views.sql
- Covers key functionalities:
- User Management (accounts, agreements, and access control).
- Attractions and Events (detailed categorization and planning).
- Tickets and Reservations (sales and customer experience optimization).
- Promotions and Coupons (discounts and marketing strategies).
- Built using ASP.NET Razor Pages with a modular and maintainable structure.
- CRUD Operations: Add, update, and delete records for every database table.
- Table Display:
- Displays full data from at least two tables (
Users
,Orders
) on separate pages.
- Displays full data from at least two tables (
- Custom Buttons:
- Delete all records from a selected table with a single click.
- Anonymize column data (e.g., replacing names in the
Users
table with generic values likeUser-1
).
- Filtering and Sorting:
- Implemented for the
Users
table. - Filter by
Surname
, sort byID
,Name
, orSurname
.
- Implemented for the
- Master-Slave Relationship:
- Selecting an order in the
Orders
table dynamically loads its associated items in theOrderItems
table.
- Selecting an order in the
A detailed Entity-Relationship Diagram (ERD) is included to visualize the database structure and relationships between tables.
- Database Schema:
AmusementParkDB.sql
- Triggers:
Triggers.sql
- Views:
Views.sql
- Stored Procedures:
Procedures.sql
- Solution File:
AmusementParkDB.sln
- Configuration:
appsettings.json
: Contains connection strings and app configuration.appsettings.Development.json
: Development-specific settings.
- Startup Files:
Program.cs
: Application entry point.
- Pages:
Create.cshtml
&Create.cshtml.cs
: Add records.Edit.cshtml
&Edit.cshtml.cs
: Modify records.Delete.cshtml
&Delete.cshtml.cs
: Remove records.Index.cshtml
&Index.cshtml.cs
: List records with sorting/filtering.Details.cshtml
&Details.cshtml.cs
: View record details.
- Data Context:
AmusementParkDbContext.cs
: Configures the database and its relationships using Entity Framework Core.
Manages user data, agreements, and access control lists.
Detailed information about park attractions, including categories, availability, and maintenance schedules.
Tracks ticket purchases, reservation details, and customer preferences.
Centralized data for managing employee roles, departments, and performance.
Automates promotional campaigns and coupon management for park attractions.
Captures user feedback for attractions, employees, and products.
Manages product inventories, orders, and store operations.
Schedules and monitors events for enhanced customer engagement.
The database includes example data for testing functionality, such as users, tickets, attractions, and more.
- Clone the repository.
- Run the
AmusementParkDB.sql
file to create the database schema. - Configure the connection string in
appsettings.json
. - Build and run the Razor Pages application using Visual Studio or the .NET CLI.
- Use
Procedures.sql
,Triggers.sql
, andViews.sql
to add advanced functionality.