Skip to content

khaled-aldesuky/Otlobly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 

Repository files navigation

Otlobly - Food Ordering Web App

Otlobly is a comprehensive food ordering website developed using ASP.NET Core MVC 7. It is designed to streamline the food ordering process by providing a robust platform with distinct user roles, detailed management modules, and integrated payment solutions.

Live Demo

Check out the live demo and project overview: LinkedIn Post with Demo


Key Features

  • Role-Based Access Control: A secure system using ASP.NET Core Identity for three distinct roles: Superadmin, Admin, and Customer.
  • Menu Management: Full CRUD (Create, Read, Update, Delete) functionality for categories, subcategories, and menu items.
  • Order Management: A complete flow for customers to place orders, track their status, and cancel them. Admins can update order statuses.
  • Promotion System: Admins can create and manage coupon codes for discounts.
  • Payment Integration: Secure checkout process powered by the Stripe API.
  • Account Management: Users can manage their profiles, and high-level admins can lock or manage other user accounts.

User Roles & Permissions

The application implements a strict hierarchy of permissions:

Superadmin

  • Appoints new Admins.
  • Demotes existing Admins back to Customers.
  • Locks any user account (except other Superadmins).
  • Full management (Add, Edit, Delete) of:
    • Categories & Subcategories
    • Items
    • Coupons
  • Updates order statuses.

Admin

  • Cannot modify Superadmin permissions or accounts.
  • Locks Customer accounts.
  • Full management (Add, Edit, Delete) of:
    • Categories & Subcategories
    • Items
    • Coupons
  • Updates order statuses.

Customer

  • Places orders.
  • Tracks their order status (Pending, In Progress, Delivered, etc.).
  • Makes payments via Stripe.
  • Cancels their own orders (if permitted by status).

Technology Stack & Architecture

This project is built with a clean and modern architecture using the following technologies:

  • Core Framework: ASP.NET Core MVC 7
  • Authentication & Security: ASP.NET Core Identity
  • Data Access: LINQ (Language-Integrated Query)
  • Payment Gateway: Stripe API
  • State Management: Session
  • Project Structure:
    • Areas: To logically separate the Superadmin, Admin, and Customer modules.
    • Class Library: For shared business logic and data models.
  • Design Patterns & Concepts:
    • MVVM (Model-View-ViewModel): Used to separate UI logic from business logic.
    • View Model: To pass structured data to Views.
    • View Components: For reusable UI elements (e.g., shopping cart summary).

Getting Started

To get a local copy up and running, follow these simple steps.

Prerequisites

  • .NET 7 SDK
  • A code editor (e.g., Visual Studio 2022 or VS Code)
  • SQL Server (or other compatible database)
  • Stripe Account (for API keys)

Installation

  1. Clone the repository:
    git clone https://github.com/khaled-aldesuky/Otlobly.git
    cd Otlobly
  2. Restore packages:
    dotnet restore
  3. Configure your settings:
    • Open appsettings.json.
    • Update the DefaultConnection string to point to your SQL database.
    • Add your Stripe (SecretKey, PublicKey) API keys.
  4. Apply migrations (if using EF Core):
    dotnet ef database update
  5. Run the application:
    dotnet run
    The application will be available at https://localhost:XXXX or http://localhost:XXXX.

Contact

For more detailed information, please refer to the project documentation or contact the project maintainers.

About

Otlobly is a food ordering website developed using ASP.NET Core MVC 7.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •