An open API service indexing awesome lists of open source software.

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

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