architecture/tech-versions.md
Tech Stack Versions
Pinned versions cho project — cập nhật khi upgrade.
| Technology |
Version |
Notes |
| Node.js |
22.22.2 LTS |
.nvmrc tại root, nvm use để switch |
| NestJS |
11.0.1 |
Backend framework |
| Prisma |
7.6.0 |
ORM — v7 dùng prisma-client-js generator + @prisma/adapter-pg bắt buộc |
| TypeScript |
5.7.x |
Theo NestJS 11 |
| Next.js |
16.x |
Web app (booking-web) — sẽ init khi bắt đầu |
| Expo SDK |
54 |
Mobile app — React Native 0.81.5, React 19.1 |
| PostgreSQL |
16 (Alpine) |
Docker image postgres:16-alpine |
| Redis |
7 (Alpine) |
Docker image redis:7-alpine |
| MinIO |
latest |
S3-compatible file storage |
| Yarn |
1.22.x (Classic) |
Package manager — dùng yarn cho mọi command |
Prisma v7 Notes (Breaking Changes)
- Generator provider:
prisma-client-js (vẫn hoạt động ở v7, CJS compatible)
- Import:
from '@prisma/client' (cách truyền thống)
- Adapter bắt buộc:
@prisma/adapter-pg — truyền vào PrismaClient({ adapter })
url không nằm trong datasource block nữa — config trong prisma.config.ts
- Config dùng
defineConfig + env() từ prisma/config
- Generator
prisma-client (mới) output ESM .ts files — KHÔNG compatible NestJS CJS, tránh dùng
Docker Compose Ports
| Service |
Host Port |
Container Port |
| PostgreSQL |
5442 |
5432 |
| Redis |
6389 |
6379 |
| MinIO API |
9010 |
9000 |
| MinIO Console |
9011 |
9001 |
| NestJS API |
3010 |
3010 |