diff --git a/apps/lms/app/(home)/page.tsx b/apps/lms/app/(home)/page.tsx
index 1885778..4df5e77 100644
--- a/apps/lms/app/(home)/page.tsx
+++ b/apps/lms/app/(home)/page.tsx
@@ -2,11 +2,12 @@ import type { Metadata } from "next";
import { LmsHeader } from "@/features/portal/components/LmsHeader";
import { LmsHeroSection } from "@/features/portal/components/LmsHeroSection";
import { DualRoleFeatureGrid } from "@/features/portal/components/DualRoleFeatureGrid";
+import { LmsAIFeaturesSection } from "@/features/portal/components/LmsAIFeaturesSection";
import { ClassActivationShowcase } from "@/features/portal/components/ConsultantShowcase";
import { FaqAndCtaSection } from "@/features/portal/components/FaqAndCtaSection";
export const metadata: Metadata = {
- title: "BeeWise LMS — Hệ Thống Quản Lý Học Tập Thông Minh",
+ title: "BeeWise LMS | Hệ Thống Quản Lý Học Tập Thông Minh",
description:
"Không gian làm việc và học tập của Gia sư và Học viên. Số hóa lịch trình, lưu trữ tài liệu và tối ưu hóa hiệu quả dạy & học trên BeeWise LMS.",
};
@@ -17,6 +18,7 @@ export default function LmsHomePage() {
+
diff --git a/apps/lms/app/layout.tsx b/apps/lms/app/layout.tsx
index 01d9d7e..3e16022 100644
--- a/apps/lms/app/layout.tsx
+++ b/apps/lms/app/layout.tsx
@@ -5,7 +5,7 @@ import { googleSans, nunito } from "@workspace/core/configs/fonts";
import { TooltipProvider } from "@workspace/ui/components/ui/tooltip";
export const metadata: Metadata = {
- title: "BeeWise LMS — Hệ Thống Quản Lý Học Tập Thông Minh",
+ title: "BeeWise LMS | Hệ Thống Quản Lý Học Tập Thông Minh",
};
export default function RootLayout({
diff --git a/apps/lms/features/portal/components/ConsultantShowcase.tsx b/apps/lms/features/portal/components/ConsultantShowcase.tsx
index 7d09ed1..8cab32e 100644
--- a/apps/lms/features/portal/components/ConsultantShowcase.tsx
+++ b/apps/lms/features/portal/components/ConsultantShowcase.tsx
@@ -1,251 +1,72 @@
-"use client";
-
-import { useRef } from "react";
-import { motion, useInView } from "motion/react";
-import {
- Lightning,
- GraduationCap,
- ChalkboardTeacher,
- CheckCircle,
- ArrowsClockwise,
- ShieldCheck,
- CalendarCheck,
- BookOpen,
-} from "@phosphor-icons/react";
-
-const ease = [0.22, 1, 0.36, 1] as const;
-
-/* ───────────────────────────────────────────
- Activation Flow Mockup Widget
- ─────────────────────────────────────────── */
-
-function ActivationFlowWidget() {
- return (
-
- {/* System message header */}
-
-
-
-
-
-
- Hệ thống BeeWise
-
-
- Kích hoạt tự động · Vừa xong
-
-
-
-
- {/* Activation details */}
-
-
- Yêu cầu kích hoạt lớp học mới
-
-
-
- Học viên:
- Nguyễn Văn Minh
-
-
- Gia sư:
- Trần Thị Hương
-
-
- Môn học:
- Theo thỏa thuận
-
-
- Lịch học:
- T3, T5 · 14:00 - 15:30
-
-
- Đơn giá:
- 220,000₫/buổi
-
-
-
-
- {/* Activation steps */}
-
- {[
- { label: "Xác nhận thông tin lớp học", done: true },
- { label: "Thiết lập lịch trình tự động", done: true },
- { label: "Cấp quyền truy cập LMS", done: true },
- ].map((step) => (
-
-
-
- {step.label}
-
-
- ))}
-
-
- {/* Status footer */}
-
-
-
- Lớp học đã kích hoạt — Cả hai bên có thể truy cập LMS ngay
-
-
-
- );
-}
-
-/* ───────────────────────────────────────────
- Main Component
- ─────────────────────────────────────────── */
+const steps = [
+ { title: "Kết nối", body: "Học viên tìm gia sư phù hợp trên BeeWise." },
+ {
+ title: "Thống nhất lớp học",
+ body: "Hai bên trao đổi lịch học, học phí và mục tiêu.",
+ },
+ {
+ title: "BeeWise kích hoạt LMS",
+ body: "Tư vấn viên xác nhận và hệ thống mở không gian lớp học.",
+ },
+ {
+ title: "Cùng theo dõi tiến độ",
+ body: "Lịch, tài liệu và trạng thái lớp luôn được cập nhật.",
+ },
+] as const;
export function ClassActivationShowcase() {
- const ref = useRef(null);
- const inView = useInView(ref, { once: true, margin: "-80px" });
-
return (
- {/* Dot grid pattern overlay */}
-
-
-
-
-
- {/* Left: Content */}
-
+
+
+ BeeWise vận hành lớp học cùng bạn
+
+
-
- Consultant Xác Nhận,{" "}
- Hệ Thống Kích Hoạt
-
-
- Khi học viên và gia sư thống nhất trong Chat Room, Consultant
- xác nhận kết nối thành công. Hệ thống tự động tạo lớp học,
- thiết lập lịch trình và cấp quyền LMS cho cả hai bên.
-
-
- {/* Activation flow steps */}
-
- {[
- {
- icon: GraduationCap,
- step: "Trao đổi trong Chat Room",
- desc: "Học viên, gia sư và Consultant cùng thảo luận về nhu cầu, lịch học, học phí và hình thức học.",
- },
- {
- icon: ChalkboardTeacher,
- step: "Consultant xác nhận kết nối",
- desc: "Khi hai bên đồng ý, Consultant xác nhận và hệ thống tạo hợp đồng lớp học.",
- },
- {
- icon: Lightning,
- step: "LMS tự động mở quyền",
- desc: "Lịch học, kho tài liệu và quản lý học phí sẵn sàng cho cả gia sư và học viên.",
- },
- ].map((item, i) => {
- const Icon = item.icon;
- return (
-
-
-
-
-
-
- {item.step}
-
-
- {item.desc}
-
-
-
- );
- })}
-
-
- {/* Automation highlight */}
- SuperLMS dễ dàng
+ khi tham gia BeeWise
+
+
+ Quy trình rõ ràng giúp gia sư và học viên bắt đầu nhanh.
+
+
+
+ {steps.map((step, index) => (
+
-
- Consultant đồng hành toàn bộ quy trình — từ kết nối đến kích hoạt lớp học
+
+ 0{index + 1}
+
+
- Thu nhập chi tiết được hiển thị trong hệ thống
-
-
-
- );
-}
-
-/* ───────────────────────────────────────────
- Tab Card Data
- ─────────────────────────────────────────── */
-
-interface FeatureCard {
- icon: typeof CalendarBlank;
- title: string;
- desc: string;
- content: React.ReactNode;
-}
-
-const STUDENT_CARDS: FeatureCard[] = [
+const learnerBenefits = [
{
- icon: CalendarBlank,
- title: "Quản Lý Lịch Học",
- desc: "Xem lịch trình, trạng thái buổi học và đếm ngược thời gian.",
- content: ,
+ title: "Quản lý lịch học",
+ body: "Theo dõi buổi học sắp tới và toàn bộ lịch trong tuần.",
},
{
- icon: FolderOpen,
- title: "Kho Tài Liệu Tập Trung",
- desc: "Truy cập tài liệu do gia sư chia sẻ theo từng lớp học.",
- content: ,
+ title: "Quản lý tài liệu",
+ body: "Tài liệu được tải lên và bài tập tạo sinh từ AI giúp học viên học hiệu quả hơn.",
},
{
- icon: CurrencyDollar,
- title: "Theo Dõi Học Phí",
- desc: "Xem số buổi học và trạng thái thanh toán theo từng lớp.",
- content: ,
+ title: "Theo dõi tiến độ học tập",
+ body: "Biết được số buổi đã hoàn thành và những nội dung đang tiếp tục học.",
},
-];
+] as const;
-const TUTOR_CARDS: FeatureCard[] = [
+const tutorBenefits = [
{
- icon: ChatTeardropDots,
- title: "Quản Lý Lớp Học Đa Nhiệm",
- desc: "Điều phối nhiều lớp học cùng lúc trong không gian làm việc.",
- content: ,
+ title: "Quản lý nhiều học viên",
+ body: "Quản lý thông tin, lịch học và tài liệu của tất cả học viên.",
},
{
- icon: FolderOpen,
- title: "Kho Tài Liệu Toàn Quyền",
- desc: "Tải lên, chỉnh sửa và quản lý tài liệu riêng cho từng lớp.",
- content: ,
+ title: "Tạo bài tập và tóm tắt buổi học qua Beewise AI",
+ body: "Tự động tạo bài tập và tóm tắt buổi học với sự hỗ trợ của AI",
},
{
- icon: CurrencyDollar,
- title: "Theo Dõi Thu Nhập",
- desc: "Xem số buổi đã dạy và trạng thái thanh toán từ học viên.",
- content: ,
+ title: "Theo dõi tiến độ",
+ body: "Tiến độ và học phí được quản lý và theo dõi dễ dàng",
},
-];
+] as const;
-/* ───────────────────────────────────────────
- Main Component
- ─────────────────────────────────────────── */
+function BenefitList({
+ items,
+}: {
+ items: readonly { title: string; body: string }[];
+}) {
+ return (
+
);
diff --git a/apps/lms/features/portal/components/FaqAndCtaSection.tsx b/apps/lms/features/portal/components/FaqAndCtaSection.tsx
index 41d2037..5092757 100644
--- a/apps/lms/features/portal/components/FaqAndCtaSection.tsx
+++ b/apps/lms/features/portal/components/FaqAndCtaSection.tsx
@@ -1,252 +1,172 @@
"use client";
-import { useState, useRef } from "react";
-import { motion, AnimatePresence, useInView } from "motion/react";
-import Link from "next/link";
+import { useState } from "react";
import Image from "next/image";
-import { CaretDown, ArrowRight, Sparkle } from "@phosphor-icons/react";
-
-const ease = [0.22, 1, 0.36, 1] as const;
-
-/* ───────────────────────────────────────────
- FAQ Data
- ─────────────────────────────────────────── */
+import Link from "next/link";
+import { AnimatePresence, motion, useReducedMotion } from "motion/react";
+import { CaretDown } from "@phosphor-icons/react";
const FAQ_ITEMS = [
{
- q: "BeeWise LMS dành cho ai?",
- a: "BeeWise LMS dành cho học viên và gia sư đã kết nối thành công qua BeeWise. Học viên theo dõi lịch học, tài liệu và học phí. Gia sư quản lý lớp, tài liệu giảng dạy và thu nhập.",
- },
- {
- q: "Làm thế nào để bắt đầu sử dụng hệ thống?",
- a: "Học viên: Tìm gia sư trên trang chủ BeeWise → kết nối qua Chat Room có Consultant hỗ trợ → sau khi xác nhận học, hệ thống tự động cấp quyền LMS. Gia sư: Đăng ký hồ sơ → hoàn thành phỏng vấn → được duyệt → mở quyền LMS.",
- },
- {
- q: "Học phí được quản lý như thế nào?",
- a: "Học phí được thống nhất giữa học viên và gia sư trong Chat Room với sự hỗ trợ của Consultant. Sau khi xác nhận, hệ thống tự động ghi nhận và hiển thị trạng thái thanh toán rõ ràng trên LMS.",
+ question: "BeeWise LMS dành cho ai?",
+ answer:
+ "LMS dành cho học viên và gia sư đã kết nối thành công qua BeeWise. Mỗi vai trò có một không gian riêng phù hợp với công việc cần thực hiện.",
},
{
- q: "Gia sư có thể quản lý nhiều lớp cùng lúc không?",
- a: "Có. Không gian gia sư hỗ trợ quản lý nhiều lớp đồng thời — theo dõi từng học viên, quản lý tài liệu riêng từng lớp và xem tổng thu nhập.",
+ question: "Làm thế nào để bắt đầu sử dụng?",
+ answer:
+ "Sau khi gia sư và học viên thống nhất lớp học, Consultant xác nhận kết nối. Hệ thống sẽ tạo lớp và cấp quyền LMS cho cả hai bên.",
},
{
- q: "Dữ liệu của tôi có được bảo mật không?",
- a: "Thông tin cá nhân, tài liệu học tập và lịch sử giao dịch đều được bảo mật. Hệ thống sử dụng kết nối mã hóa và tuân thủ các tiêu chuẩn bảo mật.",
+ question: "Tài liệu và tiến độ được quản lý như thế nào?",
+ answer:
+ "Tài liệu được lưu theo từng lớp và buổi học. Lịch sử buổi học, trạng thái hoàn thành và thông tin liên quan được cập nhật trong cùng một không gian.",
},
{
- q: "Lớp học được kích hoạt như thế nào?",
- a: "Khi học viên và gia sư đồng ý học trong Chat Room, Consultant xác nhận kết nối. Hệ thống tạo hợp đồng lớp học, thiết lập lịch trình và cấp quyền LMS — không cần thao tác thủ công từ người dùng.",
+ question: "Thông tin lớp học có được bảo mật không?",
+ answer:
+ "BeeWise giới hạn quyền truy cập theo vai trò và theo lớp. Chỉ những người tham gia được cấp quyền mới có thể xem nội dung liên quan.",
},
-];
+] as const;
-/* ───────────────────────────────────────────
- Accordion Item
- ─────────────────────────────────────────── */
-
-function AccordionItem({
- item,
- isOpen,
- onToggle,
-}: {
- item: (typeof FAQ_ITEMS)[number];
- isOpen: boolean;
- onToggle: () => void;
-}) {
+function FaqSection() {
+ const [openIndex, setOpenIndex] = useState(0);
+ const reduceMotion = useReducedMotion();
return (
-
-
-
- {isOpen && (
-
+
+
+
+ Câu hỏi thường gặp
+
+
-
- {item.a}
-
-
- )}
-
-
+ Bạn còn thắc mắc?
+
+
+ Thông tin ngắn gọn về quyền truy cập, vận hành lớp học và dữ liệu
+ trên LMS.
+