ระบบจัดการสถานะการทำงานของเครื่องจักรก่อสร้าง (รถแบคโฮ รถบด รถเกรด รถทำถนน) พร้อมระบบติดตามโครงการและจัดการทีมงาน
- ✅ Authentication System - ระบบ Login สำหรับ Admin
- ✅ Dashboard - แสดงสถิติรวมและแผนที่โครงการ
- ✅ จัดการโครงการ - CRUD โครงการพร้อมเลือกตำแหน่งบน OpenStreetMap
- ✅ จัดการเครื่องจักร - CRUD เครื่องจักร พร้อม filter ตามสถานะและมอบหมายเข้าโครงการ
- ✅ จัดการทีม - CRUD ทีมงาน
- ✅ จัดการพนักงาน - CRUD พนักงานและมอบหมายเข้าทีม
- Frontend: Next.js 16 (App Router)
- UI Library: Material-UI (MUI)
- Database: SQLite with better-sqlite3
- Authentication: JWT with bcryptjs
- Map: Leaflet + OpenStreetMap
- Language: TypeScript
- Clone repository
git clone https://github.com/yourusername/inventory-udon-pao.git
cd inventory-udon-pao- ติดตั้ง dependencies
npm install- ตั้งค่า environment variables
# .env.local จะถูกสร้างอัตโนมัติ หรือสร้างเองได้
DATABASE_PATH=./database/inventory.db
JWT_SECRET=your-super-secret-jwt-key-change-this-in-production- สร้าง database และข้อมูลเริ่มต้น
# สร้าง database และ admin user
npm run init-db
# เพิ่มข้อมูลตัวอย่าง (โครงการ, เครื่องจักร, ทีม, พนักงาน)
npm run seed- รัน development server
npm run devเปิด http://localhost:3000 ในเบราว์เซอร์
Admin Account:
- Username:
admin - Password:
admin123
users - ข้อมูล admin users
projects - โครงการ (พร้อม latitude/longitude)
machinery - เครื่องจักร
teams - ทีมงาน
employees - พนักงาน
machinery_assignments - การมอบหมายเครื่องจักรเข้าโครงการ
npm run dev # รัน development server
npm run build # Build สำหรับ production
npm run start # รัน production server
npm run init-db # สร้าง database และ admin user
npm run seed # เพิ่มข้อมูลตัวอย่าง| Path | Description |
|---|---|
/ |
Redirect ไป /login |
/login |
หน้า Login |
/dashboard |
Dashboard - สถิติและแผนที่ |
/projects |
จัดการโครงการ |
/machinery |
จัดการเครื่องจักร |
/teams |
จัดการทีม |
/employees |
จัดการพนักงาน |
POST /api/auth/login- LoginGET /api/auth/me- Get current user
GET /api/projects- ดึงรายการโครงการPOST /api/projects- สร้างโครงการGET /api/projects/[id]- ดึงโครงการตาม IDPUT /api/projects/[id]- แก้ไขโครงการDELETE /api/projects/[id]- ลบโครงการ
GET /api/machinery?status=...- ดึงรายการเครื่องจักรPOST /api/machinery- สร้างเครื่องจักรGET /api/machinery/[id]- ดึงเครื่องจักรตาม IDPUT /api/machinery/[id]- แก้ไขเครื่องจักรDELETE /api/machinery/[id]- ลบเครื่องจักรPOST /api/machinery/[id]/assign- มอบหมายเข้าโครงการPUT /api/machinery/[id]/assign- อัปเดตการมอบหมาย
GET /api/teams- ดึงรายการทีมPOST /api/teams- สร้างทีมGET/PUT/DELETE /api/teams/[id]- จัดการทีมGET /api/employees?team_id=...- ดึงรายการพนักงานPOST /api/employees- สร้างพนักงานGET/PUT/DELETE /api/employees/[id]- จัดการพนักงาน
inventory-udon-pao/
├── src/
│ ├── app/ # Next.js App Router pages
│ │ ├── api/ # API routes
│ │ ├── dashboard/ # Dashboard page
│ │ ├── projects/ # Projects management
│ │ ├── machinery/ # Machinery management
│ │ ├── teams/ # Teams management
│ │ └── employees/ # Employees management
│ ├── components/ # React components
│ │ ├── Layout.tsx # Main layout
│ │ ├── ThemeProvider.tsx # MUI theme
│ │ └── map/ # Map components
│ └── lib/ # Utilities
│ ├── db.ts # Database helpers
│ └── auth.ts # Authentication utilities
├── database/ # SQLite database
│ ├── schema.sql # Database schema
│ └── inventory.db # SQLite database file
├── scripts/ # Utility scripts
│ ├── init-db.ts # Database initialization
│ └── seed.ts # Seed data
└── public/ # Static files
- สถิติรวม (โครงการ, เครื่องจักร, สถานะการใช้งาน)
- แผนที่ OpenStreetMap แสดง markers ของโครงการทั้งหมด
- ตารางเครื่องจักรที่กำลังใช้งาน
- เพิ่ม/แก้ไข/ลบโครงการ
- เลือกตำแหน่งโครงการบนแผนที่
- กำหนดวันที่เริ่ม-สิ้นสุด
- สถานะโครงการ (วางแผน, กำลังดำเนินการ, เสร็จสิ้น, ยกเลิก)
- เพิ่ม/แก้ไข/ลบเครื่องจักร
- Filter ตามสถานะ (พร้อมใช้, กำลังใช้, ซ่อมบำรุง, ไม่พร้อมใช้)
- มอบหมายเครื่องจักรเข้าโครงการ
- ระบบอัปเดตสถานะอัตโนมัติเมื่อมอบหมาย
- เพิ่ม/แก้ไข/ลบทีม
- เพิ่ม/แก้ไข/ลบพนักงาน
- มอบหมายพนักงานเข้าทีม
- Password hashing ด้วย bcrypt
- JWT token-based authentication
- Authorization middleware
- SQLite with foreign key constraints
MIT License
Note: โปรเจคนี้พัฒนาด้วย Next.js 16 และใช้ App Router