Bỏ qua

Local Setup — Chạy project trên máy

Hướng dẫn step-by-step để clone repo và chạy cả Backend + Frontend trên máy local.

1. Clone Repository

git clone https://github.com/chienktv90/chienle-labs.git
cd chienle-labs

2. Setup Backend

2.1 Tạo Virtual Environment

cd backend
python -m venv venv
venv\Scripts\activate
cd backend
python3 -m venv venv
source venv/bin/activate

2.2 Cài dependencies

pip install -r requirements.txt

2.3 Cấu hình .env

Copy file mẫu và chỉnh sửa:

cp .env.example .env

Mở file .env và điền các giá trị:

DATABASE_URL=postgresql://postgres:123456@localhost:5432/course_dev
CORS_ORIGINS=http://localhost:3000
R2_ENDPOINT=https://your-account-id.r2.cloudflarestorage.com
R2_KEY=your-access-key
R2_SECRET=your-secret-key
R2_BUCKET=your-bucket-name
CDN_BASE=https://your-cdn-domain

Quan trọng

Thiếu bất kỳ biến R2 nào → FastAPI crash ngay do Pydantic validation.

2.4 Tạo Database Local

Mở pgAdmin hoặc psql:

CREATE DATABASE course_dev;

2.5 Chạy Migrations

alembic upgrade head

Nếu chưa có migration files

alembic revision --autogenerate -m "Initial"
alembic upgrade head

2.6 Khởi động Backend

uvicorn main:app --reload

Kiểm tra: mở http://localhost:8000{"message": "Welcome to Course API"}

Swagger UI: http://localhost:8000/docs


3. Setup Frontend

Mở terminal mới (giữ backend đang chạy):

3.1 Cài dependencies

cd frontend
npm install

3.2 Cấu hình .env.local

cp .env.example .env.local

Nội dung:

NEXT_PUBLIC_API=http://localhost:8000

3.3 Khởi động Frontend

npm run dev

Kiểm tra: mở http://localhost:3000


4. Kiểm tra tổng thể

Thành phần URL Expected
Backend API http://localhost:8000 JSON response
Swagger UI http://localhost:8000/docs API documentation
Frontend http://localhost:3000 Web UI

Done!

Nếu cả 3 URL trên đều hoạt động → bạn đã setup xong local dev environment. Tiếp tục đọc Project Structure để hiểu codebase.