Đây là project em thực hiện trong quá trình thực tập nhằm xây dựng một hệ thống quản lý nhập – xuất kho cơ bản sử dụng ASP.NET Core Web API và Entity Framework Core.
Hệ thống cho phép:
- Quản lý sản phẩm
- Nhập kho (Import)
- Xuất kho (Export)
- Theo dõi lịch sử giao dịch kho
- Tìm kiếm sản phẩm
- Kiểm soát tồn kho
- ASP.NET Core 9
- Entity Framework Core 9
- PostgreSQL
- RESTful API
- Clean structure (Controller – DbContext – Entity)
Hệ thống gồm 2 bảng chính:
Lưu thông tin sản phẩm
| Trường | Kiểu | Mô tả |
|---|---|---|
| Id | Guid | Khóa chính |
| Code | string | Mã sản phẩm (unique) |
| Name | string | Tên sản phẩm |
| Stock | int | Số lượng tồn hiện tại |
Lưu lịch sử nhập – xuất
| Trường | Kiểu | Mô tả |
|---|---|---|
| Id | Guid | Khóa chính |
| Time | DateTime | Thời gian giao dịch |
| Type | smallint | 1 = Import, 2 = Export |
| ProductID | Guid | FK tới Products |
| Quantity | int | Số lượng |
| Note | string | Ghi chú |
-
Không chỉnh sửa trực tiếp
Stock -
Mọi thay đổi số lượng đều phải thông qua:
- API nhập kho
- API xuất kho
-
Mỗi lần nhập/xuất sẽ:
- Cập nhật tồn kho
- Ghi 1 bản ghi vào InventoryTransactions
Công thức tồn kho:
Stock = Tổng Import - Tổng Export
git clone <repository-url>
Trong appsettings.json:
"ConnectionStrings": {
"DefaultConnection": "Host=localhost;Database=InventoryDb;Username=postgres;Password=123456"
}dotnet ef database update
dotnet run
API sẽ chạy tại:
https://localhost:5001
GET /api/products
POST /api/products
POST /api/products/{id}/import?quantity=10¬e=Nhập hàng
POST /api/products/{id}/export?quantity=5¬e=Bán hàng
GET /api/products/{id}/transactions
Trong quá trình thực hiện project, em đã:
- Hiểu cách hoạt động của EF Core Migration
- Nắm được cơ chế DbContext và Dependency Injection
- Thực hành RESTful API
- Thiết kế quan hệ 1-N giữa Product và Transaction
- Xử lý nghiệp vụ kiểm tra tồn kho trước khi xuất
- Làm việc với PostgreSQL
- Hiểu cơ chế design-time khi chạy
dotnet ef
- Áp dụng Service Layer
- Sử dụng DTO thay vì Entity trực tiếp
- Thêm xác thực (Authentication / Authorization)
- Thêm phân quyền người dùng
- Áp dụng Clean Architecture
- Triển khai Docker
- Họ tên: [Vũ Văn Hà Công]
- Vị trí: Intern Backend Developer
- Thời gian thực tập: 2025-2026
- Công nghệ chính: .NET