Lumio is a modern Learning Management System built with React, TypeScript, Express, and Prisma. It provides a comprehensive platform for educational institutions with AI-powered features for enhanced learning and teaching experiences.
- Class Management: Create and manage classes with unique join codes
- Assignment System: Create, distribute, and submit assignments
- User Roles: Student, Teacher, and Admin role-based access control
- Grade Tracking: Comprehensive grading system with analytics
- Submission Viewer: View and manage student submissions
- AI Grading Assistant: Automated grading with AI feedback
- AI Assignment Generator: Generate assignments with various question types
- Student AI Assistant: Help with upcoming assignments and grade calculations
- Teacher AI Assistant: Classroom management and assignment creation assistance
- JWT Authentication: Secure token-based authentication
- Role-based Access Control: Different permissions for students, teachers, and admins
- Demo User System: Built-in demo accounts for testing
- React 18 with TypeScript
- Vite for fast development and building
- React Router for navigation
- CSS Modules for styling
- Express.js with TypeScript
- Prisma ORM with SQLite database
- JWT for authentication
- OpenAI API for AI features
- ESLint for code linting
- TypeScript for type safety
- Node.js runtime environment
- Node.js (v18 or higher)
- npm or yarn
- OpenAI API key (for AI features)
-
Clone the repository
git clone https://github.com/Rishikpamuru/Lumio.git cd Lumio -
Install dependencies
npm install
-
Set up environment variables
Create a
.envfile in theserverdirectory:DATABASE_URL="file:./dev.db" JWT_SECRET="your-jwt-secret-key" OPENAI_API_KEY="your-openai-api-key"
-
Set up the database
cd server npx prisma migrate dev npx prisma db seed -
Start the development servers
Terminal 1 (Backend):
cd server npm run devTerminal 2 (Frontend):
cd client npm run dev
The system includes built-in demo accounts for testing:
- Admin: Username:
12345678, Password:password - Teacher: Username:
87654321, Password:password - Student: Username:
11223344, Password:password
- Log in with student credentials
- Join classes using join codes provided by teachers
- View and submit assignments
- Track grades and use the AI assistant for help
- Log in with teacher credentials
- Create and manage classes
- Create assignments (manually or with AI assistance)
- Grade submissions and provide feedback
- Use AI grading for faster assessment
- Log in with admin credentials
- Manage users and classes
- Access development tools and system overview
This application integrates with OpenAI's GPT-4 model to provide:
- Automated Grading: AI analyzes student submissions and provides grades with feedback
- Assignment Generation: AI creates assignments with multiple choice questions and essays
- Student Assistant: Helps students with assignment planning and grade calculations
- Teacher Assistant: Assists with classroom management and curriculum planning
Note: AI features require a valid OpenAI API key. The AI is used to enhance the educational experience but should be used in conjunction with human oversight.
Lumio/
βββ client/ # React frontend
β βββ src/
β β βββ components/ # Reusable React components
β β βββ pages/ # Page components
β β βββ ...
βββ server/ # Express backend
β βββ src/
β β βββ routes/ # API endpoints
β β βββ services/ # Business logic
β β βββ middleware/ # Express middleware
β β βββ ...
β βββ prisma/ # Database schema and migrations
βββ README.md
- This is a development/demo version with simplified authentication
- Demo accounts use plaintext passwords for ease of testing
- In production, implement proper password hashing and security measures
- Secure your OpenAI API key and other environment variables
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
This project incorporates AI technology powered by OpenAI's language models to enhance educational experiences. The AI features include automated grading assistance, assignment generation, and educational support tools. While AI can provide valuable assistance, all AI-generated content should be reviewed and validated by human educators. The AI is designed to augment, not replace, human judgment in educational settings.
- User auth (teacher/student roles)
- Classes with join codes
- Assignments & Quizzes (MCQ auto-grading)
- Submissions with grading + feedback (manual feedback to add later)
- Basic dashboards & placeholder analytics
npm install
npm install -w client
npm install -w server
Copy server/.env.example to server/.env and fill values.
Adjust DATABASE_URL (Postgres example). Then:
cd server
npx prisma migrate dev --name init
From repo root:
npm run dev:server
In another terminal:
npm run dev:client
Or concurrently (may differ on Windows):
npm run dev
API default runs on http://localhost:4000 and client on http://localhost:5173.
Put AI key in server/.env as AI_API_KEY=.... The file src/services/aiKey.ts exposes a helper getAIKey() for any AI feature modules.
Made with β€οΈ for education