MindMesh is a comprehensive real-time collaborative study platform designed for students who want to study together remotely. It provides an integrated environment combining video conferencing, collaborative tools, and study management features in one seamless experience.
---| β¨ Features | π οΈ Tech Stack | π Architecture |
|---|---|---|
| π Getting Started | π’ Deployment | π API Docs |
| π€ Contributing | π License |
β’ Member role management
β’ Private sessions β’ Video conferencing
β’ Interactive whiteboard
β’ Rich text notes
β’ Collaborative code editor β’ Seamless tool switching
β’ Session persistence
β’ Resource sharing
β’ Time period analysis
β’ Progress visualization β’ Free & premium tiers
β’ Razorpay integration
β’ Plan management β’ User management
β’ Group oversight
β’ Content moderation
β’ Session control
| Frontend | Backend | Database | DevOps |
|---|---|---|---|
|
β’ Next.js 15 (App Router) β’ Tailwind CSS β’ React Context API β’ Socket.IO client β’ WebRTC / Simple-Peer β’ Fabric.js β’ Monaco Editor β’ TipTap β’ Recharts |
β’ Node.js β’ Express.js β’ RESTful API β’ JWT Authentication β’ Socket.IO β’ Cloudinary β’ Nodemailer β’ Node-cron |
β’ MongoDB β’ Mongoose β’ Redis Cache |
β’ Docker β’ Docker Compose β’ GitHub Actions β’ Winston logging |
MindMesh follows a modern microservices architecture:
βββββββββββββββ βββββββββββββββ βββββββββββββββ β Frontend ββββββΆβ Backend ββββββΆβ Database β β (Next.js) β β (Express) β β (MongoDB) β βββββββββββββββ βββββββββββββββ βββββββββββββββ β β β β β β βΌ βΌ βΌ βββββββββββββββ βββββββββββββββ βββββββββββββββ β WebRTC β β Socket.IO β β Redis β β (P2P) β β (Real-time)β β (Cache) β βββββββββββββββ βββββββββββββββ βββββββββββββββ
- Frontend: Next.js application with server-side rendering and client-side interactivity
- Backend: Express.js REST API with Socket.IO for real-time communication
- Database: MongoDB for data persistence with Redis for caching
- Real-Time Communication: WebRTC for peer-to-peer video/audio and Socket.IO for signaling
v18+ MongoDB
Latest Redis
Latest Docker
Optional
git clone https://github.com/oksaumya/MindMesh.git
cd MindMesh# Navigate to the backend directory cd backend # Install dependencies npm install # Start the development server npm run dev
# Navigate to the frontend directory cd frontend # Install dependencies npm install # Start the development server npm run dev
- Copy the example environment file
cp backend/.env.example backend/.env
- Update the environment variables with your configuration:
- MongoDB connection string
- JWT secrets
- Email credentials
- Cloudinary keys
- Redis configuration
- Google OAuth credentials (if using)
The easiest way to deploy the entire stack is using Docker Compose:
# Clone the repository git clone https://github.com/oksaumya/MindMesh.git cd MindMesh # Create .env file from example cp backend/.env.example backend/.env # Edit the .env file with your configuration # Build and start all services (backend and frontend) docker-compose up -d # To view logs docker-compose logs -f # To stop all services docker-compose down
This will start both the backend and frontend services. The backend will be available at http://localhost:5000 and the frontend at http://localhost:3000.
# Navigate to the backend directory cd backend # Build the Docker image docker build -t mindmesh-backend . # Run the container docker run -p 5000:5000 --env-file .env mindmesh-backend
# Navigate to the frontend directory cd frontend # Build the application npm run build # Start the production server npm start
API documentation is available at /api/docs when running the backend server.
| Key API Endpoints | |
|---|---|
/api/auth/* |
Authentication endpoints |
/api/users/* |
User management |
/api/groups/* |
Group operations |
/api/sessions/* |
Study session management |
/api/notes/* |
Note operations |
/api/code-snippets/* |
Code snippet management |
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your 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.
Built with β€οΈ by Saumya