Nền tảng kết nối Learner và Sherpa eSports, học trên Discord. Monorepo với apps/api (NestJS) và apps/client (Next.js App Router).
- Node.js 18+ (khuyến nghị 20 LTS)
- npm (bundled cùng Node)
- PostgreSQL 14+ (đặt
DATABASE_URL)
npm installapps/api: NestJS backend, Prisma schema, Discord bridge mockapps/client: Next.js 14 (App Router), Tailwind UIapps/api/prisma/schema.prisma: định nghĩa DB
cd apps/api
npm install- Tạo file
.env:
DATABASE_URL="postgresql://USER:PASSWORD@localhost:5432/esportguru"
PORT=3001
- (Khi thêm Prisma client) chạy:
npx prisma migrate dev --name init
npx prisma generate- Chạy server:
npm run start:devcd apps/client
npm install
npm run devMặc định chạy ở http://localhost:3000.
apps/api/src/discord/discord.service.ts cung cấp createPrivateRoom(bookingId) trả về discordChannelId và inviteLink giả, đủ để frontend hiển thị nút Join.
- POST
/bookingtạo booking (PENDING). - POST
/booking/:id/confirmxác nhận, gándiscordChannelId+inviteLink. - POST
/booking/:id/rejecthủy. - GET
/booking/:id/invitelấy link Join Discord cho Learner/Sherpa.
- Kiểm tra lint (khi đã cấu hình):
pnpm lint - Format (nếu dùng Prettier):
pnpm format
- Hiện services dùng in-memory để demo; cần nối Prisma + Postgres cho môi trường thật.
- Tailwind đã cấu hình sẵn trong
apps/client/tailwind.config.tsvàglobals.css.