72 lines
2.6 KiB
Markdown
72 lines
2.6 KiB
Markdown
# LMS Frontend
|
|
|
|
โปรเจกต์ **lms-frontend** เป็นระบบ Frontend
|
|
สำหรับระบบ **Learning Management System (LMS)**
|
|
|
|
ระบบนี้ถูกออกแบบเพื่อ:
|
|
- รองรับการเรียนรู้ผ่าน Web / Mobile / Desktop
|
|
- ใช้โค้ดชุดเดียว (Single Codebase) แต่รองรับหลายแพลตฟอร์ม
|
|
- เชื่อมต่อกับ Backend LMS ผ่าน API
|
|
- รองรับการพัฒนา UI แบบ Modular และขยายในอนาคต
|
|
|
|
---
|
|
|
|
## Purpose
|
|
|
|
- เป็น Frontend หลักของระบบ LMS
|
|
- แสดงผลข้อมูลการเรียนรู้จาก Backend API
|
|
- รองรับผู้ใช้งานบนหลายอุปกรณ์ (Responsive + Adaptive UI)
|
|
- ออกแบบให้รองรับการ scale ในระดับ production
|
|
|
|
---
|
|
|
|
## Features
|
|
|
|
- Login / Logout (JWT Authentication)
|
|
- Adaptive Navigation
|
|
- Desktop / Web → Sidebar (NavigationRail)
|
|
- Mobile → Bottom Navigation (NavigationBar)
|
|
- Client-side Routing (ไม่ reload แอป)
|
|
- Modular Page Architecture
|
|
- Cross-platform UI (Web / Mobile / Desktop)
|
|
- รองรับฟอนต์ไทย (Noto Sans Thai)
|
|
|
|
---
|
|
|
|
## Technical Overview
|
|
|
|
- Frontend Framework: **Flet (Python)**
|
|
- Language: **Python 3.11+**
|
|
- Backend API: **Django REST API (lms-backend)**
|
|
- Authentication: **JWT**
|
|
- UI Pattern: **Adaptive Layout + Client-side Routing**
|
|
- Font: **Noto Sans Thai**
|
|
|
|
---
|
|
|
|
## Project Structure
|
|
|
|
```bash
|
|
lms-frontend/
|
|
├── main.py # Entry point (routing & app flow)
|
|
├── app/
|
|
│ ├── state.py # Global state (auth/session)
|
|
│ ├── layout.py # Main layout (menu + content)
|
|
│ ├── pages/ # Application pages
|
|
│ │ ├── articles.py
|
|
│ │ ├── courses.py
|
|
│ │ ├── my_courses.py
|
|
│ │ ├── progress.py
|
|
│ │ └── profile.py
|
|
│ └── widgets/
|
|
│ └── adaptive_menu.py # Responsive navigation component
|
|
├── assets/
|
|
│ └── fonts/
|
|
│ └── NotoSansThai-Regular.ttf
|
|
├── requirements.txt
|
|
└── README.md
|
|
```
|
|
|
|
## License
|
|
- สงวนลิขสิทธิ์สำหรับการใช้งานเพื่อการศึกษาและพัฒนาภายในองค์กรเท่านั้น
|
|
- Developed with ❤️ using Flet & Python |