{"id":23228840,"url":"https://github.com/8syncdev/pose","last_synced_at":"2025-04-05T18:27:38.390Z","repository":{"id":266511987,"uuid":"898561561","full_name":"8syncdev/pose","owner":"8syncdev","description":"Dự Án E-learning Platform","archived":false,"fork":false,"pushed_at":"2024-12-15T08:53:32.000Z","size":6213,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-11T15:52:49.301Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://8syncdev.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/8syncdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-04T16:04:31.000Z","updated_at":"2024-12-15T08:53:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"e3efdb4f-96f0-48aa-8ed8-fd79cc8fa701","html_url":"https://github.com/8syncdev/pose","commit_stats":null,"previous_names":["8syncdev/pose"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/8syncdev%2Fpose","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/8syncdev%2Fpose/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/8syncdev%2Fpose/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/8syncdev%2Fpose/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/8syncdev","download_url":"https://codeload.github.com/8syncdev/pose/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247381655,"owners_count":20929932,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-19T01:15:16.678Z","updated_at":"2025-04-05T18:27:38.361Z","avatar_url":"https://github.com/8syncdev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tổng Quan Dự Án E-learning Platform\n\n## 🌐 Thông Tin Liên Hệ\n- **Website**: [8syncdev.com](https://8syncdev.com)\n- **GitHub**: [8 sync dev](https://github.com/8syncdev)\n- **Tác giả**: Nguyễn Phương Anh Tú (Leader)\n- **Liên hệ**: 0767449819\n\n## 📋 Mục Lục\n1. [Kiến Trúc Hệ Thống](#kiến-trúc-hệ-thống)\n2. [Backend Service](#backend-service)\n3. [Frontend Application](#frontend-application)\n4. [Database Design](#database-design)\n5. [Tính Năng Chính](#tính-năng-chính)\n6. [Công Nghệ Sử Dụng](#công-nghệ-sử-dụng)\n7. [Tài Liệu Tham Khảo](#tài-liệu-tham-khảo)\n\n## 🏗 Kiến Trúc Hệ Thống\n\n```mermaid\ngraph TB\n    Client[Client Browser] --\u003e FE[NextJS Frontend]\n    FE --\u003e AG[API Gateway]\n    AG --\u003e MS1[User Service]\n    AG --\u003e MS2[Course Service]\n    AG --\u003e MS3[Payment Service]\n    AG --\u003e MS4[Exercise Service]\n    AG --\u003e MS5[Enrollment Service]\n    \n    MS1 --\u003e DB1[(User DB)]\n    MS2 --\u003e DB2[(Course DB)]\n    MS3 --\u003e DB3[(Payment DB)]\n    MS4 --\u003e DB4[(Exercise DB)]\n    MS5 --\u003e DB5[(Enrollment DB)]\n    \n    MS1 -.-\u003e Cache[SSR Nextjs]\n    MS2 -.-\u003e Cache\n    MS3 -.-\u003e Cache\n    MS4 -.-\u003e Cache\n    MS5 -.-\u003e Cache\n```\n\n## 🔧 Backend Service\n\n### Cấu Trúc Thư Mục\n```\nencore-backend/\n├── src/\n│   ├── app/\n│   │   ├── module/\n│   │   │   ├── enrollments/\n│   │   │   ├── exercises/\n│   │   │   ├── payments/\n│   │   │   └── users/\n│   ├── shared/\n│   └── utils/\n├── design/\n└── tests/\n```\n\n### Microservices\n\n#### Back end Encore được chia thành 5 microservices:\n\n1. **User Service**\n   - Xác thực \u0026 Phân quyền\n   - Quản lý profile\n   - Role-based access control\n\n2. **Course Service**\n   - CRUD khóa học\n   - Quản lý chương/bài học\n   - Tracking tiến độ học tập\n\n3. **Enrollment Service**\n   - Xử lý thanh toán dựa đăng ký khóa học\n   - Quản lý giao dịch dùng realtime email sends.\n\n4. **Exercise Service**\n   - Quản lý bài tập\n   - AI Assistant tích hợp\n   - Chấm điểm tự động, phân luồng để theo dõi thời gian làm bài, dung lượng runtime để chấm điểm.\n\n5. **Payment Service**\n   - Xử lý tích hợp payment gateway\n\n6. **Auth Service**\n   - Identity Management từ User Service\n   - Quản lý xác thực và phân quyền token (JWT)\n\n#### Backend FastAPI LLM được viết bằng Python, sử dụng các model LLM từ Mistral, OpenAI, và LLaMA.\n\n1. **LLM Service**\n   - Giải bài tập từ Exercise Service của Backend Encore\n   - Chống injestion attack\n   - Phân tích sentiment của người dùng\n   - Kiểm soát ngữ cảnh từ Exercise Service\n   - Kiểm soát token vì mục đích thương mại\n\n## 🎨 Frontend Application\n\n### Cấu Trúc Thư Mục\n```\nnextjs-frontend/\n├── app/\n│   ├── (admin)/\n│   │   ├── dashboard/\n│   │   ├── courses/\n│   │   └── users/\n│   ├── (auth)/\n│   └── (public)/\n├── components/\n└── lib/\n```\n\n### Tính Năng UI\n1. **Dashboard**\n   ```mermaid\n   pie title Phân Bố Người Dùng\n       \"Học viên\" : 45\n       \"Giảng viên\" : 15\n       \"Admin\" : 5\n   ```\n\n2. **Quản Lý Khóa Học**\n   - Tạo/sửa/xóa khóa học\n   - Upload video bài giảng\n   - Quản lý nội dung markdown\n\n## 💾 Database Design\n\n```mermaid\nerDiagram\n    USER ||--o{ ENROLLMENT : enrolls\n    USER ||--o{ PAYMENT : makes\n    COURSE ||--o{ CHAPTER : contains\n    CHAPTER ||--o{ LESSON : contains\n    LESSON ||--o{ EXERCISE : has\n```\n\n## 🛠 Công Nghệ Sử Dụng\n\n### Backend\n#### Encore\n- Encore Framework\n- TypeScript\n- PostgreSQL\n- Cache: SSR NextJS\n- Firebase Storage\n- Firebase Auth\n#### LLM FastAPI\n- FastAPI\n- Python Langchain\n\n### Frontend\n- Next.js 15 (Mới ra mắt vào tháng 11/2024)\n- TailwindCSS (CSS)\n- Shadcn UI (Component UI)\n- React Query (Quản lý trạng thái và fetch dữ liệu)\n- Framer Motion (Hiệu ứng động)\n\n## 📚 Tài Liệu Tham Khảo\n\n### Kiến Trúc\n- [Microservices Pattern](https://microservices.io/patterns/index.html)\n- [Clean Architecture](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)\n\n### Công Nghệ\n- [Encore Documentation](https://encore.dev/docs)\n- [Next.js Documentation](https://nextjs.org/docs)\n- [TailwindCSS](https://tailwindcss.com/docs)\n\n## 🔄 CI/CD Pipeline\n\n```mermaid\ngraph LR\n    A[Code Push] --\u003e B[Build]\n    B --\u003e C[Test]\n    C --\u003e D[Deploy Staging]\n    D --\u003e E[Deploy Production]\n```\n\n## 📊 Monitoring \u0026 Analytics\n\n- Sử dụng Encore's built-in monitoring\n- Error tracking với Sentry\n- Performance monitoring với New Relic\n- Custom analytics dashboard\n\n## 🔐 Security\n\n- JWT Authentication\n- Role-based Authorization\n- Indentity Management (via AuthService)\n- API Rate Limiting\n- SQL Injection Prevention\n- XSS Protection\n- CORS Policy\n\n## 🚀 Deployment\n\n- Backend: AWS với Encore Cloud\n- Frontend: Vercel\n- Database: Neon (PostgreSQL)\n- Cache: SSR NextJS\n- Storage: Firebase Storage\n\n## 📈 Roadmap\n\n1. Q1/2024: \n   - Tích hợp payment gateway\n   - Nâng cấp AI assistant\n   \n2. Q2/2024:\n   - Mobile app với React Native\n   - Real-time collaboration features\n\n3. Q3/2024:\n   - Analytics dashboard\n   - Performance optimization\n\n4. Q4/2024:\n   - Internationalization\n   - Advanced reporting\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F8syncdev%2Fpose","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F8syncdev%2Fpose","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F8syncdev%2Fpose/lists"}