An ASP.NET Core inventory API learning project for products, suppliers, warehouses and customers.
Status: learning project. The repository contains API endpoints and persistence code; a reproducible demo and automated verification are still needed.
- Customer creation and filtered, paginated customer queries.
- Queries and creation endpoints for products, suppliers, warehouses, product brands and product types.
- Accessory and part-related endpoints.
- Entity Framework Core mappings and an initial SQL Server migration.
- Swagger UI in the Development environment.
The existing solution and namespaces use Training, the project's original name.
| Project | Responsibility |
|---|---|
Training.Domain |
Inventory and sales domain models |
Training.Application |
Application services, requests, validation and mapping |
Training.Infraestructure |
EF Core, SQL Server, repositories and migrations |
Training.Common |
Shared types and helpers |
Training.WebApi |
Controllers, dependency registration and HTTP middleware |
You need the .NET 8 SDK, a development SQL Server instance and the EF Core 8 CLI tools.
git clone https://github.com/mayorgacdev/stock-master-api.git
cd stock-master-api
dotnet restore Training.sln
dotnet build Training.slnConfigure your own development database through user secrets:
dotnet user-secrets set "ConnectionStrings:DefaultConnection" "<your-development-connection-string>" --project src/Training.WebApiApply the existing migration to that development database, then start the API:
dotnet ef database update --project src/Training.Infraestructure --startup-project src/Training.WebApi
dotnet run --project src/Training.WebApi --launch-profile httpThe HTTP launch profile uses localhost:5185/swagger.
- Customer endpoints:
/api/Customers. - Warehouse and catalog endpoints:
/api/Warehouse. - Database configuration.
- Existing migrations.
- Verify setup from a fresh checkout with sample data.
- Add tests for business rules and API behavior, then run them in CI.
- Validate inventory workflows with a real small-business use case.
Built by Paulo Jirón.