Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
852d6b8
feat: Implement autosave functionality with IndexedDB integration and…
ttd11204 Dec 11, 2025
1a9b2f9
Merge branch 'dev' of github-tieumylam:Capstone-STEMify/STEMify-Front…
ttd11204 Dec 11, 2025
a64982c
feat: Add resetWorkspace action to clear actions and steps in workspa…
ttd11204 Dec 11, 2025
457ac3b
feat: System Admin dashboard
LeThanhNhan91 Dec 11, 2025
2320237
Merge branch 'dev' of https://github.com/Capstone-STEMify/STEMify-Fro…
LeThanhNhan91 Dec 11, 2025
7251648
Refactor CreatorWorkspace component: remove unused GLTF preload calls…
ttd11204 Dec 11, 2025
1f7d57e
Merge branch 'dev' of github-tieumylam:Capstone-STEMify/STEMify-Front…
ttd11204 Dec 11, 2025
87ee51b
feat: update translations and connector/straw names for improved clar…
meewaldor Dec 11, 2025
75610d2
feat: Add UngroupedStudentList and UpsertStudentGroup components; enh…
ttd11204 Dec 11, 2025
609d64a
Merge branches 'dev' and 'dev' of github-tieumylam:Capstone-STEMify/S…
ttd11204 Dec 11, 2025
bab9a91
fix: Simplify toSlug function by removing unnecessary semicolon
ttd11204 Dec 11, 2025
7beb913
feat: enhance getRemainingMonths function for accurate month calculat…
meewaldor Dec 11, 2025
ab3d420
Merge branch 'dev' of https://github.com/Capstone-STEMify/STEMify-Fro…
meewaldor Dec 11, 2025
d8a94b0
fix: Update Checkbox component styles for checked state; ensure Upser…
ttd11204 Dec 11, 2025
4510390
Merge branch 'dev' of github-tieumylam:Capstone-STEMify/STEMify-Front…
ttd11204 Dec 11, 2025
4f78636
feat: Update curriculum terminology and enhance subscription manageme…
ttd11204 Dec 12, 2025
8b03632
feat: Add status parameter to getCurriculumsByOrganizationId query an…
ttd11204 Dec 12, 2025
1c3c695
fix: Refactor loading and empty state handling in OrganizationCurricu…
ttd11204 Dec 12, 2025
a54a730
feat: Enhance user management and upload functionality; update transl…
ttd11204 Dec 12, 2025
5ff9479
feat: Add subscription selection and related fields in CreateClassroo…
ttd11204 Dec 12, 2025
37811f9
Enhance JWT callback for robust user info extraction
halinhtvn3a Dec 12, 2025
eb6c110
fix: Refactor variable declarations for clarity in OrganizationSubscr…
ttd11204 Dec 13, 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
22 changes: 20 additions & 2 deletions messages/en/3d/en_3d.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,17 +42,35 @@
"connector": "Connector",
"drag_guide": "Drag to add to scene",
"double_click_guide": "Double-click to place at origin",
"select_guide": "Select & use gizmo to transform"
"select_guide": "Select & use gizmo to transform",
"bluestraw": "Blue Straw",
"pinkstraw": "Pink Straw",
"yellowstraw": "Yellow Straw",
"greenstraw": "Green Straw",
"orangestraw": "Orange Straw",
"1legconnector": "1 Leg Connector",
"2legsconnector": "2 Legs Connector",
"3legsconnector": "3 Legs Connector",
"5legsconnector": "5 Legs Connector"
},
"right_panel": {
"workspace_tree": "Workspace Tree",
"properties": "Properties",
"delete_component": "Do you want to delete this component?",
"select_object_or_action": "Select an object or action to edit properties",
"noStep": "No step linked to this action",
"action_properties": {
"title": "Action Properties",
"name": "Name",
"type": "Type"
"type": "Type",
"step": {
"detail": "Step Details",
"title": "Title",
"description": "Description",
"expectedResult": "Expected Result",
"hint": "Hint",
"addHint": "Add Hint"
}
},
"component_properties": {
"select_object_or_action": "Select an object or action to edit properties",
Expand Down
3 changes: 2 additions & 1 deletion messages/en/admin/en_admin.json
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@
"updateButton": "Update"
},
"user": {
"userManagement": "User Management",
"createTitle": "Create User",
"editTitle": "Edit User",
"email": "Email",
Expand Down Expand Up @@ -145,4 +146,4 @@
"reviewMessage": "Course submission is under review."
}
}
}
}
12 changes: 9 additions & 3 deletions messages/en/classroom/en_classroom.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
"startDate": "Start Date",
"endDate": "End Date"
},
"curriculum": "Update Classroom Curriculum",
"curriculum": "Update Course",
"teacher": "Update Classroom Teacher",
"students": {
"addStudents": "Add Students to Classroom",
Expand Down Expand Up @@ -86,7 +86,13 @@
"weeks": "Weeks",
"custom": "Custom",
"groupList": "Group List",
"grade": "Grade"
"grade": "Grade",
"selectSubscription": "Select Subscription",
"annual": "Annual",
"semiAnnual": "Semi-Annual",
"students": "Students",
"teachers": "Teachers",
"curricula": "Curricula"
},
"studentClassroom": {
"list": {
Expand All @@ -112,4 +118,4 @@
"grade": "Grade"
}
}
}
}
50 changes: 50 additions & 0 deletions messages/en/dashboard/en_dashboard.json
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,56 @@
"currTitle": "Curriculum Title",
"name": "Name"
}
},
"admin": {
"title": "System Dashboard",
"subtitle": "Overview of system performance and revenue",
"period": {
"placeholder": "Select period",
"month": "Month",
"quarter": "Quarter",
"year": "Year"
},
"stats": {
"revenue": "Total Revenue",
"compare": "vs previous period",
"activeOrg": "Active Organizations",
"growth": "Growth",
"totalStudent": "Total Students",
"enrollment": "Enrollments",
"completionRate": "Completion Rate"
},
"charts": {
"revenueByPlan": "Revenue by Plan",
"revenueDesc": "Revenue distribution based on subscription plans",
"planDetail": "Subscription Plan Details",
"planDetailDesc": "Current subscription plan status",
"totalPlan": "Total Plans",
"active": "Active",
"expired": "Expired",
"noData": "No revenue data available"
},
"tables": {
"topOrg": "Top Organizations",
"topOrgDesc": "Organizations with the largest student body",
"topCourse": "Top Courses",
"topCourseDesc": "Most popular courses in the system",
"headers": {
"orgName": "Organization Name",
"students": "Students",
"enrollments": "Enrollments",
"passRate": "Pass Rate",
"activeSub": "Active Subs",
"courseName": "Course Name",
"classrooms": "Classrooms",
"avgScore": "Avg Score",
"completion": "Completion"
},
"placeholders": {
"org": "No organization data",
"course": "No course data"
}
}
}
}
}
8 changes: 7 additions & 1 deletion messages/en/organization/en_organization.json
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,7 @@
},
"curriculum": {
"curriculum": "Curriculum",
"orgCurriculumDescription": "Your organization currently has access to {count} active curriculum frameworks included in your subscription. Each curriculum provides structured learning pathways, curated courses, and teaching resources designed to support STEM education across different levels. Explore the curricula below to view their courses, timelines, and details.",
"title": "Curriculum List",
"noData": "No curriculum found for this organization.",
"noResultsForFilter": "No results found for the selected filter.",
Expand All @@ -245,7 +246,12 @@
"filterByStatus": "Filter by Status",
"showing": "Showing",
"results": "results",
"all": "All"
"all": "All",
"activeSubscriptions": "Active Subscriptions",
"expiredSubscriptions": "Expired Subscriptions",
"upcomingSubscriptions": "Upcoming Subscriptions",
"cancelledSubscriptions": "Cancelled Subscriptions",
"accessPeriod": "Access Period"
},
"userTable": {
"title": "Manage Users in the Organization",
Expand Down
2 changes: 1 addition & 1 deletion messages/en/subscription/en_subscription.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"searchPlaceholder": "Search organizations by name...",
"subscriptionTitle": "Subscription List",
"subscriptionHistoryTitle": "Subscription History",
"organizationSubscriptionTitle": "Organization Subscription Management",
"organizationSubscriptionTitle": "Organization Management",
"organizationSubscriptionDescription": "Browse and manage all organization subscriptions registered on the platform.",
"placeholder": {
"search": "Search organizations by name...",
Expand Down
22 changes: 20 additions & 2 deletions messages/vi/3d/vi_3d.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,17 +42,35 @@
"connector": "Đầu nối",
"drag_guide": "Kéo để thêm vào cảnh",
"double_click_guide": "Nhấp đúp để đặt tại gốc tọa độ",
"select_guide": "Chọn & sử dụng gizmo để biến đổi"
"select_guide": "Chọn & sử dụng gizmo để biến đổi",
"bluestraw": "Ống hút xanh dương",
"pinkstraw": "Ống hút hồng",
"yellowstraw": "Ống hút vàng",
"greenstraw": "Ống hút xanh lá",
"orangestraw": "Ống hút cam",
"1legconnector": "Đầu nối 1 chân",
"2legsconnector": "Đầu nối 2 chân",
"3legsconnector": "Đầu nối 3 chân",
"5legsconnector": "Đầu nối 5 chân"
},
"right_panel": {
"workspace_tree": "Cấu trúc mô hình",
"properties": "Thuộc tính",
"delete_component": "Bạn có muốn xóa thành phần này không?",
"select_object_or_action": "Chọn một vật thể hoặc hành động để chỉnh sửa thuộc tính",
"noStep": "Không có bước nào liên kết với hành động này",
"action_properties": {
"title": "Thuộc tính hành động",
"name": "Tên",
"type": "Loại"
"type": "Loại",
"step": {
"detail": "Chi tiết bước",
"title": "Tiêu đề",
"description": "Mô tả",
"expectedResult": "Kết quả mong đợi",
"hint": "Gợi ý",
"addHint": "Thêm gợi ý"
}
},
"component_properties": {
"select_object_or_action": "Chọn một vật thể hoặc hành động để chỉnh sửa thuộc tính",
Expand Down
3 changes: 2 additions & 1 deletion messages/vi/admin/vi_admin.json
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@
"updateButton": "Cập nhật"
},
"user": {
"userManagement": "Quản lý người dùng",
"createTitle": "Tạo người dùng",
"editTitle": "Chỉnh sửa người dùng",
"email": "Email",
Expand Down Expand Up @@ -146,4 +147,4 @@
"reviewMessage": "Khóa học đang đợi quản trị viên phê duyệt."
}
}
}
}
12 changes: 9 additions & 3 deletions messages/vi/classroom/vi_classroom.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
"startDate": "Ngày bắt đầu",
"endDate": "Ngày kết thúc"
},
"curriculum": "Cập nhật chương trình học của lớp học",
"curriculum": "Cập nhật khóa học",
"teacher": "Cập nhật giáo viên của lớp học",
"students": {
"addStudents": "Thêm học sinh vào lớp học",
Expand Down Expand Up @@ -85,7 +85,13 @@
"description": "Mô tả",
"descriptionPlaceholder": "Mô tả ngắn gọn về lớp học này...",
"groupList": "Danh sách nhóm",
"grade": "Khối"
"grade": "Khối",
"selectSubscription": "Chọn gói đăng ký",
"annual": "Hàng năm",
"semiAnnual": "Nửa năm",
"students": "Học sinh",
"teachers": "Giáo viên",
"curricula": "Chương trình học"
},
"studentClassroom": {
"list": {
Expand All @@ -111,4 +117,4 @@
"grade": "Khối"
}
}
}
}
50 changes: 50 additions & 0 deletions messages/vi/dashboard/vi_dashboard.json
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,56 @@
"currTitle": "Tên chương trình",
"name": "Tên"
}
},
"admin": {
"title": "Bảng điều khiển hệ thống",
"subtitle": "Tổng quan hiệu suất hệ thống và doanh thu",
"period": {
"placeholder": "Chọn kỳ",
"month": "Tháng này",
"quarter": "Quý này",
"year": "Năm này"
},
"stats": {
"revenue": "Tổng doanh thu",
"compare": "So với kỳ trước",
"activeOrg": "Tổ chức hoạt động",
"growth": "Tăng trưởng",
"totalStudent": "Tổng học sinh",
"enrollment": "Lượt ghi danh",
"completionRate": "Tỷ lệ hoàn thành"
},
"charts": {
"revenueByPlan": "Doanh thu theo Gói",
"revenueDesc": "Phân bổ doanh thu dựa trên các gói đăng ký",
"planDetail": "Chi tiết gói đăng ký",
"planDetailDesc": "Trạng thái các gói đăng ký hiện tại",
"totalPlan": "Tổng gói",
"active": "Đang hoạt động",
"expired": "Đã hết hạn",
"noData": "Chưa có dữ liệu doanh thu"
},
"tables": {
"topOrg": "Top Tổ Chức",
"topOrgDesc": "Các tổ chức có lượng học viên lớn nhất",
"topCourse": "Top Khóa Học",
"topCourseDesc": "Các khóa học phổ biến nhất hệ thống",
"headers": {
"orgName": "Tên Tổ Chức",
"students": "Học sinh",
"enrollments": "Ghi danh",
"passRate": "Tỷ lệ đạt",
"activeSub": "Gói hoạt động",
"courseName": "Khóa học",
"classrooms": "Lớp học",
"avgScore": "Điểm TB",
"completion": "Hoàn thành"
},
"placeholders": {
"org": "Chưa có dữ liệu tổ chức",
"course": "Chưa có dữ liệu khóa học"
}
}
}
}
}
8 changes: 7 additions & 1 deletion messages/vi/organization/vi_organization.json
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,7 @@
},
"curriculum": {
"curriculum": "Khung chương trình",
"orgCurriculumDescription": "Tổ chức của bạn hiện đang được cấp quyền truy cập vào {count} khung chương trình thuộc gói đăng ký.\nMỗi khung chương trình cung cấp lộ trình học tập rõ ràng, danh mục khóa học và tài nguyên giảng dạy nhằm hỗ trợ việc triển khai giáo dục STEM ở nhiều cấp độ. Hãy khám phá các chương trình bên dưới để xem thông tin khóa học, thời gian học và chi tiết liên quan.",
"title": "Danh sách khung chương trình",
"noData": "Không tìm thấy chương trình giảng dạy nào cho tổ chức này.",
"noResultsForFilter": "Không tìm thấy kết quả nào cho bộ lọc đã chọn.",
Expand All @@ -244,7 +245,12 @@
"filterByStatus": "Lọc theo trạng thái",
"showing": "Hiển thị",
"results": "kết quả",
"all": "Tất cả"
"all": "Tất cả",
"activeSubscriptions": "Gói đang hoạt động",
"expiredSubscriptions": "Gói đã hết hạn",
"upcomingSubscriptions": "Gói sắp kích hoạt",
"cancelledSubscriptions": "Gói đã hủy",
"accessPeriod": "Thời hạn truy cập"
},
"userTable": {
"title": "Quản lý người dùng trong Tổ chức",
Expand Down
2 changes: 1 addition & 1 deletion messages/vi/subscription/vi_subscription.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"searchPlaceholder": "Tìm kiếm tổ chức theo tên...",
"subscriptionTitle": "Danh sách gói đăng ký",
"subscriptionHistoryTitle": "Lịch sử đăng ký",
"organizationSubscriptionTitle": "Quản lý đăng ký tổ chức",
"organizationSubscriptionTitle": "Quản lý tổ chức",
"organizationSubscriptionDescription": "Duyệt và quản lý tất cả các đăng ký tổ chức đã đăng ký trên nền tảng.",
"placeholder": {
"search": "Tìm kiếm tổ chức theo tên...",
Expand Down
2 changes: 1 addition & 1 deletion public/components/templates/ConnectorTypes/1leg.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"id": "1leg",
"name": "1-Leg Red Connector",
"name": "Đầu nối 1 chân",
"version": "1.0",
"category": "connector",
"baseGeometry": {
Expand Down
2 changes: 1 addition & 1 deletion public/components/templates/ConnectorTypes/2legs.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"id": "2leg",
"name": "2-Leg Connector",
"name": "Đầu nối 2 chân",
"version": "1.0",
"category": "connector",
"baseGeometry": {
Expand Down
2 changes: 1 addition & 1 deletion public/components/templates/ConnectorTypes/3legs.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"id": "3leg",
"name": "3-Leg Red Connector",
"name": "Đầu nối 3 chân",
"version": "1.0",
"category": "connector",
"baseGeometry": {
Expand Down
2 changes: 1 addition & 1 deletion public/components/templates/ConnectorTypes/5legs.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"id": "5leg",
"name": "5-Leg Red Connector",
"name": "Đầu nối 5 chân",
"version": "1.0",
"category": "connector",
"baseGeometry": {
Expand Down
4 changes: 2 additions & 2 deletions public/components/templates/StrawTypes/blue_19_0.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"id": "blue_19_0",
"shortName": "Blue Straw",
"name": "Blue Straw 19.0cm",
"shortName": "Ống hút xanh dương",
"name": "Ống hút xanh dương",
"version": "1.0",
"category": "straw",
"baseGeometry": {
Expand Down
4 changes: 2 additions & 2 deletions public/components/templates/StrawTypes/green_11_2.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"id": "green_11_2",
"shortName": "Green Straw",
"name": "Green Straw 15.0cm",
"shortName": "Ống hút xanh lá",
"name": "Ống hút xanh lá",
"version": "1.0",
"category": "straw",
"baseGeometry": {
Expand Down
Loading