A REST API backend for NorthWindWeb utilizing a sqlite conversion of Microsoft's North Wind Traders sample database.
The primary goal of this project was to learn React. As such, this portion acted as more of an additional technical challenge to overcome communicating with an external API.
All endpoints viewable here
-
Customers
- Return all + Find by ID + Regions + Create new + Update existing
-
Dashboard
- Return chart data
-
Order
- Return all + Find by ID + Create new + Ship single + Ship many + Return carriers + Delete by ID
-
Product
- Return all + Find by ID + Update price + Update stock + Update record
-
User
- Authenticate + Update credentials
- Default password for all users is Northwind1
- Includes password hashing for updating and storing user credentials
- Stores password as unique hash in the database for each user despite passwords being identical
- At login, the API will generate and return a JWT token to authorize future requests
- This token is valid for 30 minutes
-
Microsoft
- NET Core Framework (8.0)
- ASPNET Core Framework (8.0)
- Entity Framework Core for SQLite
- JWT Token Authentication
-
3rd Party
- Swagger via Swashbuckle
- Automapper
- Automapper Collections
- NUnit (Unit Testing)
Note
Sqlite was chosen due to its light weight and simplicity which proved good enough for a hobby project
Would not reccomend this database to be used in a real world scenario for an API receiving many requests from multiple sources
Sourced from GitHub Northwind SQLite3
Modifications Made:
- Additional Tables for employee logins/passwords
- Auth(Id, RoleId, EmployeeId, Username, Hash)
- Role(Id, RoleName)
- Minor fix
- CustomerId's not matching Order table

