Finish the backend part of a .Net Core project (API). This will be an API for supporting the UI.
The work consist in creating entities, tables, controllers and its actions. Store the data in SQL Server using Entity Framework.
The technologies required are: .Net Core, C#, SQL Server, Entity Framework, RESTful endpoints.
They are around 10 entities. (a detailed diagram is attached)
The Authentication and authorization is already in place with 2 roles: admin and general admin.
About the project:
This is a product price list system. The logged user can create and admin the company, company branches, users, price lists, categories, products and prices. Anonymous users can navigate products filtering by categories and buy them.
Detailed use cases:
Public actions (user not logged in):
Buy: Anonymous user can select different items and quantities and buy them. This will just generate a record in the database.
Given a branch id, list item categories.
List all items. List items that belong to a category: These last two lists must support order by and pagination. (pageSize, pageNumber or lastItemId)
Authorized actions (user must be logged in)
User can have admin role, general admin role or none.
General admin can change the hired plan and can add/remove/update branches. Check branches amount doesn't exced the maxBranches limit of the hired plan.
General admin can update company fields.
General admin can add/remove/update product categories and product base.
General admin can add , update, remove users to any branch and assign/remove roles. Check users amount doesn't exced the maxUsers limit of the hired plan. (1)
Admin can add, update, remove users to the branch he belongs and assign/remove admin role. Idem (1)
Admin and general admin can add, update, remove price lists and discounts. A discount can be applied to a price list and or to an item.
All logged users can add/remove/duplicate/update items. Each time an item amount or currency changes, a record on price history must be saved.
All logged users can add/remove/update products. A product can has attributes and or codes. They have a value and an attributeType. For example: size medium size is the attribute type, medium is the attribute value. Or SKU 12341, SKU is the attribute type and 12341 is the attribute value.
Check products amount doesn't exced the maxProducts limit of the hired plan.
Entities left:
Item, Product, Attribute Value, Attribute type,
Hired Plan and its dependencies
Price list, discount, price history
Purchase, Purchase Detail
Requirements:
I'll provide a GitHub repository, you will commit to it frequently.
You will provide a Postman collection or similar for API testing
No comments:
Post a Comment