- Figma Prototype - design เว็บทั้งหมดของ Learning Space ประกอบด้วยเว็บของนักเรียนและเว็บของติวเตอร์
- Figma Design System - component ที่ใช้ในเว็บ และอาจจะมีบางหน้าของเว็บที่ยังไม่พร้อมสำหรับการ prototype
- Requirements ทั้งหมดของ Learning Space ทั้ง functional และ non-functional ของเว็บนักเรียนและเว็บติวเตอร์
- Account สำหรับทดสอบ ทั้งบน staging และ production
- Migration Plan ต่าง ๆ สำหรับการทำให้ระบบใหม่ compatible กับระบบเก่า
โดยทีม developers จะฟัง breif จาก PM จากนั้นจะมาเขียน backlog ลงใน Backlog For Dev > Sprint X กัน จากนั้นจะทำการ estimate point และให้แต่ละคนเลือกงานที่จะทำใน sprint โดย คำนึงถึงความเหมาะสมของงานและความสามารถในการ burn point ของทีม
ใช้สำหรับการติดตาม progress ของงานแต่ละ sprint ที่ plan เอาไว้ใน Coda โดย developer จะต้องเป็นคนเพิ่ม card เข้าไปใน Basecamp เอง เพื่อให้ PM ได้รับ notification ว่างานไหนเสร็จตอนไหน แล้วใน sprint เหลืองานอะไรบ้าง
- Node.js - JavaScript runtime
- PNPM - Package manager
- Docker - Containerization platform
- Docker Compose - Tool for defining and running multi-container Docker applications
-
Clone the repository
git clone git@github.com:softnetics/luminate.git
-
Install dependencies
pnpm install
Check if you have the correct version of Node.js and PNPM. If not, we encourage you to use corepack
-
Prepare .env file
cp apps-api/marketplace/.env.sample apps-api/marketplace/.env cp apps-web/marketplace/.env.sample apps-web/marketplace/.env cp apps-web/tutor/.env.sample apps-web/tutor/.env
-
Prepare local database instance
docker compose up -d
-
Code generation for Typescript
pnpm codegen
-
Start the development server
# All services pnpm dev --filter '@web/*' --filter '@api/*' # Student Only pnpm web:dev # Tutor Only pnpm tutor:dev # API Only pnpm api:dev
See in the console for the URL of the development server. Basically, as shown below.
Service URL Web http://localhost:3000 Tutor http://localhost:3001 API http://localhost:4000
เราจะใช้ GitHub Action และ Vercel ในการทำ deployment automation โดยเมื่อมี code ถึง push ขึ้นมาที่ main branch เครื่องมือทั้งสองจะทำการ build และ deploy ไปที่ production environment โดยอัตโนมัติ ในขณะที่ staging environment จะ deploy โดยอัตโนมัติเมื่อมี code ถึง push ขึ้นมาที่ staging branch
Staging https://learning-space-staging.vercel.app
Production https://learning-space-prod.vercel.app/
Staging https://learning-space-tutor-staging.vercel.app/
Production TODO
Staging https://luminate-marketplace-api-staging.fly.dev
Production TODO
- Next.js - React Framework
- Tailwind CSS - CSS Framework
- Radix UI - Component Library
- Shadcn UI - Designed components
- TypeScript - Typed JavaScript
- Fastify - Fast and low overhead web framework, for Node.js
- Prisma - Next-generation Node.js and TypeScript ORM
- @wessberg/di - Compile-time dependency injection for TypeScript
- ts-rest - For e2e type-safe communication between frontend and backend
- Turborepo - Monorepo management tool
ประกอบไปด้วย 3 folder หลัก ๆ
lumiante/
├── .changeset
├── apps-api/
│ └── learning-space/
│ └── package.json
├── apps-web/
│ ├── learning-space/
│ │ └── package.json
│ └── tutor/
│ └── package.json
└── packages/
├── example-1
└── example-2
apps-api: รวบรวม service ที่เกี่ยวข้องกับ backend ทั้งหมด
apps-web: รวบรวม service ที่เกี่ยวข้องกับ frontend ทั้งหมด
packages: รวบรวม internal package ที่สามารถแชร์ได้ระหว่าง service ไม้ว่าจะเป็นระหว่าง frontend กับ frontend, backend กับ backend หรือ frontend กับ backend ซึ่ง internal packages ทั้งหมดนี้มีจำนวนเยอะมาก สามารถอ่านรายละเอียดได้ที่ README.md ของแต่ละ package