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 |
| 👥 Group Collaboration | 📚 Study Sessions | 🔄 Tool Integration |
|
• Study group management • Member role management • Private sessions |
• Video conferencing • Interactive whiteboard • Rich text notes • Collaborative code editor |
• Seamless tool switching • Session persistence • Resource sharing |
| 📊 Analytics | 💰 Subscription Plans | 🔐 Admin Features |
|
• Study time tracking • 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
| Node.js v18+ |
MongoDB Latest |
Redis Latest |
Docker Optional |
git clone https://github.com/Nupurshivani/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/btwshivam/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 downThis 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 startAPI 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.
