We want to create a restaurant management platform. The system should allow:
- Customers:
- To Browse for restaurants based on proximity to their location
- To Browse menu items of a restaurant
- To Add menu items from a single restaurant to their cart
- To Place order for items in their cart
- To Make Payment for the cart items
- To Track Delivery
- To View Orders History
- Restaurant Owners:
- To Manage their restaurant's online presence
- To Manage the menu items available in their restaurant
- To Manage Orders
- To Update Delivery Status
- To View Orders History
- Super Administrators:
- To Add/Remove Restaurant
- To Manage Restaurant Owners
- To Bill Restaurant for using the platform
The system will be built using .NET Core (v.Latest), C#, and DDD/TDD practices. It will consist of several layers including:
- The persistence (database) layer will use Entity Framework Core ORM and save the data to an SQL Server database.
- The business logic layer will consist of standard C# code encapsulating our business logic. It will return DTOs (Data Transfer Objects) rather than database model objects.
- The API Layer will be implemented using ASP.NET Core Web API and will communicate with business layer only. It will take DTOs returned from business layer, convert them to JSON and return to API callers.
-
The User Interface will consist of following parts:
- Management area for Super Administrators
- Management area for Restaurant Owners. To be combined with Super Admin area with functionalities dictated by logged in user type.
- Customer facing site. To be developed separately from Admin area.