69 lines
3.4 KiB
Markdown
69 lines
3.4 KiB
Markdown
# ERP System — Inventory & Supply Chain (Phase 1)
|
|
|
|
A modular ERP built in phases. **Phase 1** delivers Inventory & Supply Chain: master data, procurement, goods receipt, and stock management with **FIFO** costing, **multi-warehouse**, single-tenant.
|
|
|
|
Monorepo: a .NET 10 REST API backend and a Next.js frontend, with all documentation under `docs/`.
|
|
|
|
## Repository layout
|
|
```
|
|
erp-monorepo/
|
|
├── Backend/ # ASP.NET Core Web API (.NET 10, PostgreSQL) + PROGRESS.md
|
|
├── Frontend/ # Next.js (App Router, TypeScript) + PROGRESS.md
|
|
└── docs/ # all documentation — START AT docs/00-CORE.md
|
|
```
|
|
|
|
## Start here
|
|
**All work begins at [`docs/00-CORE.md`](docs/00-CORE.md)** — the hub. It defines structure, tech stack, backend setup, and routes you to the right doc.
|
|
|
|
| Doc | Purpose |
|
|
|---|---|
|
|
| `docs/00-CORE.md` | Hub: structure, stack, backend init, routing |
|
|
| `docs/01-DOC-GUIDE.md` | Doc map, reading order, tracking conventions |
|
|
| `docs/10-BACKEND-PHASE1.md` | Backend spec: SRS + ER model + architecture |
|
|
| `docs/11-BACKEND-PHASE1.md` | Backend API reference (complete req/res) |
|
|
| `docs/20-FRONTEND.md` | Frontend user-flows + rules + validation posture |
|
|
| `Backend/PROGRESS.md`, `Frontend/PROGRESS.md` | Change checklists (git-shared) |
|
|
|
|
## Prerequisites
|
|
- .NET 10 SDK (`dotnet --version` → `10.0.x`)
|
|
- PostgreSQL running on localhost
|
|
- `dotnet-ef` tool (`dotnet tool install --global dotnet-ef`)
|
|
- Node.js (for the frontend)
|
|
|
|
## Run the backend
|
|
```bash
|
|
# create the database in your local Postgres first, e.g.:
|
|
# createdb -U postgres ERPCore (or: CREATE DATABASE "ERPCore"; in psql)
|
|
cd Backend/ERPCore
|
|
# set Username/Password in appsettings.Development.json to your local Postgres login
|
|
dotnet ef database update
|
|
dotnet run
|
|
```
|
|
- Swagger UI: `https://localhost:<port>/swagger`
|
|
- Health: `https://localhost:<port>/health` → `Healthy`
|
|
|
|
Full setup (packages, folder scaffold, Program.cs wiring) is in `docs/00-CORE.md §5`.
|
|
|
|
## Run the frontend
|
|
```bash
|
|
cd Frontend
|
|
cp .env.local.example .env.local # set NEXT_PUBLIC_API_BASE_URL=https://localhost:<port>
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
## Configuration & secrets
|
|
- Three appsettings files: base (`appsettings.json`, placeholders only), `Development` (localhost), `Production` (env vars).
|
|
- **Local dev only** currently. Before any shared/staging/production use, move secrets to User Secrets (dev) and environment variables (prod), keep `appsettings.Development.json` / `appsettings.Production.json` out of git, and rotate any credential ever committed.
|
|
|
|
## Tech stack
|
|
**Backend:** .NET 10, ASP.NET Core Web API, EF Core 10, PostgreSQL (Npgsql), JWT bearer auth, Serilog, Swashbuckle/Swagger, HealthChecks. Layering: Controller → Service → Repository → UnitOfWork, DTOs at the controller boundary, FIFO in a domain service.
|
|
**Frontend:** Next.js (App Router) + TypeScript, plain React hooks, dependency-free validation (client for UX; **server is authoritative**).
|
|
|
|
## Conventions
|
|
- Documentation: one source of truth per topic; edit in place; navigate from `docs/00-CORE.md`.
|
|
- Progress: update the relevant `PROGRESS.md` in the same commit as the code (`docs/01-DOC-GUIDE.md §6`).
|
|
|
|
## Roadmap (future phases)
|
|
Sales & CRM · Manufacturing & Production · QC/QA · Accounting · HRM. Phase 1 reserves the integration seams (GL-ready journal entries, reservation status, goods-issue movement, inspection hold, user identity) so later phases integrate without a schema migration.
|