Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

Restaurant Management System

An ASP.NET Core MVC restaurant management system designed to manage menu items, customer orders, user accounts, and administrative operations through a structured web application.

Overview

Restaurant Management System is a web-based application built with ASP.NET Core MVC and Entity Framework Core.

The project provides a restaurant-facing application with user account functionality, multilingual support, and a dedicated Admin Area for managing restaurant orders and menu items.

Features

User Features

  • User account and login functionality
  • Restaurant website interface
  • Multilingual support
  • Responsive web interface
  • Menu and restaurant-related pages

Admin Features

  • Dedicated Admin Area
  • Order management
  • Create and manage restaurant orders
  • Manage order details and quantities
  • Work with menu items
  • Automatic calculation of order totals
  • Delete orders and their related details
  • Separate Admin Controllers, Models, and Views

Technologies Used

  • C#
  • ASP.NET Core MVC
  • Entity Framework Core
  • SQL Server
  • ASP.NET Core Identity
  • Razor Views
  • HTML5
  • CSS3
  • Bootstrap
  • JavaScript
  • Font Awesome
  • Localization / Resources

Project Structure

Restaurantproject/
│
├── Areas/
│   └── Admin/
│       ├── Controllers/
│       │   └── OrderController.cs
│       │
│       ├── Models/
│       │   ├── MenuItem.cs
│       │   ├── Order.cs
│       │   ├── OrderDetail.cs
│       │   └── OrderViewModel.cs
│       │
│       └── Views/
│           ├── Order/
│           │   └── Orders.cshtml
│           └── Shared/
│
├── Controllers/
│   ├── HomeController.cs
│   ├── LanguageController.cs
│   └── UserController.cs
│
├── Migrations/
│
├── Models/
│   ├── ApplicationDbContext.cs
│   ├── ErrorViewModel.cs
│   ├── UserAccount.cs
│   └── loginAcc.cs
│
├── Resources/
├── Views/
├── wwwroot/
│
├── Program.cs
├── Resource.cs
└── Restaurantproject.csproj

Architecture

The application follows the Model-View-Controller (MVC) architecture.

  • Models handle application data and database-related entities.
  • Views provide the user interface using Razor.
  • Controllers handle application requests and business flow.
  • Admin Area separates administrative functionality from the main application.
  • Entity Framework Core provides database access and migrations.

Order Management

The Admin order management functionality is built around three main entities:

MenuItem
    │
    └── OrderDetail
            │
            └── Order

An order can contain multiple order details, with each detail associated with a menu item and quantity.

The system calculates the total order amount based on the selected menu items and their quantities.

Database

The project uses Entity Framework Core for database access and includes EF Core migrations for database schema management.

The main database context is:

ApplicationDbContext

Localization

The application includes localization support through:

LanguageController
Resources/

This allows the application to support multiple languages and provides a foundation for localized user interfaces.

Getting Started

Prerequisites

Make sure you have:

  • .NET 8 SDK
  • Visual Studio 2022 or later
  • SQL Server
  • SQL Server Management Studio or another SQL Server client

Installation

Clone the repository:

git clone https://github.com/anwar-dotnet-stack/Restaurant-Management.git

Open the project in Visual Studio and restore the required NuGet packages.

Configure the database connection in:

appsettings.json

Apply the Entity Framework Core migrations to create/update the database.

Then run the application from Visual Studio.

Project Purpose

This project was developed as a practical ASP.NET Core MVC application to demonstrate experience with:

  • MVC architecture
  • Entity Framework Core
  • Database-driven applications
  • User authentication
  • Admin functionality
  • Order management
  • Razor Views
  • Localization
  • Responsive web development

Author

Anwar Ajajj

Full Stack .NET Developer

License

This project is for educational and portfolio purposes.

Releases

Packages

Contributors

Languages