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.
Check out the live demo and project overview: LinkedIn Post with Demo
- 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.
The application implements a strict hierarchy of permissions:
- 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.
- Cannot modify Superadmin permissions or accounts.
- Locks Customer accounts.
- Full management (Add, Edit, Delete) of:
- Categories & Subcategories
- Items
- Coupons
- Updates order statuses.
- Places orders.
- Tracks their order status (Pending, In Progress, Delivered, etc.).
- Makes payments via Stripe.
- Cancels their own orders (if permitted by status).
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).
To get a local copy up and running, follow these simple steps.
- .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)
- Clone the repository:
git clone https://github.com/khaled-aldesuky/Otlobly.git cd Otlobly - Restore packages:
dotnet restore
- Configure your settings:
- Open
appsettings.json. - Update the
DefaultConnectionstring to point to your SQL database. - Add your Stripe (SecretKey, PublicKey) API keys.
- Open
- Apply migrations (if using EF Core):
dotnet ef database update
- Run the application:
The application will be available at
dotnet run
https://localhost:XXXXorhttp://localhost:XXXX.
For more detailed information, please refer to the project documentation or contact the project maintainers.