A comprehensive, multi-role educational platform connecting students, teachers, and administrators
Features β’ Tech Stack β’ Getting Started β’ Project Structure β’ Screenshots
- Overview
- Features
- Tech Stack
- Getting Started
- Project Structure
- Key Features by Role
- API Integration
- State Management
- Deployment
- Contributing
Learning Support System (LSS) is a full-featured educational platform designed to facilitate seamless interaction between students, teachers, administrators, and staff. The platform provides comprehensive class management, application processing, payment integration, feedback systems, and real-time notifications.
- π Multi-role Authentication System - Secure authentication for Students, Teachers, Admins, and Staff with OTP verification
- π Comprehensive Class Management - Create, manage, schedule, and track classes with real-time status updates
- π° Integrated Payment System - VNPay gateway integration for seamless transactions and wallet management
- π Application Management - Complete workflow for registration, withdrawal, and other application types
- π¬ Feedback & Rating System - Collect, manage, and display student feedback with detailed analytics
- π± Responsive Design - Modern, mobile-first UI with dark/light theme support
- π Real-time Notifications - Stay updated with important announcements and system notifications
- π Analytics Dashboard - Comprehensive statistics and reporting for administrators
- π Document Management - Upload, organize, and access class materials and documents
- π° News Management - Create and manage news articles and announcements
- β¨ Modern, Responsive Design - Built with Tailwind CSS for beautiful, responsive layouts
- π Dark/Light Theme Toggle - System-aware theme switching with persistent preferences
- π± Mobile-First Approach - Optimized for all device sizes
- π Beautiful UI Components - Radix UI primitives for accessible, customizable components
- π― Intuitive Navigation - Collapsible sidebar navigation with role-based menus
- π¨ Icon Library - Lucide React icons throughout the application
- π¬ Smooth Animations - Tailwind CSS Animate for polished transitions
- π Secure Login/Logout - Session-based authentication with token management
- π§ Email/Phone Verification - OTP-based verification for registration and password reset
- π Password Reset Flow - Complete forgot password workflow with OTP verification
- π‘οΈ Protected Routes - Role-based route protection using ProtectedRoute component
- πΎ Session Management - Secure session and local storage handling
- π Role-Based Access Control - Different access levels for Students, Teachers, Admins, and Staff
Class Management:
- π Browse all available classes with filtering and search
- π View detailed class information (schedule, teacher, price, description)
- π View enrolled classes in "My Classes"
- π Access class documents and materials
- π View class schedules and timetables
- β Rate and provide feedback for completed classes
Wallet & Payments:
- π³ View wallet balance
- π° Recharge wallet using VNPay payment gateway
- π View complete transaction history
- πΈ Track deposits and withdrawals
- π View order history and details
Applications:
- π Submit registration applications
- πΈ Submit withdrawal applications
- π Submit other types of applications
- π View application status and history
- π§ Receive application notifications
Profile & Settings:
- π€ Manage personal profile
- π§ Update contact information
- π View and manage notifications
- π° Read news and announcements
- π Access personal documents
Class Management:
- π Create new classes with images and detailed information
- βοΈ Edit existing class details
- π Update class schedules and timings
- π Update class locations
- π₯ View enrolled student lists
- β Manage class status (Active, Ongoing, Completed, Cancelled)
- β Handle class cancellation requests
- π View class statistics and analytics
Schedule Management:
- π Create and update teaching schedules
- β° Manage time slots
- π View detailed timetable
- π Update schedule availability
Applications:
- π Submit teacher applications (Register, Withdraw, Other)
- π View application status
- π§ Receive application notifications
Financial:
- π° View earnings and wallet balance
- π Track payment history
- πΈ Submit withdrawal requests
- π View financial statistics
Profile:
- π€ Manage teacher profile
- π Update teaching information
- β View ratings and feedback
- π View teaching statistics
User Management:
- π₯ List Users - View all registered users with filtering and search
- π List Teachers - Manage all teacher accounts
- β Create Staff - Register new staff members
- β Activate/Deactivate Users - Control user account status
- π User Statistics - View user counts by role
Class Management:
- π View All Classes - Comprehensive class overview
- π Class Statistics - Analytics by status and month
- β Class Oversight - Monitor class status and progress
- π Class Search & Filter - Advanced filtering options
- π Class Analytics - Detailed reports and charts
Application Management:
- π Registration Applications - Review and approve student registrations
- πΈ Withdrawal Applications - Process withdrawal requests
- π Other Applications - Handle miscellaneous applications
- β Approve/Reject Applications - Complete application workflow
- π§ Application Notifications - Send email notifications
- π Application Assignment - Assign applications to staff
System Configuration:
- βοΈ Edit Parameters - Configure system settings
- π Dashboard Analytics - View comprehensive statistics
- π Revenue Tracking - Monitor financial metrics
- π Class Status Reports - Detailed status breakdowns
Content Management:
- π° News Management - Create, edit, and publish news articles
- π Document Management - Oversee system documents
- π Category Management - Manage course categories
Application Processing:
- π View assigned applications
- β Process and approve applications
- β Reject applications with reasons
- π§ Send email notifications
- π View application statistics
Dashboard:
- π Overview of assigned tasks
- π Application metrics
- π Notification management
- π³ VNPay Integration - Secure payment gateway for wallet recharge
- π΅ Wallet Balance Management - Real-time balance tracking
- π Transaction History - Complete history of all transactions
- πΈ Withdrawal Requests - Submit and track withdrawal requests
- π° Recharge Functionality - Multiple payment methods
- π Financial Analytics - Track deposits, withdrawals, and earnings
- π Payment Notifications - Real-time payment status updates
- π Create Classes - Full class creation with images, descriptions, and schedules
- βοΈ Edit Classes - Update class information and details
- π Schedule Management - Create and update class schedules
- π Location Management - Update class locations
- π₯ Student Enrollment - Track enrolled students per class
- β Status Management - Active, Ongoing, Completed, Cancelled statuses
- π Document Management - Upload and manage class documents
- π Class Analytics - View statistics and performance metrics
- π Search & Filter - Advanced filtering by category, teacher, status
- π Class Reports - Monthly and yearly class statistics
- π Registration Applications - Student class registration requests
- πΈ Withdrawal Applications - Withdrawal requests with approval workflow
- π Other Applications - Miscellaneous application types
- β Approval Workflow - Multi-step approval process
- β Rejection Handling - Reject applications with detailed reasons
- π§ Email Notifications - Automated email notifications
- π Application Tracking - Track application status and history
- π Application Assignment - Assign applications to staff members
- π Application Analytics - Statistics and reporting
- β Rating System - Rate classes and teachers
- π¬ Feedback Forms - Detailed feedback collection
- π Feedback Analytics - View feedback statistics
- π Average Ratings - Calculate and display average ratings
- π Feedback History - Track submitted feedback
- β Question Management - Dynamic feedback questions
- π Feedback Details - View detailed feedback information
- π€ Upload Documents - Upload class materials and files
- π Edit Documents - Update document information
- π View Documents - Access documents with PDF viewer
- ποΈ Delete Documents - Remove outdated documents
- π Document Organization - Organize by class and category
- π Document Search - Search and filter documents
- π° News Management - Create, edit, and publish news articles
- π News Details - View detailed news articles
- π Notifications - Real-time notification system
- β Notification Status - Mark notifications as read/unread
- ποΈ Delete Notifications - Manage notification list
- π Notification Analytics - Track notification engagement
- π Dashboard Statistics - Comprehensive overview metrics
- π₯ User Analytics - User counts by role
- π Class Analytics - Class statistics by status and month
- π° Financial Analytics - Revenue and transaction reports
- π Order Analytics - Order statistics and details
- π Monthly Reports - Detailed monthly breakdowns
- π Status Reports - Class status distribution
- π Charts & Graphs - Visual data representation with Recharts
- π Dark Mode - Full dark theme support
- βοΈ Light Mode - Clean light theme
- π₯οΈ System Theme - Auto-detect system preferences
- πΎ Theme Persistence - Save theme preferences
- π¨ Customizable UI - Tailwind CSS for easy customization
- βοΈ React 18.3.1 - Modern UI library with hooks and context
- β‘ Vite 5.4.1 - Next-generation build tool with HMR
- π― React Router DOM 6.26.2 - Client-side routing and navigation
- π¨ Tailwind CSS 3.4.11 - Utility-first CSS framework
- π§© Radix UI - Accessible component primitives
- Avatar, Checkbox, Dialog, Dropdown Menu
- Popover, Progress, Radio Group, Scroll Area
- Select, Separator, Slider, Switch, Tabs
- π Lucide React 0.441.0 - Beautiful icon library
- π Tailwind CSS Animate 1.0.7 - Animation utilities
- π¨ Class Variance Authority - Component variant management
- π§ CLSX & Tailwind Merge - Class name utilities
- π React Context API - Global state management
- AuthContext, ClassContext, WalletContext
- FeedbackContext, QuestionContext, AvatarContext
- ThemeProvider
- πΎ SessionStorage/LocalStorage - Client-side persistence
- π Axios 1.7.7 - HTTP client with interceptors
- π TanStack React Query 5.59.20 - Data fetching and caching
- π Recharts 2.13.3 - Chart and graph library
- π React Day Picker 8.10.1 - Date picker component
- π React Quill 2.0.0 - Rich text editor
- π React PDF 9.2.1 - PDF viewer and renderer
- π MUI X Data Grid 7.23.5 - Advanced data tables
- π MUI X Charts 7.22.1 - Chart components
- π React Select 5.8.2 - Select component
- π React Multi Carousel 2.8.5 - Carousel component
- π’ React OTP Input 3.1.1 - OTP input component
- π React Excel Renderer 1.1.0 - Excel file handling
- π React Hot Toast 2.4.1 - Toast notification system
- π¦ Lodash 4.17.21 - Utility functions
- π Day.js 1.11.13 - Date manipulation library
- π Moment.js 2.30.1 - Date and time library
- π Date-fns 3.6.0 - Modern date utility library
- π§Ή DOMPurify 3.1.7 - HTML sanitization
- πΎ File Saver 2.0.5 - File download utility
- π Mammoth 1.9.0 - Word document converter
- π¨ MUI Material 6.1.6 - Material Design components
- π¨ MUI Styled Engine SC - Styled components engine
- π¨ Emotion React & Styled - CSS-in-JS library
- π CKEditor 5 43.3.1 - Rich text editor
- π CKEditor React 9.3.1 - React integration
- π ESLint 9.9.0 - Code linting and quality
- β‘ Vite Plugin React SWC 3.5.0 - Fast refresh with SWC
- π― PostCSS & Autoprefixer - CSS processing
- π¦ TypeScript Types - Type definitions for React
Make sure you have the following installed:
- π¦ Node.js (v16 or higher recommended)
- π¦ npm (v7 or higher) or yarn package manager
- π Git for version control
-
Clone the repository
git clone https://github.com/yourusername/LSS_FrontEnd.git cd LSS_FrontEnd -
Install dependencies
npm install # or yarn install -
Configure environment variables
Create a
.envfile in the root directory:VITE_API_URL=your_api_url_here
The application uses a proxy configuration in
vite.config.jsfor development. -
Start the development server
npm run dev # or yarn devThe application will be available at
http://localhost:5173 -
Build for production
npm run build # or yarn build -
Preview production build
npm run preview # or yarn preview -
Lint code
npm run lint # or yarn lint
Navigation & Overview:
- π Home - Browse available classes with search and filters
- π My Classes - View all enrolled classes with status
- π All Classes - Browse and search all available classes
- π Class Details - Detailed view with schedule, teacher info, and enrollment
Financial Management:
- π³ Wallet - View balance, recharge, and manage funds
- π Transaction History - Complete history of all transactions
- π Orders - View and track class orders
- π° Payment Integration - Secure VNPay payment gateway
Applications:
- π Send Applications - Submit registration, withdrawal, or other applications
- π View Applications - Track application status and history
- β Application Status - Real-time status updates
Learning Resources:
- π Documents - Access class materials and documents
- π Class Materials - View PDFs and other resources
- π Schedules - View class timetables
Community & Feedback:
- β Feedback - Rate and review classes and teachers
- π° News - Read announcements and news articles
- π€ Teacher Profiles - View teacher information and ratings
Account Management:
- π€ Profile - Manage personal information
- π Notifications - View and manage notifications
- βοΈ Settings - Account settings and preferences
Class Management:
- π Class List - View all your classes with status
- β Create Class - Create new classes with images and details
- βοΈ Edit Class - Update class information
- π Update Schedule - Modify class schedules and timings
- π Update Location - Change class locations
- π₯ Student List - View enrolled students per class
- β Class Status - Manage class status (Active, Ongoing, Completed, Cancelled)
- β Cancel Requests - Handle class cancellation requests
Schedule Management:
- π Schedule Overview - View complete teaching schedule
- β° Time Slot Management - Manage available time slots
- π Detailed Timetable - View detailed schedule information
- π Schedule Updates - Update availability and timings
Applications:
- π Send Applications - Submit teacher applications
- π View Applications - Track application status
- β Application Tracking - Monitor approval status
Financial:
- π° Wallet - View earnings and balance
- π Payment History - Track all payments
- πΈ Withdrawal Requests - Submit and track withdrawals
- π Earnings Statistics - View financial analytics
Profile & Analytics:
- π€ Profile - Manage teacher profile and information
- β Ratings - View student ratings and feedback
- π Statistics - Teaching statistics and analytics
- π Performance Metrics - Track teaching performance
User Management:
- π₯ List Users - View all users with search and filters
- User details and information
- Account status management
- User statistics by role
- π List Teachers - Manage all teacher accounts
- Teacher information and status
- Teacher activation/deactivation
- Teacher statistics
- β Create Staff - Register new staff members
- Staff account creation
- Role assignment
- Access management
Class Management:
- π Classes Overview - View all classes in the system
- π Class Statistics - Analytics by status and month
- Active classes by month
- Ongoing classes by month
- Completed classes by month
- Cancelled classes by month
- π Class Search & Filter - Advanced filtering options
- π Class Analytics - Detailed reports and charts
- β Class Oversight - Monitor class status and progress
Application Management:
- π Registration Applications - Review and approve student registrations
- Application list and details
- Approval/rejection workflow
- Email notifications
- πΈ Withdrawal Applications - Process withdrawal requests
- Withdrawal request management
- Approval workflow
- Financial tracking
- π Other Applications - Handle miscellaneous applications
- Application review
- Approval process
- Status tracking
- β Application Workflow - Complete approval/rejection system
- π§ Application Notifications - Automated email notifications
- π Application Assignment - Assign applications to staff
System Configuration:
- βοΈ Edit Parameters - Configure system settings
- System parameter management
- Configuration updates
- Settings persistence
- π Dashboard Analytics - Comprehensive statistics
- User counts by role
- Total orders and revenue
- Class statistics
- Financial metrics
- π Revenue Tracking - Monitor financial metrics
- π Class Status Reports - Detailed status breakdowns
Content Management:
- π° News Management - Create, edit, and publish news articles
- News creation and editing
- News publishing
- News analytics
- π Document Management - Oversee system documents
- π Category Management - Manage course categories
Application Processing:
- π View Applications - View assigned applications
- β Process Applications - Approve or reject applications
- β Reject Applications - Reject with detailed reasons
- π§ Send Notifications - Email notifications to users
- π Application Statistics - View processing metrics
Dashboard:
- π Overview - Assigned tasks and metrics
- π Application Metrics - Statistics and reports
- π Notification Management - Manage notifications
The application integrates with a comprehensive REST API backend with 170+ API endpoints. All API calls are centralized in src/data/api.js using Axios with proper error handling and authentication.
Authentication APIs:
- π Login, Register (Student/Teacher)
- π§ OTP Verification (Register/Forgot Password)
- π Password Reset
- π Token Management
User Management APIs:
- π₯ List Users, List Teachers
- β Create Staff
- β Activate/Deactivate Users
- π User Statistics
Class Management APIs:
- π Get All Classes, Get Class by ID
- β Create Class, Update Class
- ποΈ Delete Class
- π Schedule Management
- π Location Updates
- β Status Management (Active, Ongoing, Completed, Cancelled)
- π Class Statistics and Analytics
- π Class Search and Filtering
Application APIs:
- π Create Application (Register, Withdraw, Other)
- π View Applications
- β Approve/Reject Applications
- π Cancel Applications
- π§ Email Notifications
- π Application Assignment
Wallet & Payment APIs:
- π° Get Balance (Student/Teacher)
- π³ Recharge Wallet
- π Transaction History
- πΈ Withdrawal Requests
- π΅ VNPay Integration
- π Financial Analytics
Document APIs:
- π Upload Documents
- βοΈ Update Documents
- ποΈ Delete Documents
- π Get Documents by Class
- π Document Search
Feedback APIs:
- β Submit Feedback
- π Get Feedback by Class
- π Feedback Statistics
- β Feedback Questions
- π Feedback Details
News APIs:
- π° Create News
- βοΈ Update News
- π Get All News
- π Get News by ID
- ποΈ Delete News
Notification APIs:
- π View All Notifications
- β Mark as Read/Unread
- ποΈ Delete Notifications
- π Notification Statistics
Analytics APIs:
- π Dashboard Statistics
- π₯ User Counts by Role
- π Class Statistics
- π° Revenue Analytics
- π Monthly Reports
- π Status Reports
The application uses React Context API for global state management with the following contexts:
- π Authentication state (isLoggedIn, loading)
- π Login/Logout functions
- πΎ Session management
- π¨ Theme integration on logout
- π Class data management
- π Fetch classes function
- πΎ SessionStorage persistence
- π Class filtering and search
- ποΈ Clear classes function
- π° Balance state
- π Load balance function
- β³ Loading and error states
- π Transaction management
- β Submitted feedback tracking
- β Add feedback order ID
- ποΈ Clear feedback IDs
- πΎ LocalStorage persistence
- β Feedback questions
- π Fetch questions function
- β³ Loading and error states
- π€ User profile data
- π Update profile function
- πΎ LocalStorage persistence
- π Theme state (light/dark/system)
- π Set theme function
- πΎ LocalStorage persistence
- π₯οΈ System theme detection
The application is configured for deployment on Vercel with:
- β SPA Routing Support - Proper routing configuration
- β Environment Variables - Secure configuration
- β Production Build - Optimized production builds
- β API Proxy - Development proxy configuration
- β Static Asset Optimization - Optimized asset delivery
-
Push to GitHub
git push origin main
-
Import Project in Vercel
- Go to Vercel
- Import your GitHub repository
- Configure build settings
-
Configure Environment Variables
- Add
VITE_API_URLin Vercel dashboard - Configure other environment variables
- Add
-
Deploy! π
- Vercel will automatically deploy
- Get your production URL
- π Netlify - Similar configuration
- βοΈ AWS Amplify - AWS deployment
- π³ Docker - Containerized deployment
- π₯οΈ Self-hosted - Custom server deployment
Contributions are welcome! Please feel free to submit a Pull Request.
- π΄ Fork the repository
- πΏ Create your feature branch (
git checkout -b feature/AmazingFeature) - πΎ Commit your changes (
git commit -m 'Add some AmazingFeature') - π€ Push to the branch (
git push origin feature/AmazingFeature) - π Open a Pull Request
- Follow ESLint rules
- Use meaningful variable names
- Add comments for complex logic
- Follow React best practices
- Write clean, readable code
This project is licensed under the MIT License.
- π GitHub: @baosetsuna123
- π§ Email: baohse321@gmail.com
- πΌ LinkedIn: Bao Tran
- React team for the amazing framework
- Vite team for the fast build tool
- Tailwind CSS for the utility-first CSS framework
- Radix UI for accessible components
- All contributors and open-source libraries used
β If you like this project, give it a star on GitHub! β
Made with β€οΈ using React and Vite