Commit graph

399 commits

Author SHA1 Message Date
supalerk-ar66
dd5aacea3a feat: Implement a public course browsing page with search functionality and detailed course cards. 2026-02-11 15:27:22 +07:00
supalerk-ar66
d4f84667dc feat: add new pages for authentication (register, forgot password) and course browsing (discovery, course detail) 2026-02-11 15:11:38 +07:00
supalerk-ar66
acff387a9b feat: Implement user dashboard with recommended courses, a 'My Courses' page for enrolled courses, and a reusable CourseCard component. 2026-02-11 15:05:27 +07:00
JakkrapartXD
840eae4fad refactor: update toggleRecommended endpoint to accept is_recommended as a query parameter and remove the ToggleRecommendedRequest type. 2026-02-11 15:04:10 +07:00
JakkrapartXD
4ca5692e6f fix: update types for quiz attempts in lesson content
All checks were successful
Build and Deploy Backend / Build Backend Docker Image (push) Successful in 27s
Build and Deploy Backend / Deploy E-learning Backend to Dev Server (push) Successful in 4s
Build and Deploy Backend / Notify Deployment Status (push) Successful in 1s
- Add allow_multiple_attempts and latest_attempt to quiz type
- Make quiz fields optional to support conditional return
- Fix AuditAction enum usage in RecommendedCourses service
2026-02-11 15:01:58 +07:00
JakkrapartXD
df750723af feat: add quiz attempt logic to getlessonContent
- Check allow_multiple_attempts setting when returning quiz data
- If allow_multiple_attempts is false AND user has attempted:
  - Return only quiz metadata and latest score
  - Do NOT return questions
- If allow_multiple_attempts is true OR user has not attempted:
  - Return full quiz with questions
  - Include latest_attempt data if exists
- Add latest_attempt field to quiz response with score and attempt info
2026-02-11 15:01:58 +07:00
JakkrapartXD
f7330a7b27 feat: add recommended courses and quiz multiple attempts
- Add is_recommended field to Course model
- Add allow_multiple_attempts field to Quiz model
- Create RecommendedCoursesController for admin management
  - List all approved courses
  - Get course by ID
  - Toggle recommendation status
- Add is_recommended filter to CoursesService.ListCourses
- Add allow_multiple_attempts to quiz update and response types
- Update ChaptersLessonService.updateQuiz to support allow_multiple_attempts
2026-02-11 15:01:58 +07:00
JakkrapartXD
623f797763 feat: add is_recommended to Course and allow_multiple_attempts to Quiz
- Add is_recommended field to Course model (default: false)
- Add allow_multiple_attempts field to Quiz model (default: true)
- Create migration: add_recommended_and_quiz_attempts
2026-02-11 15:01:58 +07:00
supalerk-ar66
0afbd3f08b feat: add CourseDetailView component with video preview, curriculum, enrollment logic, and i18n support 2026-02-11 13:49:08 +07:00
supalerk-ar66
efb50a1ddb feat: implement course discovery page with category filtering sidebar and course detail view. 2026-02-11 12:45:57 +07:00
supalerk-ar66
088bbf4b1b feat: add dynamic course detail page to display course details, chapters, lessons, and handle course enrollment. 2026-02-11 12:40:25 +07:00
supalerk-ar66
7ead98375e feat: Implement core e-learning features including course discovery, classroom components, user profile management, and internationalization for English and Thai. 2026-02-11 11:26:03 +07:00
JakkrapartXD
e7a2ac8b5a feat: convert workflows to tag-based deployment with semantic versioning
- Replace branch triggers with tag triggers for all services
- Backend: backend-dev-v1.0.0
- Learner: learner-dev-v1.0.0
- Management: management-dev-v1.0.0
- Extract version from tags and use for Docker image tagging
- Update compose.yaml to use GITEA_INSTANCE variable
- Add comprehensive deployment guide (DEPLOYMENT.md)
- Support pre-release tags (beta, rc, alpha)

BREAKING CHANGE: Pushing to dev branch no longer triggers deployment.
Must create and push version tags to deploy.
2026-02-11 10:20:35 +07:00
Missez
025084b2bf feat: Add admin user management page with user listing, search, filter, stats, and detail view, along with a Dockerfile for frontend deployment.
Some checks are pending
Build and Deploy Frontend Learner / Build Frontend Learner Docker Image (push) Waiting to run
Build and Deploy Frontend Learner / Deploy E-learning Frontend Learner to Dev Server (push) Blocked by required conditions
Build and Deploy Frontend Learner / Notify Deployment Status (push) Blocked by required conditions
Build and Deploy Backend / Build Backend Docker Image (push) Successful in 18s
Build and Deploy Frontend Management to Dev Server / Build Frontend Management Docker Image (push) Successful in 21s
Build and Deploy Backend / Deploy E-learning Backend to Dev Server (push) Successful in 3s
Build and Deploy Frontend Management to Dev Server / Deploy E-learning Frontend Management to Dev Server (push) Successful in 3s
Build and Deploy Backend / Notify Deployment Status (push) Successful in 1s
Build and Deploy Frontend Management to Dev Server / Notify Deployment Status (push) Successful in 2s
2026-02-10 17:12:21 +07:00
supalerk-ar66
0c67bb782e feat: Implement user profile page with view/edit functionality, profile updates, password changes, and avatar upload.
All checks were successful
Build and Deploy Frontend Learner / Build Frontend Learner Docker Image (push) Successful in 34s
Build and Deploy Frontend Management to Dev Server / Build Frontend Management Docker Image (push) Successful in 34s
Build and Deploy Frontend Learner / Deploy E-learning Frontend Learner to Dev Server (push) Successful in 4s
Build and Deploy Frontend Management to Dev Server / Deploy E-learning Frontend Management to Dev Server (push) Successful in 3s
Build and Deploy Frontend Learner / Notify Deployment Status (push) Successful in 1s
Build and Deploy Frontend Management to Dev Server / Notify Deployment Status (push) Successful in 1s
2026-02-10 16:54:02 +07:00
JakkrapartXD
9c52abcfd9 fix: correct frontend image names, env vars, and port mappings
- Update image names to chamomind/elearning-learner and chamomind/elearning-management
- Change env vars to match workflows: FRONTEND_TAG and MANAGEMENT_TAG
- Fix port mappings: learner 20902:3000, management 20903:3001
- Update container names to match actual running containers
2026-02-10 16:35:58 +07:00
JakkrapartXD
420776ee6d refactor: rename environment variables FRONTEND_MGMT_TAG to MANAGEMENT_TAG and FRONTEND_LEARNER_TAG to FRONTEND_TAG in deployment workflows.
Some checks failed
Build and Deploy Frontend Management to Dev Server / Build Frontend Management Docker Image (push) Has been cancelled
Build and Deploy Frontend Management to Dev Server / Deploy E-learning Frontend Management to Dev Server (push) Has been cancelled
Build and Deploy Frontend Management to Dev Server / Notify Deployment Status (push) Has been cancelled
Build and Deploy Frontend Learner / Build Frontend Learner Docker Image (push) Has been cancelled
Build and Deploy Frontend Learner / Deploy E-learning Frontend Learner to Dev Server (push) Has been cancelled
Build and Deploy Frontend Learner / Notify Deployment Status (push) Has been cancelled
2026-02-10 16:13:36 +07:00
JakkrapartXD
11eabc2319 Chore: Shorten service names passed to deploy.sh in frontend deployment workflows.
All checks were successful
Build and Deploy Frontend Learner / Build Frontend Learner Docker Image (push) Successful in 15s
Build and Deploy Frontend Management to Dev Server / Build Frontend Management Docker Image (push) Successful in 18s
Build and Deploy Frontend Learner / Deploy E-learning Frontend Learner to Dev Server (push) Successful in 3s
Build and Deploy Frontend Management to Dev Server / Deploy E-learning Frontend Management to Dev Server (push) Successful in 2s
Build and Deploy Frontend Learner / Notify Deployment Status (push) Successful in 2s
Build and Deploy Frontend Management to Dev Server / Notify Deployment Status (push) Successful in 1s
2026-02-10 16:10:47 +07:00
JakkrapartXD
08ab6f0315 fix: update frontend workflows to use short SHA for image tagging
All checks were successful
Build and Deploy Frontend Learner / Build Frontend Learner Docker Image (push) Successful in 15s
Build and Deploy Frontend Management to Dev Server / Build Frontend Management Docker Image (push) Successful in 18s
Build and Deploy Frontend Learner / Deploy E-learning Frontend Learner to Dev Server (push) Successful in 3s
Build and Deploy Frontend Management to Dev Server / Deploy E-learning Frontend Management to Dev Server (push) Successful in 2s
Build and Deploy Frontend Learner / Notify Deployment Status (push) Successful in 1s
Build and Deploy Frontend Management to Dev Server / Notify Deployment Status (push) Successful in 1s
- Add short_sha generation and output to build jobs
- Update deploy scripts to use short SHA instead of full SHA
- Change env var names to FRONTEND_LEARNER_TAG and FRONTEND_MGMT_TAG
- Matches backend workflow implementation for consistency
2026-02-10 16:03:22 +07:00
JakkrapartXD
d63c986c6f chore: Update Prisma seed script with new data.
All checks were successful
Build and Deploy Backend / Build Backend Docker Image (push) Successful in 29s
Build and Deploy Backend / Deploy E-learning Backend to Dev Server (push) Successful in 4s
Build and Deploy Backend / Notify Deployment Status (push) Successful in 1s
2026-02-10 15:58:53 +07:00
Missez
941b195813 feat: Introduce admin pages for pending course review and course details, and instructor pages for course management and lesson quizzes.
All checks were successful
Build and Deploy Frontend Management to Dev Server / Build Frontend Management Docker Image (push) Successful in 33s
Build and Deploy Frontend Management to Dev Server / Deploy E-learning Frontend Management to Dev Server (push) Successful in 2s
Build and Deploy Frontend Management to Dev Server / Notify Deployment Status (push) Successful in 1s
2026-02-10 15:40:03 +07:00
JakkrapartXD
ff91df2bd6 build: add openssl package to Dockerfile dependencies
All checks were successful
Build and Deploy Backend / Build Backend Docker Image (push) Successful in 44s
Build and Deploy Backend / Deploy E-learning Backend to Dev Server (push) Successful in 12s
Build and Deploy Backend / Notify Deployment Status (push) Successful in 1s
2026-02-10 15:33:05 +07:00
JakkrapartXD
c1254520b4 refactor: Optimize Docker build process, switch to @node-rs/bcrypt, and streamline compose.yaml by removing external services.
All checks were successful
Build and Deploy Backend / Build Backend Docker Image (push) Successful in 45s
Build and Deploy Backend / Deploy E-learning Backend to Dev Server (push) Successful in 12s
Build and Deploy Backend / Notify Deployment Status (push) Successful in 1s
2026-02-10 15:27:13 +07:00
supalerk-ar66
18660fa364 up
All checks were successful
Build and Deploy Frontend Learner / Build Frontend Learner Docker Image (push) Successful in 48s
Build and Deploy Frontend Learner / Deploy E-learning Frontend Learner to Dev Server (push) Successful in 3s
Build and Deploy Frontend Learner / Notify Deployment Status (push) Successful in 1s
2026-02-10 15:24:20 +07:00
supalerk-ar66
c1f1cf5e57 feat: Add LandingHeader component with scroll-based styling, navigation links, and authentication-dependent action buttons.
All checks were successful
Build and Deploy Frontend Learner / Build Frontend Learner Docker Image (push) Successful in 36s
Build and Deploy Frontend Learner / Deploy E-learning Frontend Learner to Dev Server (push) Successful in 2s
Build and Deploy Frontend Learner / Notify Deployment Status (push) Successful in 1s
2026-02-10 15:13:35 +07:00
JakkrapartXD
d2e78dcfbb feat: Implement local backend development setup with Docker Compose, introduce .dockerignore, and remove dev dependency pruning from the Dockerfile.
All checks were successful
Build and Deploy Backend / Build Backend Docker Image (push) Successful in 32s
Build and Deploy Frontend Learner / Build Frontend Learner Docker Image (push) Successful in 34s
Build and Deploy Backend / Deploy E-learning Backend to Dev Server (push) Successful in 3s
Build and Deploy Frontend Learner / Deploy E-learning Frontend Learner to Dev Server (push) Successful in 2s
Build and Deploy Backend / Notify Deployment Status (push) Successful in 2s
Build and Deploy Frontend Learner / Notify Deployment Status (push) Successful in 2s
2026-02-10 14:26:09 +07:00
JakkrapartXD
0691ca40cd feat: Implement short SHA for backend image tagging and deployment, and refine image tag resolution for pull requests.
All checks were successful
Build and Deploy Backend / Build Backend Docker Image (push) Successful in 20s
Build and Deploy Backend / Deploy E-learning Backend to Dev Server (push) Successful in 3s
Build and Deploy Backend / Notify Deployment Status (push) Successful in 2s
2026-02-10 14:00:50 +07:00
JakkrapartXD
3322801803 build: include image tag in Docker metadata action image name 2026-02-10 14:00:50 +07:00
supalerk-ar66
3e8a64e5d1 feat: implement comprehensive quiz interface with start, taking, result, and review screens, including state management, navigation, and submission logic.
All checks were successful
Build and Deploy Frontend Learner / Build Frontend Learner Docker Image (push) Successful in 34s
Build and Deploy Frontend Learner / Deploy E-learning Frontend Learner to Dev Server (push) Successful in 3s
Build and Deploy Frontend Learner / Notify Deployment Status (push) Successful in 1s
2026-02-10 13:45:28 +07:00
JakkrapartXD
0004b03760 ci: Update backend image name to chamomind/elearning-backend in the deploy workflow.
All checks were successful
Build and Deploy Backend / Build Backend Docker Image (push) Successful in 15s
Build and Deploy Backend / Deploy E-learning Backend to Dev Server (push) Successful in 2s
Build and Deploy Backend / Notify Deployment Status (push) Successful in 2s
2026-02-10 13:28:43 +07:00
JakkrapartXD
c134c9f507 fix: update compose.yaml to match workflow image naming
- Backend: 192.168.1.60/chamomind/elearning-backend
- Frontend Learner: 192.168.1.60/elearning-frontend-learner
- Frontend Management: 192.168.1.60/elearning-frontend-management
- Remove :5000 port from registry URL
- Add environment variable support for dynamic tags (BACKEND_TAG, etc.)
2026-02-10 13:28:08 +07:00
JakkrapartXD
ec0a96aec9 fix: correct backend image name to match docker-compose
Some checks failed
Build and Deploy Backend / Build Backend Docker Image (push) Failing after 41s
Build and Deploy Backend / Deploy E-learning Backend to Dev Server (push) Has been skipped
Build and Deploy Backend / Notify Deployment Status (push) Failing after 1s
- Change BACKEND_IMAGE_NAME from chamomind/elearning-backend to elearning-backend
- Fixes manifest unknown error during deployment
- Image will now be pushed as 192.168.1.60/elearning-backend:<tag>
2026-02-10 13:25:37 +07:00
JakkrapartXD
be2d73b361 refactor: update deploy script argument from 'elearning-backend' to 'backend'
All checks were successful
Build and Deploy Backend / Build Backend Docker Image (push) Successful in 15s
Build and Deploy Backend / Deploy E-learning Backend to Dev Server (push) Successful in 2s
Build and Deploy Backend / Notify Deployment Status (push) Successful in 1s
2026-02-10 13:21:47 +07:00
supalerk-ar66
220dc0148d feat: add classroom learning interface with video playback, progress tracking, and a dedicated quiz page.
All checks were successful
Build and Deploy Frontend Learner / Build Frontend Learner Docker Image (push) Successful in 52s
Build and Deploy Frontend Learner / Deploy E-learning Frontend Learner to Dev Server (push) Successful in 3s
Build and Deploy Frontend Learner / Notify Deployment Status (push) Successful in 1s
2026-02-10 13:14:06 +07:00
supalerk-ar66
350e3c27b3 feat: Add new classroom learning page with course content display, video playback, progress tracking, lesson access control, and course announcements. 2026-02-10 13:14:06 +07:00
JakkrapartXD
8c495f3871 fix: enable build scripts for bcrypt and prisma native modules
All checks were successful
Build and Deploy Backend / Build Backend Docker Image (push) Successful in 45s
Build and Deploy Backend / Deploy E-learning Backend to Dev Server (push) Successful in 2s
Build and Deploy Backend / Notify Deployment Status (push) Successful in 2s
- Add build dependencies (python3, make, g++) to both builder and production stages
- Use --ignore-scripts=false flag to ensure native modules compile
- Fixes MODULE_NOT_FOUND error for bcrypt_lib.node
2026-02-10 13:08:46 +07:00
058a388f4c fix build frontend learner
All checks were successful
Build and Deploy Frontend Learner / Build Frontend Learner Docker Image (push) Successful in 57s
Build and Deploy Frontend Learner / Deploy E-learning Frontend Learner to Dev Server (push) Successful in 2s
Build and Deploy Frontend Learner / Notify Deployment Status (push) Successful in 1s
2026-02-10 12:17:18 +07:00
9e660b0fe9 fix build management
All checks were successful
Build and Deploy Frontend Management to Dev Server / Build Frontend Management Docker Image (push) Successful in 57s
Build and Deploy Frontend Management to Dev Server / Deploy E-learning Frontend Management to Dev Server (push) Successful in 2s
Build and Deploy Frontend Management to Dev Server / Notify Deployment Status (push) Successful in 1s
2026-02-10 12:11:29 +07:00
a0cd688c97 remove test
All checks were successful
Build and Deploy Backend / Build Backend Docker Image (push) Successful in 16s
Build and Deploy Backend / Deploy E-learning Backend to Dev Server (push) Successful in 2s
Build and Deploy Backend / Notify Deployment Status (push) Successful in 1s
2026-02-10 11:52:10 +07:00
6342f81215 remove push
Some checks failed
Build and Deploy Backend / Build Backend Docker Image (push) Failing after 16s
Build and Deploy Backend / Deploy E-learning Backend to Dev Server (push) Has been skipped
Build and Deploy Backend / Notify Deployment Status (push) Failing after 1s
2026-02-10 11:49:48 +07:00
60c31e1dd8 fix github action cache
Some checks failed
Build and Deploy Backend / Build Backend Docker Image (push) Failing after 16s
Build and Deploy Backend / Deploy E-learning Backend to Dev Server (push) Has been skipped
Build and Deploy Backend / Notify Deployment Status (push) Failing after 1s
2026-02-10 11:44:50 +07:00
22f1c70f20 fix build
Some checks failed
Build and Deploy Backend / Build Backend Docker Image (push) Failing after 1m42s
Build and Deploy Backend / Deploy E-learning Backend to Dev Server (push) Has been skipped
Build and Deploy Backend / Notify Deployment Status (push) Failing after 1s
2026-02-10 11:32:43 +07:00
f01b9054b5 fix parameter
Some checks failed
Build and Deploy Backend / Build Backend Docker Image (push) Failing after 8s
Build and Deploy Backend / Deploy E-learning Backend to Dev Server (push) Has been skipped
Build and Deploy Backend / Notify Deployment Status (push) Failing after 1s
2026-02-10 11:24:33 +07:00
c35f4ce688 fix build
Some checks failed
Build and Deploy Backend / Build Backend Docker Image (push) Failing after 5s
Build and Deploy Backend / Deploy E-learning Backend to Dev Server (push) Has been skipped
Build and Deploy Backend / Notify Deployment Status (push) Failing after 1s
2026-02-10 11:22:52 +07:00
fa5993147b fix build action
Some checks failed
Build and Deploy Backend / Build Backend Docker Image (push) Failing after 1m41s
Build and Deploy Backend / Deploy E-learning Backend to Dev Server (push) Has been skipped
Build and Deploy Backend / Notify Deployment Status (push) Failing after 1s
2026-02-10 11:16:48 +07:00
94f90d3c7f fix build 2026-02-10 11:16:01 +07:00
supalerk-ar66
8ba1239685 feat: Implement course discovery page with category sidebar filtering.
Some checks failed
Build and Deploy Frontend Learner / Build Frontend Learner Docker Image (push) Failing after 1m13s
Build and Deploy Frontend Learner / Deploy Frontend Learner to Server (push) Has been skipped
2026-02-10 11:08:10 +07:00
supalerk-ar66
1eeec4d22c feat: Add CategorySidebar component to filter courses by category with show more/less functionality.
Some checks failed
Build and Deploy Frontend Learner / Build Frontend Learner Docker Image (push) Failing after 1m16s
Build and Deploy Frontend Learner / Deploy Frontend Learner to Server (push) Has been skipped
2026-02-10 10:28:49 +07:00
JakkrapartXD
e8a4e40321 refactor: Standardize container registry configuration, remove insecure Docker flags, and align deployment to the dev branch. 2026-02-10 10:27:13 +07:00
JakkrapartXD
f4fa63fd11 remove port 5000 2026-02-10 10:06:46 +07:00