A real-time virtual classroom application built with React.js, Node.js, Socket.IO, and PostgreSQL.
-
Real-time Communication
- Live chat between teachers and students
- Real-time classroom updates
- System notifications for user actions
-
Role-Based Access
- Student View
- Teacher View
- Manager View
-
File Management
- File upload/download
- Support for multiple file types (images, videos, PDFs, documents)
- File categorization (lectures, assignments, materials)
- File bookmarking system
-
Classroom Management
- Start/End class sessions
- Student attendance tracking
- Remove participants
- View classroom history
-
Frontend
- React.js
- Socket.IO Client
- React Router
- CSS for styling
-
Backend
- Node.js
- Express.js
- Socket.IO
- PostgreSQL
- Multer for file uploads
- Database Setup
psql -U hahikhan -d live_classroom -f backend/models/schema.sql- Backend Setup
cd backend
npm install
npm run dev- Frontend Setup
cd frontend
npm install
npm startCreate a .env file in the backend directory:
PORT=5000
DB_USER=your_db_user
DB_PASSWORD=your_db_password
DB_HOST=localhost
DB_PORT=5432
DB_NAME=live_classroom/api/files/upload- Upload files/api/files/download/:id- Download files/api/files/class/:classId- Get class files/api/classroom-history- Get classroom history
joinRoom- Join classroomchatMessage- Send chat messagefileUploaded- File upload notificationstartClass- Start class sessionendClass- End class sessionleave- Leave classroom
├── backend/
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ ├── server.js
│ └── socket.js
└── frontend/
├── public/
└── src/
├── components/
└── App.js
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License.