Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
696195d
feat: implement AddStudentToGroup modal and update group API for stud…
meewaldor Dec 13, 2025
8b42ce0
Merge branch 'dev' of https://github.com/Capstone-STEMify/STEMify-Fro…
meewaldor Dec 13, 2025
eed9892
feat: update loading component to use Loader2 and adjust size; modify…
meewaldor Dec 13, 2025
94ae8d7
feat: Add cancellation confirmation modal and update subscription sta…
ttd11204 Dec 13, 2025
f704665
Merge branch 'dev' of github-tieumylam:Capstone-STEMify/STEMify-Front…
ttd11204 Dec 13, 2025
f494364
feat: integrate status translation and badge styling in CardHorizonta…
meewaldor Dec 13, 2025
a85dba2
Merge branch 'dev' of https://github.com/Capstone-STEMify/STEMify-Fro…
meewaldor Dec 13, 2025
700ef9c
fix organization selection
ttd11204 Dec 14, 2025
25202fc
feat: student certificate
LeThanhNhan91 Dec 14, 2025
83fcb12
Merge branch 'dev' of https://github.com/Capstone-STEMify/STEMify-Fro…
LeThanhNhan91 Dec 14, 2025
123c92a
feat: Add emulator management functionality to curriculum; include em…
ttd11204 Dec 14, 2025
617bbbb
Merge branch 'dev' of https://github.com/Capstone-STEMify/STEMify-Fro…
ttd11204 Dec 14, 2025
b6178d7
feat: Restore CertificatePage component with SpecificCertificatePage …
ttd11204 Dec 14, 2025
f90a12f
feat: Add CurriculumEmulatorSection component and integrate emulator …
ttd11204 Dec 14, 2025
663b383
feat: Implement stringToHslColor utility and update user avatar rende…
ttd11204 Dec 15, 2025
1ec4492
fix
meewaldor Dec 15, 2025
692306f
Merge branch 'dev' of github-tieumylam:Capstone-STEMify/STEMify-Front…
meewaldor Dec 15, 2025
6149c79
feat: add activate and deactivate functionality with corresponding co…
meewaldor Dec 15, 2025
425ed7a
feat: Enhance user management with search and filter capabilities; up…
ttd11204 Dec 15, 2025
cb44a64
feat: update Vietnamese toast messages for subscription cancellation …
meewaldor Dec 15, 2025
fbe6c78
Merge branch 'dev' of github-tieumylam:Capstone-STEMify/STEMify-Front…
meewaldor Dec 15, 2025
5107883
feat: refactor organization management to use new API for fetching or…
meewaldor Dec 15, 2025
e6575be
feat: integrate SearchBar component for improved organization search …
meewaldor Dec 16, 2025
dcf32ab
feat: add guide text for classroom creation in English and Vietnamese…
meewaldor Dec 16, 2025
ad11690
feat: update CreateClassroom component to display course title in sub…
meewaldor Dec 16, 2025
5b87e55
feat: add user detail modal and related API for fetching organization…
LeThanhNhan91 Dec 16, 2025
d94106b
Merge branch 'dev' of https://github.com/Capstone-STEMify/STEMify-Fro…
LeThanhNhan91 Dec 16, 2025
20af11a
feat: implement StudentGroupInfoModal for displaying student group de…
meewaldor Dec 16, 2025
9dd7cd1
feat: enhance assignment submission experience with improved error ha…
LeThanhNhan91 Dec 16, 2025
a804c00
feat: add student group information translations and update related c…
meewaldor Dec 16, 2025
49cb63c
feat: add AddStudentClassroomModal for adding students to classrooms;…
meewaldor Dec 16, 2025
97d77ff
feat: update README.md to enhance project overview and structure; add…
meewaldor Dec 16, 2025
29d8d3f
Merge branch 'dev' of https://github.com/Capstone-STEMify/STEMify-Fro…
meewaldor Dec 16, 2025
129f7e5
feat: update Vietnamese translation for 'beginner' to improve clarity
meewaldor Dec 16, 2025
6b8227d
feat: filter user by role and status
LeThanhNhan91 Dec 16, 2025
8e88144
feat: refactor message loading logic and remove unnecessary console l…
LeThanhNhan91 Dec 16, 2025
eda4aed
Merge branch 'dev' of https://github.com/Capstone-STEMify/STEMify-Fro…
LeThanhNhan91 Dec 16, 2025
acc1b0a
feat: enhance organization switcher functionality; integrate session …
meewaldor Dec 16, 2025
424e702
Merge branch 'dev' of github-tieumylam:Capstone-STEMify/STEMify-Front…
meewaldor Dec 16, 2025
4fe5255
feat: refactor CourseDetailPage to improve routing and locale handling
meewaldor Dec 16, 2025
2229176
feat: implement logout functionality to reset Redux store state
meewaldor Dec 16, 2025
bf3d646
feat: add MicrobitReviewSubmission component and implement review sub…
LeThanhNhan91 Dec 16, 2025
e001aef
Merge branch 'dev' of https://github.com/Capstone-STEMify/STEMify-Fro…
LeThanhNhan91 Dec 16, 2025
eea2251
feat: update addClassroomStudents mutation to accept studentEmails an…
meewaldor Dec 16, 2025
81d15dc
Merge branch 'dev' of github-tieumylam:Capstone-STEMify/STEMify-Front…
meewaldor Dec 16, 2025
0aa4c33
feat: add 'disabled' status to common translations and update AdminCu…
meewaldor Dec 16, 2025
bfb1414
Merge branch 'dev' of https://github.com/Capstone-STEMify/STEMify-Fro…
meewaldor Dec 16, 2025
e93255a
feat: refactor workspace components and implement new StudentWorkspac…
meewaldor Dec 16, 2025
acf4c1d
feat: enhance organization and subscription columns with status badges
meewaldor Dec 16, 2025
b4ef1be
feat: update TopOrganization type to include organizationCode and mod…
LeThanhNhan91 Dec 16, 2025
87412a2
Merge branch 'dev' of https://github.com/Capstone-STEMify/STEMify-Fro…
LeThanhNhan91 Dec 16, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
400 changes: 380 additions & 20 deletions README.md

Large diffs are not rendered by default.

19 changes: 12 additions & 7 deletions messages/en/assignment/en_assignment.json
Original file line number Diff line number Diff line change
Expand Up @@ -75,15 +75,20 @@
},
"doAsm": {
"deadline": "Deadline",
"deadline2": "Deadline (Days from enrollment)",
"AIGrading": "AI Grading",
"description": "After submitting your assignment and completing your required peer reviews, you'll receive an AI-generated grade based on the assignment rubrics. You'll then have the option to have your assignment reviewed by your peers instead.",
"subDes": "Your data will be used in accordance with",
"subDesLink": "Our Privacy Notice",
"mySub": "My Submission",
"projectTitle": "Project Title",
"placeholder": "Type your answer here...",
"saveDraft": "Already save draft at {time}."
"saveDraft": "Draft saved at {time}",
"restoring": "Restoring assignment session...",
"fileError": "Only .pdf, .doc, or .docx files are allowed.",
"uploadClick": "Click to upload",
"uploadDrag": "or drag and drop",
"uploadFormat": "PDF, DOC, or DOCX",
"restoreSuccess": "Restored your unsaved draft.",
"submitSuccess": "Assignment submitted successfully!",
"submitFail": "Failed to submit assignment. Please try again later.",
"uploadFail": "Failed to upload file for Question {index}.",
"invalidData": "Cannot submit assignment. Invalid data.",
"noAsmFound": "No assignment found. Please go back and select the assignment again."
}
},
"upsert": {
Expand Down
9 changes: 6 additions & 3 deletions messages/en/classroom/en_classroom.json
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,9 @@
"semiAnnual": "Semi-Annual",
"students": "Students",
"teachers": "Teachers",
"curricula": "Curricula"
"curricula": "Curricula",
"guideText": "Creation Guide",
"guide": "Courses can belong to multiple active subscriptions. Please select a subscription before creating the classroom. The selected subscription will determine the number of students, teachers, and access to learning content. After selecting a subscription, choose student groups, assign teachers, and set the classroom duration. Click Create to finalize the classroom creation."
},
"studentClassroom": {
"list": {
Expand All @@ -116,6 +118,7 @@
"noClassroom": "You are not enrolled in any classrooms yet.",
"noClassroomSubtext": "Explore available classrooms and start learning today!",
"grade": "Grade"
}
},
"addStudentsToClassroom": "Add Students to Classroom"
}
}
}
11 changes: 8 additions & 3 deletions messages/en/common/en_common.json
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@
"sendInvitations": "Send Invitations",
"clearFilters": "Clear Filters",
"createClassroom": "Create Classroom",
"addStudents": "Add Students",
"addStudents": "Add Users",
"reviewed": "Reviewed",
"notReviewed": "Not Reviewed",
"submitReview": "Submit Review",
Expand All @@ -142,7 +142,10 @@
"upgrade": "Upgrade Plan",
"uploadFile": "Upload File",
"exportGLB": "Export GLB",
"restore": "Restore"
"restore": "Restore",
"removeStudents": "Remove {student} Students",
"deactivate": "Deactivate",
"activate": "Activate"
},
"message": {
"courseCreateSuccess": "Course created successfully!",
Expand Down Expand Up @@ -280,7 +283,8 @@
"locked": "Locked",
"correct": "Correct",
"incorrect": "Incorrect",
"unanswered": "Unanswered"
"unanswered": "Unanswered",
"disabled": "Disabled"
},
"status2": {
"active": "Active",
Expand All @@ -302,6 +306,7 @@
"advanced": "Advanced"
},
"accountType": {
"all": "All",
"accountTypeLabel": "Account Type",
"admin": "Admin",
"guest": "Guest",
Expand Down
9 changes: 8 additions & 1 deletion messages/en/common/en_toast.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
"enrollDes": "You have enrolled in {title}. Start learning now!",
"addToCourse": "Successfully added to course!",
"removeCourseFromCurriculum": "Successfully removed course from this curriculum!",
"removeEmulatorFromCurriculum": "Successfully removed emulator from this curriculum!",
"lessonStart": "Lesson Started!",
"lessonStatus": "Lesson status updated to {status}!",
"sectionComplete": "Section Completed!",
Expand Down Expand Up @@ -44,8 +45,10 @@
"delete": "Are you sure you want to delete \"{title}\"?",
"archive": "Are you sure you want to archive \"{title}\"?",
"removeCourse": "Are you sure you want to remove \"{title}\" from this curriculum?",
"removeEmulator": "Are you sure you want to remove \"{title}\" from this curriculum?",
"removeKit": "Are you sure you want to remove \"{title}\" from this course?",
"removeComponent": "Are you sure you want to remove component from this kit?",
"removeStudentFromGroup": "Are you sure you want to remove this student from group?",
"discard": "Are you sure you want to discard your changes?",
"ask": "Are you sure to make ",
"askStatus": "Are you sure to {action} \"{title}\"?",
Expand All @@ -54,7 +57,11 @@
"removeItemFromCart": "Are you sure you want to remove this item from the cart?",
"clearCart": "Are you sure you want to clear the cart?",
"deleteUserEmail": "Are you sure you want to delete the user with email \"{title}\"?",
"restore": "Are you sure you want to restore \"{title}\"?"
"restore": "Are you sure you want to restore \"{title}\"?",
"cancelledSubscriptions": "Are you sure you want to cancel this subscription?",
"deactivate": "Are you sure you want to deactivate \"{title}\"?",
"activate": "Are you sure you want to activate \"{title}\"?",
"removeStudents": "Are you sure you want to remove the {count} students from the group?"
},
"unauthorized": "Unauthorized access."
}
Expand Down
10 changes: 8 additions & 2 deletions messages/en/curriculum/en_curriculum.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,17 @@
"loading": "Loading curriculums...",
"error": "An error occurred while fetching curriculums. Please try again.",
"courseListTitle": "Courses List",
"emulatorListTitle": "Emulator List",
"viewDetails": "View Details",
"reviews": "reviews"
},
"details": {
"title": "Curriculum Details",
"addCourse": "Add Course",
"price": "Price",
"alrealyEnrolled": "Already Enrolled"
"alrealyEnrolled": "Already Enrolled",
"addEmulator": "Add Emulator"
},

"form": {
"title": {
"create": "Create Curriculum",
Expand Down Expand Up @@ -61,6 +62,11 @@
"selectCourseTitle": "Select Courses",
"selectedCourses": "Selected courses",
"searchCoursePlaceholder": "Search courses by code or title...",
"emulatorListTitle": "Emulator List",
"emulatorListDescription": "Emulators provide a virtual environment that mimics the behavior of physical devices, allowing users to test and run software applications without the need for actual hardware. They are commonly used in software development, testing, and debugging processes, enabling developers to simulate different device configurations and operating systems.",
"selectEmulationTitle": "Select Emulators",
"selectedEmulators": "Selected emulators",
"searchEmulatorPlaceholder": "Search emulators here...",
"selectKitTitle": "Select Kits",
"selectedKits": "Selected kits",
"searchKitPlaceholder": "Search kits here...",
Expand Down
25 changes: 24 additions & 1 deletion messages/en/organization/en_organization.json
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,9 @@
"groupList": "Group List",
"name": "Name",
"studentCount": "Student Count"
}
},
"studentGroupInfo": "Student Group Information",
"addStudentsToGroup": "Add Students to Group"
},
"curriculum": {
"curriculum": "Curriculum",
Expand Down Expand Up @@ -263,6 +265,27 @@
"email": "Search by email...",
"license": "Select License"
}
},
"userDetail": {
"title": "User Details",
"description": "View detailed information about this user.",
"contactInfo": "Contact Information",
"email": "Email Address",
"activity": "Activity",
"joinedAt": "Joined At",
"lastLogin": "Last Login",
"never": "Never",
"professionalDetails": "Professional Details",
"groupName": "Group Name",
"groupCode": "Group Code",
"specialization": "Specialization",
"major": "Major",
"bio": "Bio",
"noData": "No user data found.",
"status": {
"active": "Active",
"inactive": "Inactive"
}
}
}
}
19 changes: 12 additions & 7 deletions messages/vi/assignment/vi_assignment.json
Original file line number Diff line number Diff line change
Expand Up @@ -75,15 +75,20 @@
},
"doAsm": {
"deadline": "Hạn nộp",
"deadline2": "Hạn nộp (Tính từ ngày đăng ký)",
"AIGrading": "Chấm điểm bằng AI",
"description": "Sau khi bạn nộp bài và hoàn thành phần đánh giá chéo bắt buộc, bạn sẽ nhận được điểm do AI chấm dựa trên rubric của bài tập. Sau đó, bạn có thể chọn để bài tập được đánh giá bởi các bạn học khác.",
"subDes": "Dữ liệu của bạn sẽ được sử dụng theo",
"subDesLink": "Thông báo Quyền riêng tư của chúng tôi",
"mySub": "Bài nộp của tôi",
"projectTitle": "Tiêu đề dự án",
"placeholder": "Nhập câu trả lời của bạn...",
"saveDraft": "Đã lưu bản nháp lúc {time}."
"saveDraft": "Đã lưu bản nháp lúc {time}",
"restoring": "Đang khôi phục dữ liệu bài làm...",
"fileError": "Chỉ chấp nhận tệp .pdf, .doc hoặc .docx.",
"uploadClick": "Nhấn vào để upload",
"uploadDrag": "hoặc kéo thả",
"uploadFormat": "PDF, DOC, hoặc DOCX",
"restoreSuccess": "Đã khôi phục bài làm chưa nộp của bạn.",
"submitSuccess": "Nộp bài thành công!",
"submitFail": "Nộp bài thất bại. Vui lòng thử lại sau.",
"uploadFail": "Tải lên tệp thất bại cho Câu hỏi {index}.",
"invalidData": "Không thể nộp bài. Dữ liệu không hợp lệ.",
"noAsmFound": "Không tìm thấy bài tập. Vui lòng quay lại và chọn bài tập."
}
},
"upsert": {
Expand Down
9 changes: 6 additions & 3 deletions messages/vi/classroom/vi_classroom.json
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,9 @@
"semiAnnual": "Nửa năm",
"students": "Học sinh",
"teachers": "Giáo viên",
"curricula": "Chương trình học"
"curricula": "Chương trình học",
"guideText": "Hướng dẫn tạo lớp học",
"guide": "Khóa học có thể thuộc nhiều gói đăng ký đang hoạt động. Vui lòng chọn một gói đăng ký trước khi tạo lớp học. Gói đăng ký được chọn sẽ quyết định số lượng học sinh, giáo viên và quyền truy cập nội dung học tập. Sau khi chọn gói, hãy chọn nhóm học sinh, gán giáo viên và thiết lập thời gian lớp học. Nhấn Tạo để hoàn tất việc tạo lớp học."
},
"studentClassroom": {
"list": {
Expand All @@ -115,6 +117,7 @@
"noClassroom": "Bạn chưa tham gia lớp học nào.",
"noClassroomSubtext": "Khám phá các lớp học có sẵn và bắt đầu học ngay hôm nay!",
"grade": "Khối"
}
},
"addStudentsToClassroom": "Thêm học sinh vào lớp học"
}
}
}
14 changes: 9 additions & 5 deletions messages/vi/common/vi_common.json
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@
"sendInvitations": "Gửi Lời Mời",
"clearFilters": "Xóa Bộ Lọc",
"createClassroom": "Tạo Lớp Học",
"addStudents": "Thêm Học Sinh",
"addStudents": "Thêm Người Dùng",
"reviewed": "Đã đánh giá",
"notReviewed": "Chưa đánh giá",
"submitReview": "Gửi Đánh Giá",
Expand All @@ -142,7 +142,10 @@
"upgrade": "Nâng Cấp Gói",
"uploadFile": "Tải Lên Tệp",
"exportGLB": "Xuất GLB",
"restore": "Khôi Phục"
"restore": "Khôi Phục",
"removeStudents": "Xóa {student} Học Sinh",
"deactivate": "Vô Hiệu Hóa",
"activate": "Kích Hoạt"
},
"message": {
"courseCreateSuccess": "Khóa học được tạo thành công!",
Expand Down Expand Up @@ -252,7 +255,7 @@
},
"level": {
"all": "Tất Cả Trình Độ",
"beginner": "Mới Bắt Đầu",
"beginner": "Căn bản",
"intermidiate": "Trung Bình",
"advanced": "Nâng Cao"
},
Expand Down Expand Up @@ -285,7 +288,8 @@
"locked": "Khóa",
"correct": "Đúng",
"incorrect": "Sai",
"unanswered": "Chưa Trả Lời"
"unanswered": "Chưa Trả Lời",
"disabled": "Đã Vô Hiệu Hóa"
},
"status2": {
"active": "Đang Hoạt Động",
Expand All @@ -300,8 +304,8 @@
"active": "Đã xác thực",
"inactive": "Chưa xác thực"
},

"accountType": {
"all": "Tất Cả",
"accountTypeLabel": "Loại Tài Khoản",
"admin": "Quản Trị Viên",
"guest": "Khách",
Expand Down
9 changes: 8 additions & 1 deletion messages/vi/common/vi_toast.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
"enrollDes": "Bạn đã đăng ký khóa học {title}. Bắt đầu học ngay!",
"addToCourse": "Đã thêm vào khóa học thành công!",
"removeCourseFromCurriculum": "Đã xóa khóa học khỏi chương trình học thành công!",
"removeEmulatorFromCurriculum": "Đã xóa mô hình khỏi chương trình học thành công!",
"lessonStart": "Bài học đã bắt đầu!",
"lessonStatus": "Trạng thái bài học đã được cập nhật thành {status}!",
"sectionComplete": "Đã hoàn thành!",
Expand Down Expand Up @@ -44,16 +45,22 @@
"delete": "Bạn có chắc chắn muốn xóa \"{title}\" không?",
"archive": "Bạn có chắc chắn muốn lưu trữ \"{title}\" không?",
"removeCourse": "Bạn có chắc chắn muốn xóa \"{title}\" khỏi chương trình học này không?",
"removeEmulator": "Bạn có chắc chắn muốn xóa \"{title}\" khỏi chương trình học này không?",
"removeKit": "Bạn có chắc chắn muốn xóa \"{title}\" khỏi khóa học này không?",
"removeComponent": "Bạn có chắc chắn muốn xóa thành phần khỏi bộ dụng cụ này không?",
"removeStudentFromGroup": "Bạn có chắn chắn muốn xóa học sinh khỏi nhóm không?",
"discard": "Bạn có chắc chắn muốn hủy bỏ các thay đổi của mình không?",
"ask": "Bạn có chắc chắn muốn thực hiện ",
"askStatus": "Bạn có chắc chắn muốn {action} \"{title}\" không?",
"sendRequest": "Bạn có chắc chắn muốn gửi yêu cầu phê duyệt cho \"{title}\" không?",
"addAnotherKit": "Khóa học đã có bộ kit. Bạn có muốn thay thế bằng bộ mới?",
"removeItemFromCart": "Bạn có chắc chắn muốn xóa sản phẩm này khỏi giỏ hàng không?",
"clearCart": "Bạn có chắc chắn muốn xóa giỏ hàng không?",
"restore": "Bạn có chắc chắn muốn khôi phục \"{title}\" không?"
"restore": "Bạn có chắc chắn muốn khôi phục \"{title}\" không?",
"cancelledSubscriptions": "Bạn có chắc chắn muốn hủy gói đăng ký này không? Sau khi hủy, người dùng sẽ không thể sử dụng các tính năng của gói.",
"deactivate": "Bạn có chắc chắn muốn vô hiệu hóa \"{title}\" không?",
"activate": "Bạn có chắc chắn muốn kích hoạt \"{title}\" không?",
"removeStudents": "Bạn có chắc chắn muốn xóa {count} học sinh khỏi nhóm không?"
},
"unauthorized": "Truy cập không được phép."
}
Expand Down
10 changes: 8 additions & 2 deletions messages/vi/curriculum/vi_curriculum.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,17 @@
"loading": "Đang tải khung chương trình...",
"error": "Đã xảy ra lỗi trong quá trình lấy khung chương trình. Vui lòng thử lại.",
"courseListTitle": "Danh Sách Các Khóa Học",
"emulatorListTitle": "Danh Sách Mô Hình",
"viewDetails": "Xem Chi Tiết",
"reviews": "đánh giá"
},
"details": {
"title": "Chi Tiết Khung Chương Trình",
"addCourse": "Thêm Khóa Học",
"price": "Giá",
"alreadyEnrolled": "Đã Đăng Ký"
"alreadyEnrolled": "Đã Đăng Ký",
"addEmulator": "Thêm Mô Hình"
},

"form": {
"title": {
"create": "Tạo Khung Chương Trình",
Expand Down Expand Up @@ -61,6 +62,11 @@
"selectCourseTitle": "Chọn Khóa Học",
"selectedCourses": "Khóa học đã chọn",
"searchCoursePlaceholder": "Tìm kiếm khóa học theo mã hoặc tiêu đề...",
"emulatorListTitle": "Danh Sách Mô Hình",
"emulatorListDescription": "Mô hình cung cấp một môi trường ảo mô phỏng hành vi của các thiết bị vật lý, cho phép người dùng thử nghiệm và chạy các ứng dụng phần mềm mà không cần phần cứng thực tế. Chúng thường được sử dụng trong quá trình phát triển phần mềm, kiểm thử và gỡ lỗi, cho phép các nhà phát triển mô phỏng các cấu hình thiết bị và hệ điều hành khác nhau.",
"selectEmulationTitle": "Chọn Mô Hình",
"selectedEmulators": "Mô hình đã chọn",
"searchEmulatorPlaceholder": "Tìm kiếm mô hình ở đây...",
"selectKitTitle": "Chọn Bộ Dụng Cụ Học Tập",
"selectedKits": "Kit đã chọn",
"searchKitPlaceholder": "Tìm kiếm bộ dụng cụ ở đây...",
Expand Down
25 changes: 24 additions & 1 deletion messages/vi/organization/vi_organization.json
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,9 @@
"groupList": "Danh sách nhóm",
"name": "Tên",
"studentCount": "Số học sinh"
}
},
"studentGroupInfo": "Thông tin nhóm học sinh",
"addStudentsToGroup": "Thêm học sinh vào nhóm"
},
"curriculum": {
"curriculum": "Khung chương trình",
Expand Down Expand Up @@ -262,6 +264,27 @@
"email": "Tìm kiếm theo email...",
"license": "Chọn vai trò"
}
},
"userDetail": {
"title": "Chi tiết người dùng",
"description": "Xem thông tin chi tiết về người dùng này.",
"contactInfo": "Thông tin liên hệ",
"email": "Địa chỉ Email",
"activity": "Hoạt động",
"joinedAt": "Ngày tham gia",
"lastLogin": "Đăng nhập lần cuối",
"never": "Chưa từng",
"professionalDetails": "Thông tin chuyên môn",
"groupName": "Tên nhóm",
"groupCode": "Mã nhóm",
"specialization": "Chuyên môn",
"major": "Chuyên ngành",
"bio": "Giới thiệu",
"noData": "Không tìm thấy dữ liệu người dùng.",
"status": {
"active": "Hoạt động",
"inactive": "Không hoạt động"
}
}
}
}
Loading
Loading