https://github.com/class-fullstack/classs-with-member-khang
This is teach for 1:1 with member Khang
https://github.com/class-fullstack/classs-with-member-khang
Last synced: 8 days ago
JSON representation
This is teach for 1:1 with member Khang
- Host: GitHub
- URL: https://github.com/class-fullstack/classs-with-member-khang
- Owner: class-fullstack
- Created: 2026-03-26T15:25:23.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-04-07T12:23:37.000Z (3 months ago)
- Last Synced: 2026-04-07T14:46:18.447Z (3 months ago)
- Language: Makefile
- Size: 6.84 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# demo-khang
Dự án backend Node.js + Express.js với Docker, được tổ chức theo cấu trúc MVC module hóa, hỗ trợ môi trường phát triển (dev) thông qua Docker Compose.
---
## 🚀 Công nghệ sử dụng
| Công nghệ | Phiên bản |
|---|---|
| Node.js | 20 (Alpine) |
| Express.js | ^5.2.1 |
| Docker | Desktop |
| Docker Compose | v2 |
---
## 📁 Cấu trúc thư mục
```
demo-khang/
├── docker/
│ └── dev/
│ └── dockerfile # Dockerfile cho môi trường dev
├── src/
│ ├── app/
│ │ └── v1/
│ │ ├── routes/ # Định nghĩa routes
│ │ └── services/ # Business logic
│ ├── configs/ # Cấu hình ứng dụng
│ ├── constants/ # Hằng số dùng chung
│ ├── cors/ # Cấu hình CORS
│ ├── helpers/ # Hàm hỗ trợ
│ ├── inits/ # Khởi tạo ứng dụng
│ ├── middlewares/ # Middleware Express
│ ├── templates/ # Templates (email, v.v.)
│ ├── utils/ # Tiện ích chung
│ └── app.js # Khởi tạo Express app
├── server.js # Entry point
├── docker-compose-dev.yml # Docker Compose cho môi trường dev
├── makefile # Các lệnh tiện ích
├── package.json
└── .env # Biến môi trường (không commit)
```
---
## ⚙️ Cài đặt & Chạy
### Yêu cầu
- [Node.js 20+](https://nodejs.org/)
- [Docker Desktop](https://www.docker.com/products/docker-desktop/)
### 1. Clone dự án
```bash
git clone
cd demo-khang
```
### 2. Tạo file `.env`
```bash
cp .env.example .env
# Chỉnh sửa các giá trị trong .env cho phù hợp
```
---
## 🛠️ Các lệnh Make
| Lệnh | Mô tả |
|---|---|
| `make help` | Hiển thị danh sách tất cả các lệnh |
| `make dev` | Chạy server local với `node --watch` |
| `make install` | Cài đặt npm dependencies |
| `make up` | Khởi động Docker container (dev) |
| `make down` | Dừng và xoá Docker container |
| `make restart` | Restart Docker container |
| `make rebuild` | Build lại Docker image và khởi động |
| `make logs` | Xem logs realtime của container |
| `make shell` | Vào shell bên trong container |
| `make clean` | Xoá container, image và `node_modules` |
### Ví dụ sử dụng
```bash
# Lần đầu chạy với Docker
make rebuild
# Xem log
make logs
# Chạy local không cần Docker
make install
make dev
```
---
## 🌐 API Endpoints
| Method | Endpoint | Mô tả |
|---|---|---|
| GET | `/` | Health check – trả về `Hello World!` |
> Server chạy tại: **http://localhost:5001**
---
## 🐳 Docker
Dự án sử dụng Docker Compose cho môi trường dev với các tính năng:
- **Hot reload**: Thư mục local được mount vào container (`volumes: .:/app`)
- **Port**: `5001:5001`
- **Env file**: Tự động load từ `.env`
- **Restart policy**: `unless-stopped`
---
## 📝 Scripts npm
```bash
npm run dev # Chạy với node --watch (hot reload)
npm run prod # Chạy production (không watch)
```
---
## 📄 License
ISC