OAFlow — Fullstack Project
一款支持审批流、考勤管理、部门协作的企业办公自动化系统。
Architecture
apps/
├── web/ # Next.js 15 + TypeScript + Tailwind CSS
└── api/ # Fastify 5 + TypeScript + SQLite (sql.js)
packages/
├── shared-types/ # @shared/types — shared TypeScript interfaces
└── shared-config/ # @shared/config — shared configuration
Quick Start
# Install all dependencies (root + workspaces)
npm install
# Start both frontend and backend in dev mode
npm run dev
# Or start individually
npm run dev:web # http://localhost:3000
npm run dev:api # http://localhost:3001
Build
# Build everything
npm run build
# Or individually
npm run build:web
npm run build:api
Testing
# Run API tests
npm test
API Endpoints
Auth
POST /api/auth/registerPOST /api/auth/loginGET /api/auth/me
Resources
users
GET /api/users— ListGET /api/users/:id— GetPOST /api/users— CreatePUT /api/users/:id— UpdateDELETE /api/users/:id— Delete
contracts
GET /api/contracts— ListGET /api/contracts/:id— GetPOST /api/contracts— CreatePUT /api/contracts/:id— UpdateDELETE /api/contracts/:id— Delete
approvals
GET /api/approvals— ListGET /api/approvals/:id— GetPOST /api/approvals— CreatePUT /api/approvals/:id— UpdateDELETE /api/approvals/:id— Delete
customers
GET /api/customers— ListGET /api/customers/:id— GetPOST /api/customers— CreatePUT /api/customers/:id— UpdateDELETE /api/customers/:id— Delete
reminders
GET /api/reminders— ListGET /api/reminders/:id— GetPOST /api/reminders— CreatePUT /api/reminders/:id— UpdateDELETE /api/reminders/:id— Delete
tickets
GET /api/tickets— ListGET /api/tickets/:id— GetPOST /api/tickets— CreatePUT /api/tickets/:id— UpdateDELETE /api/tickets/:id— Delete
items
GET /api/items— ListGET /api/items/:id— GetPOST /api/items— CreatePUT /api/items/:id— UpdateDELETE /api/items/:id— Delete
System
GET /api/health— Health check
Environment Variables
See .env.example for all available configuration.