🔗 Live Demo: https://classroom.henglay.tech/
A comprehensive classroom management platform that empowers educators and students with intuitive tools for teaching, learning, and collaboration. Built with React, TypeScript, Tailwind CSS, and Supabase.
- Join Classes Instantly - Enter a class code and get immediate access to course materials
- Assignment Management - View, submit, and track all your assignments in one place
- Real-time Grades - Get instant feedback and track your academic progress
- Class Announcements - Stay updated with important class news and updates
- Upcoming Deadlines - Never miss a deadline with clear assignment timelines
- Interactive Learning - Access lecture materials and course resources
- AI Chat Assistant - Get instant help and answers to your questions
- Class Creation & Management - Set up and organize multiple classes effortlessly
- Assignment Builder - Create detailed assignments with due dates and point values
- Streamlined Grading - Efficiently grade and provide feedback on student submissions
- Announcements - Keep students informed with class-wide notifications
- Student Management - Track and manage class enrollment
- Lecture Materials - Upload and share educational resources
- Performance Analytics - Monitor student progress and engagement
- User Management - Complete control over user accounts and permissions
- Role Assignment - Flexibly assign and modify user roles (student/teacher/admin)
- System Analytics - Comprehensive dashboard with usage statistics
- Class Oversight - Monitor all classes and activities across the platform
- Platform Configuration - Manage system-wide settings and preferences
- Frontend: React 18 + TypeScript
- Styling: Tailwind CSS
- Routing: React Router v6
- Backend: Supabase (PostgreSQL)
- Authentication: Supabase Auth
- Storage: Supabase Storage
- Build Tool: Vite
- Node.js 18+ and npm
- A Supabase account
-
Install dependencies
npm install
-
Set up Supabase
- Follow the detailed guide in SUPABASE_SETUP.md
- Create tables and set up RLS policies
- Create storage buckets
-
Configure environment variables
cp .env.example .env
Edit
.envand add your Supabase credentials:VITE_SUPABASE_URL=your_supabase_project_url VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:5173
- Register a new account
- In Supabase dashboard, go to Authentication > Users
- Find your user and copy the UUID
- In SQL Editor, run:
UPDATE profiles SET role = 'admin' WHERE id = 'your-user-uuid';
- Log out and log back in
As Admin:
- Register additional test accounts
- Go to Admin Dashboard > User Management
- Change roles as needed
- Navigate to Teacher Dashboard
- Click "Create Class"
- Fill in class details (name, section, description)
- Share the generated class code with students
- Create assignments with due dates
- Grade student submissions
- Navigate to Student Dashboard
- Click "Join Class"
- Enter the class code provided by teacher
- View assignments in the class
- Submit work before due date
- Check grades and feedback
classroom-app/
├── src/
│ ├── components/ # Reusable UI components
│ ├── contexts/ # React contexts
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utilities and configurations
│ ├── pages/ # Page components
│ ├── types/ # TypeScript type definitions
│ ├── App.tsx # Main app component
│ └── main.tsx # Entry point
├── SUPABASE_SETUP.md # Database setup guide
└── README.md
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
- Check that
.envfile exists in project root - Verify environment variable names start with
VITE_ - Restart the development server
- Verify Supabase project URL and anon key
- Check auth providers are enabled in Supabase
- Clear browser cache and cookies
- Verify RLS policies are created correctly
- Check user role in profiles table
- Review browser console for detailed errors
MIT License - feel free to use this project for learning or production.
