feat: initial LMS frontend with adaptive navigation and routing

This commit is contained in:
Flook
2026-05-04 17:44:35 +07:00
commit b4725b184b
17 changed files with 395 additions and 0 deletions
+72
View File
@@ -0,0 +1,72 @@
# 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