A full-featured CRM system for educational centers built with React, Vite, TailwindCSS, and shadcn/ui.
- Role-based authentication (Admin, Teacher, Student)
- Mock login system with hardcoded users
- Protected routes based on user roles
- Dashboard with charts and statistics
- Teacher and student management
- Shop products management
- Payment tracking
- Teacher performance and salary calculations
- Dashboard with group statistics
- Lesson management
- Attendance tracking
- Student performance monitoring
- Points assignment
- Personal dashboard with progress tracking
- Points system and shop
- Group information
- Achievement tracking
- Points-based reward system
- Product management (Admin)
- Purchase history
- Points earning mechanisms
- Frontend: React 18 + TypeScript
- Build Tool: Vite
- Styling: TailwindCSS
- UI Components: shadcn/ui
- State Management: Zustand
- Routing: React Router DOM
- Charts: Recharts
- Icons: Lucide React
- Node.js 18+
- npm or yarn
- Clone the repository
git clone <repository-url>
cd edu- Install dependencies
npm install- Start the development server
npm run dev- Open your browser and navigate to
http://localhost:5173
Use these credentials to test different user roles:
- Admin:
admin/password - Teacher:
teacher1/password - Student:
student1/password
src/
├── components/
│ ├── ui/ # shadcn/ui components
│ └── layout/ # Layout components
├── pages/
│ ├── admin/ # Admin pages
│ ├── teacher/ # Teacher pages
│ └── student/ # Student pages
├── store/ # Zustand stores
├── lib/ # Utility functions
└── App.tsx # Main app component
- AuthStore: Handles authentication and user state
- ShopStore: Manages products and student points
- Mobile-first approach with TailwindCSS
- Responsive charts and layouts
- Touch-friendly interface
- Protected routes for each user role
- Role-specific navigation menus
- Conditional rendering based on permissions
- Create new components in appropriate directories
- Add routes in
App.tsx - Update navigation in
DashboardLayout.tsx - Add any new state management in stores
- Use TailwindCSS classes for styling
- Follow shadcn/ui component patterns
- Maintain consistent spacing and colors
This project is for educational purposes.