โปรเจคนี้เป็นระบบที่ประกอบไปด้วยทั้ง Frontend และ Backend สำหรับการแลกคะแนน โดยผู้ใช้งานสามารถล็อกอิน ดูรายการสิทธิพิเศษ และแลกรับสิทธิ์ได้ตามจำนวนคะแนนที่มี
ระบบนี้ใช้ Nuxt.js (หรือ Vue.js) สำหรับ Frontend และ NestJS สำหรับ Backend โดยมี Docker Compose สำหรับการจัดการทั้งสองส่วนพร้อมกัน
- ผู้ใช้สามารถล็อกอินด้วย Username และ Password
- ระบบจะใช้ JWT (JSON Web Token) ในการจัดการ Authentication
- เมื่อผู้ใช้แลกรับสิทธิ์ ระบบจะทำการตัดคะแนน และไม่สามารถแลกรับสิทธิ์เดิมซ้ำได้
- ระบบแสดงผลแบบ Responsive รองรับการใช้งานบนมือถือ
- ติดตั้ง Docker และ Docker Compose บนเครื่อง
-
Clone โปรเจคนี้จาก GitHub:
git clone https://github.com/supagonava/reward-point-system
-
เข้าไปในโฟลเดอร์โปรเจค:
cd reward-point-system
-
สร้างและรัน Docker Container ด้วยคำสั่ง:
docker-compose up --build
Docker Compose จะทำการ build ทั้ง Frontend และ Backend แล้วรันทั้งสองส่วนใน container แยกกัน
- เปิดเบราว์เซอร์แล้วเข้าไปที่:
http://localhost:3000
เพื่อเข้าสู่ระบบ Frontend - API Backend จะทำงานที่
http://localhost:3001
/point-system
├── frontend/ # ไฟล์และโค้ดสำหรับส่วนของ Frontend (Nuxt หรือ Vue.js)
├── backend/ # ไฟล์และโค้ดสำหรับส่วนของ Backend (NestJS)
├── docker-compose.yml # ไฟล์ Docker Compose
└── README.md # ไฟล์เอกสาร (README)
ระบบสามารถจำลองรายการสินค้าหรือสิทธิพิเศษได้ผ่าน API โดยรายการเหล่านี้จะประกอบไปด้วย:
- รูปภาพ
- รายละเอียดของสิทธิ์
- คะแนนที่ต้องใช้ในการแลก
- วันที่หมดอายุของสิทธิ์
หากต้องการหยุดการทำงานของ container:
docker-compose down
หากต้องการ rebuild เฉพาะบางส่วน:
docker-compose up --build frontend
หรือ
docker-compose up --build backend