HyperHive is a futuristic collaborative project management platform designed for students and project groups. Built with the modern MERN stack, it provides a seamless experience for managing project groups, tasks, notes, and virtual meetings in one place.
https://hyperhive-backend.onrender.com
https://hyperhive-frontend.onrender.com
- React.js (Vite)
- TailwindCSS v3.4
- React Router v6
- Axios for API calls
- React Icons
- Node.js
- Express.js
- MongoDB (with Mongoose)
- JWT for Authentication
- Socket.io for real-time features
- Render (Backend)
- Vercel/Netlify (Frontend)
- MongoDB Atlas (Database)
- Cloudinary (File Storage)
- Create and manage project groups
- Add/remove group members
- Group discussions and announcements
- Member role management (Admin/Regular)
- Create, assign, and track tasks
- Set due dates and priorities
- Task status updates (Pending/In Progress/Completed)
- Filter and sort tasks
- Create and share rich text notes
- Upload and manage project materials
- Organize notes by subjects/topics
- Version history for notes
- Schedule and join virtual project sessions
- Real-time video/audio conferencing
- Screen sharing capabilities
- Meeting recordings and notes
- Visual timeline of group activities
- Calendar view for tasks and meetings
- Important deadlines and events
- Progress tracking
- JWT Authentication
- Role-based access control
- Secure file storage
- Guest access with limited permissions
- Node.js (v16 or higher)
- npm or yarn
- MongoDB Atlas account or local MongoDB instance
-
Clone the repository
git clone https://github.com/vashu2003/HyperHive.git cd hyperhive -
Backend Setup
cd server npm install cp .env.example .env # Update .env with your configuration npm run dev
-
Frontend Setup
cd ../client npm install cp .env.example .env # Update VITE_API_BASE_URL with your backend URL npm run dev
-
Environment Variables Create a
.envfile in bothserverandclientdirectories with the following variables:Server (.env)
PORT=5000 MONGODB_URI=your_mongodb_uri JWT_SECRET=your_jwt_secret CLOUDINARY_CLOUD_NAME=your_cloudinary_name CLOUDINARY_API_KEY=your_cloudinary_key CLOUDINARY_API_SECRET=your_cloudinary_secretClient (.env)
VITE_API_BASE_URL=http://localhost:5000
HyperHive is containerized using Docker for consistent development and deployment. The application consists of two main services: frontend and backend, orchestrated with Docker Compose.
- Docker Desktop installed on your machine
- Docker Compose (included with Docker Desktop)
-
Clone the repository
git clone https://github.com/vashu2003/HyperHive.git cd hyperhive -
Set up environment variables
- Create
.envfiles in bothclientandserverdirectories - Use the examples provided in
.env.examplefiles
- Create
-
Build and start containers
docker-compose up --build
This will:
- Build the frontend React app
- Set up the backend Node.js server
- Start both services in development mode with hot-reloading
-
Access the application
- Frontend: http://localhost
- Backend API: http://localhost:5000
For production, you can build the optimized version using:
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up --buildHyperHive is configured for easy deployment on Render's cloud platform. The application uses:
- Web Service for the frontend
- Web Service for the backend API
- MongoDB Atlas for the database
- Render account
- MongoDB Atlas cluster
- Cloudinary account (for file storage)
-
Backend Deployment
- Create a new Web Service on Render
- Connect your GitHub repository
- Configure build command:
npm install - Configure start command:
node server.js - Add environment variables:
PORT=10000MONGODB_URI=your_mongodb_atlas_uriJWT_SECRET=your_jwt_secretCLOUDINARY_*credentials
-
Frontend Deployment
- Create a new Static Site on Render
- Connect your GitHub repository
- Set build command:
npm install && npm run build - Set publish directory:
dist - Add environment variable:
VITE_API_BASE_URL=your_backend_url
-
Environment Setup Ensure your environment variables are properly set in both services:
Backend (.env)
PORT=10000 MONGODB_URI=your_mongodb_uri JWT_SECRET=your_jwt_secret CLOUDINARY_CLOUD_NAME=your_cloudinary_name CLOUDINARY_API_KEY=your_cloudinary_key CLOUDINARY_API_SECRET=your_cloudinary_secretFrontend (.env)
VITE_API_BASE_URL=your_backend_url
- Base Image: Node.js 18 Alpine
- Port: 5000
- Environment: Development/Production
- Volumes: Local development files mounted for hot-reloading
- Base Image: Node.js 18 Alpine (build) + Nginx (production)
- Port: 80
- Build Process:
- Installs dependencies
- Builds production-optimized React app
- Serves static files via Nginx
The project includes GitHub Actions workflows for automated testing and deployment:
- Linting and testing on pull requests
- Automated deployment to Render on push to main branch
cd server
npm install
npm run devcd client
npm install
npm run dev# Start all services
docker-compose up
# Rebuild containers
docker-compose up --build
# View logs
docker-compose logs -f
# Stop containers
docker-compose downhyperhive/
├── client/ # Frontend React application
│ ├── public/ # Static files
│ └── src/ # Source code
│ ├── components/ # Reusable UI components
│ ├── context/ # React context providers
│ ├── pages/ # Page components
│ ├── services/ # API services
│ └── App.jsx # Main App component
│
└── server/ # Backend server
├── src/
│ ├── config/ # Configuration files
│ ├── controllers/ # Route controllers
│ ├── middleware/ # Custom middleware
│ ├── models/ # Database models
│ ├── routes/ # API routes
│ └── utils/ # Utility functions
└── server.js # Server entry point
- 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.
- Vite - Next Generation Frontend Tooling
- TailwindCSS - A utility-first CSS framework
- React Icons - Popular icons for React
- MongoDB Atlas - Cloud database service
Vashu Singh - @Vashu - rajputvashusingh@gmail.com
Project Link: https://github.com/vashu2003/HyperHive