Mobile Store Inventory Management System
Mobile Store Inventory Management System
System
Project Using .NET 8 Web API, ASP MVC, SQL Server, EF Core, and JWT Security
Project Overview:
The learners are required to build an application that simulates a Mobile Store management system.
The store will track mobile model details and distributor details, with two types of users: Manager
and SalesPerson. The application will enforce user roles with JWT-based authentication to control
access to certain functionalities.
Entities:
1. MobileModelDetails:
o Id (Primary Key)
2. DistributorDetails:
o Id (Primary Key)
o Phone (string)
Relationships:
● One-to-many relationship: A Distributor can distribute many Mobile Models, but each
Mobile Model has only one Distributor.
1. GET /api/mobilemodels – Get all mobile models (accessible to both Manager and
SalesPerson).
1. GET /api/distributors – Get all distributors (accessible to both Manager and SalesPerson).
o Manager: Can perform CRUD operations on both Mobile Models and Distributors.
1. Login Page:
o Allow both Manager and SalesPerson to log in and generate a JWT token.
o Add/Edit Mobile Model: Form for adding or editing mobile models (visible only for
Manager).
3. Distributors Pages:
o Distributors List: Display all distributors.
o Filter : Display distributors who distribute more than the given number of mobile
model .
o Add/Edit Distributor: Form for adding or editing distributors (visible only for
Manager).
● A navbar with links to Mobile Models and Distributors should be visible after login.
● Based on the role, show/hide buttons for adding, editing, and deleting.
5. Role-based UI:
● Manager should have full access to all CRUD operations from the UI.
● SalesPerson can only view data but cannot access the add, edit, or delete buttons.
6. Testing:
● Learners should write unit tests for the Web API endpoints using tools like xUnit and Moq
for service layers.
Expected Deliverables:
● Unit and integration tests for key features and role-based security.