Smart Class
Smart Class is a comprehensive Learning Management System (LMS) designed to transform education through technology and innovation. The platform supports real-time virtual classrooms, secure data management, integrated communication tools, and more.
Table of Contents
- Features
- Project Structure
- Tech Stack
- Getting Started
- Environment Variables
- Scripts
- Usage
- Contribution
- License
Features
- Comprehensive Learning Management System
- Real-time Virtual Classrooms
- Advanced Analytics and Reporting
- Secure Student Data Management
- Integrated Communication Tools
- Automated Administrative Tasks
- Mobile-friendly Platform
- Dedicated Technical Support
Highlighted Platform Features
- Interactive Learning: Engage with course materials through an interactive platform.
- Live Classes: Attend virtual classes with real-time interaction.
- Instant Communication: Integrated messaging for students and teachers.
- Progress Tracking: Monitor academic progress and assignment completion.
- Collaborative Learning: Group projects and assignments.
- Personalized Learning: Adaptable to individual student needs.
- Secure Platform: Robust data privacy and security.
Project Structure
Minor-Project2/
├── client/ # Frontend (React + TypeScript + Vite)
│ ├── src/
│ ├── public/
│ ├── index.html
│ ├── package.json
│ └── ...
├── server/ # Backend (Node.js + Express + TypeScript)
│ ├── src/
│ ├── prisma/
│ ├── package.json
│ └── ...
└── ...
Tech Stack
- Frontend: React, TypeScript, Vite, Tailwind CSS, ShadCn UI,Socket.io, 100msLive, Axios
- Backend: Node.js, Express, TypeScript, Prisma, PostgreSQL, Socket.io, Zod, JWT, Nodemailer
- Other: Supabase, ESLint, Prettier
Getting Started
Prerequisites
- Node.js (v18+ recommended)
- npm or yarn
- PostgreSQL (for backend database)
Installation
1. Clone the repository
git clone https://github.com/Abhishek-Gaire/Minor-Project2.git
cd Minor-Project2
2. Install dependencies
Client:
cd client
npm install
Server:
cd ../server
npm install
3. Set up environment variables
Create .env files in both client and server directories. (See Environment Variables)
4. Database setup (for server)
- Configure your PostgreSQL connection in
server/.env. - Run Prisma migrations if using Prisma ORM:
bash npx prisma migrate dev
5. Start the development servers
Client:
npm run dev
Server:
npm run dev
Environment Variables
server/.env
DATABASE_URL=postgresql://user:password@localhost:5432/educonnect
JWT_SECRET=your_jwt_secret
[email protected]
GMAIL_PASSWORD=your_app_password
SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_supabase_key
PORT=5000
NODE_ENV=development for development
NODE_ENV=production for production
FRONTEND_URL=http://localhost:5173
BUCKET_NAME=your_supabase_storage_bucket_name
...
client/.env
VITE_BACKEND_URI=http://localhost:5000
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_key
VITE_TEACHER_ROOMCODE = your_teacher_roomcode from 100msLive
VITE_STUDENT_ROOMCODE = your_student_roomcode from 100msLive
...
Scripts
Client
npm run dev– Start frontend dev servernpm run build– Build for productionnpm run preview– Preview production buildnpm run lint– Run ESLint
Server
npm run dev– Start backend with nodemonnpm run build– Compile TypeScriptnpm start– Start compiled server
Usage
- Access the frontend at
http://localhost:5173(default Vite port). - Backend API runs at
http://localhost:5000. - Register as a student, teacher, or admin to explore features.
- Use the messaging, assignment, and classroom modules for real-time collaboration.
Contribution
- Fork the repository.
- Create a new branch for your feature or fix.
- Commit your changes with clear messages.
- Open a Pull Request describing your changes.
License
This project is licensed under the ISC License.
Contact
For support or inquiries, please contact the project maintainers.