Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LearnEngServer

LearnEngServer là backend API (RESTful) dành cho ứng dụng học tiếng Anh, được xây dựng bằng Python với FastAPI. Server cung cấp các API để quản lý người dùng, xác thực (Authentication), và đồng bộ dữ liệu (Sync).

🚀 Công nghệ sử dụng

  • Web Framework: FastAPI
  • Server ASGI: Uvicorn
  • Database ORM: SQLModel
  • Database Driver: PostgreSQL (psycopg)
  • Authentication: JWT (JSON Web Tokens), bcryptpython-jose

📋 Yêu cầu hệ thống

  • Python 3.9+
  • PostgreSQL server (đã được cài đặt và đang chạy)

⚙️ Hướng dẫn cài đặt và chạy server

Làm theo các bước sau để thiết lập môi trường và chạy server ở môi trường phát triển (development):

Bước 1: Clone dự án và tạo môi trường ảo (Virtual Environment)

Mở terminal/command prompt và di chuyển vào thư mục dự án, sau đó tạo và kích hoạt môi trường ảo:

Trên Windows:

python -m venv .venv
.venv\Scripts\activate

Trên macOS/Linux:

python3 -m venv .venv
source .venv/bin/activate

Bước 2: Cài đặt thư viện (Dependencies)

pip install -r requirements.txt

Bước 3: Thiết lập biến môi trường (Environment Variables)

Tạo một file .env ở thư mục gốc (ngang hàng với main.py) bằng cách copy từ file .env.example:

cp .env.example .env

Mở file .env và điền các thông tin kết nối tới database PostgreSQL cũng như các secret key của bạn:

POSTGRES_SERVER=localhost
POSTGRES_PORT=5432
POSTGRES_DB=tên_database_cua_ban
POSTGRES_USER=postgres
POSTGRES_PASSWORD=mật_khẩu_cua_ban

SECRET_KEY=mot_chuoi_bi_mat_dai_va_ngau_nhien
ACCESS_TOKEN_EXPIRE_MINUTES=30
REFRESH_TOKEN_EXPIRE_DAYS=7

(Lưu ý: Đảm bảo database đã được tạo trong PostgreSQL trước khi chạy server. Ứng dụng sẽ tự động tạo các bảng khi khởi động nếu chưa có).

Bước 4: Chạy server

Sau khi đã thiết lập xong biến môi trường, bạn có thể chạy server thông qua uvicorn:

uvicorn main:app --reload

Tham số --reload giúp server tự động khởi động lại mỗi khi bạn thay đổi code (chỉ dùng trong môi trường phát triển).

📚 Tài liệu API (API Documentation)

Khi server đang chạy (mặc định tại http://localhost:8000 hoặc http://127.0.0.1:8000), FastAPI tự động cung cấp tài liệu API tương tác:

📁 Cấu trúc thư mục chính

LearnEngServer/
├── api/             # Chứa các router (auth, user, sync,...)
├── core/            # Chứa file cấu hình (config), kết nối DB
├── model/           # Chứa định nghĩa các Models (Entity, DTO)
├── public/uploads/  # Thư mục lưu trữ file upload tĩnh
├── .env.example     # File mẫu chứa các biến môi trường
├── main.py          # Entry point của ứng dụng (nơi khởi tạo FastAPI app)
└── requirements.txt # Danh sách các thư viện Python cần thiết

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages