A community-driven platform that connects people who need help with those willing to offer assistance. Whether it's an emergency situation or general community support, HelpHive makes it easy to reach out and lend a helping hand.
live link: https://helphiveforus.vercel.app/
- π Help Requests: Create and manage help requests with location-based matching
- πββοΈ Offer Help: Browse and respond to help requests in your area
- π¬ Real-time Chat: Instant messaging between help seekers and helpers using Socket.IO
- π¨ Emergency Support: Flag urgent requests for immediate attention
- π± Responsive Design: Beautiful, mobile-friendly interface built with React and Tailwind CSS
- π Secure Authentication: JWT-based authentication with secure user sessions
- π Dashboard: Personal dashboard to track your help requests and offers
- π Notifications: Real-time notifications for new messages and help requests
- π Location-based: Connect with helpers and those in need in your local area
- React 19 - Modern UI library
- Vite - Fast build tool and development server
- Tailwind CSS - Utility-first CSS framework
- React Router DOM - Client-side routing
- Zustand - State management
- Axios - HTTP client
- Socket.IO Client - Real-time communication
- React Hot Toast - Toast notifications
- Lucide React - Beautiful icons
- Node.js - JavaScript runtime
- Express.js - Web application framework
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- Socket.IO - Real-time bidirectional communication
- JWT - JSON Web Tokens for authentication
- Bcrypt - Password hashing
- Cloudinary - Image and media management
- CORS - Cross-origin resource sharing
HelpHive/
βββ backend/
β βββ config/
β β βββ cloudinary-config.js # Cloudinary configuration
β β βββ mongoose-connection.js # MongoDB connection setup
β βββ controllers/
β β βββ chat.controller.js # Chat functionality
β β βββ helper.controller.js # Helper operations
β β βββ issue.controller.js # Issue/report handling
β β βββ notification.controller.js # Notification management
β β βββ user.controller.js # User authentication & profile
β βββ middlewares/
β β βββ authToken.js # JWT authentication middleware
β βββ models/
β β βββ chat.model.js # Chat schema
β β βββ help.model.js # Help request schema
β β βββ issue.model.js # Issue/report schema
β β βββ notification.model.js # Notification schema
β β βββ user.model.js # User schema
β βββ routes/
β β βββ chat.route.js # Chat endpoints
β β βββ help.route.js # Help request endpoints
β β βββ issue.route.js # Issue/report endpoints
β β βββ notification.route.js # Notification endpoints
β β βββ user.route.js # User endpoints
β βββ utils/
β β βββ genToken.js # JWT token generation
β βββ index.js # Server entry point
β βββ socket.js # Socket.IO configuration
β βββ package.json
βββ frontend/
β βββ src/
β β βββ components/
β β β βββ AboutUs.jsx # About page component
β β β βββ AuthPage.jsx # Authentication page
β β β βββ Chat.jsx # Chat interface
β β β βββ Dashboard.jsx # User dashboard
β β β βββ Footer.jsx # Footer component
β β β βββ Help.jsx # Help request component
β β β βββ HelpRequestForm.jsx # Help request form
β β β βββ HeroSection.jsx # Landing page hero
β β β βββ Navbar.jsx # Navigation component
β β β βββ OfferHelp.jsx # Offer help component
β β β βββ RecentActivity.jsx # Recent activity feed
β β β βββ Report.jsx # Report/issue component
β β β βββ SliderAuthForm.jsx # Authentication form
β β βββ store/
β β β βββ chatStore.js # Chat state management
β β β βββ helpStore.js # Help requests state
β β β βββ issueStore.js # Issues state
β β β βββ notificationStore.js # Notifications state
β β β βββ userAuth.js # Authentication state
β β βββ utils/
β β β βββ axiosInstance.js # Axios configuration
β β βββ App.jsx # Main application component
β β βββ main.jsx # Application entry point
β βββ public/ # Static assets
β βββ package.json
βββ README.md
- Node.js (v16 or higher)
- MongoDB (local installation or MongoDB Atlas)
- Cloudinary account (for image uploads)
-
Clone the repository
git clone https://github.com/NishantRaj278/HelpHive.git cd HelpHive -
Backend Setup
cd backend npm installCreate a
.envfile in the backend directory:MONGODB_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret_key CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name CLOUDINARY_API_KEY=your_cloudinary_api_key CLOUDINARY_API_SECRET=your_cloudinary_api_secret PORT=5000
-
Frontend Setup
cd ../frontend npm installCreate a
.envfile in the frontend directory:VITE_API_URL=http://localhost:5000/api
-
Start the Backend Server
cd backend npm startThe backend server will run on
http://localhost:5000 -
Start the Frontend Development Server
cd frontend npm run devThe frontend will run on
http://localhost:5173
POST /api/user/register- User registrationPOST /api/user/login- User loginPOST /api/user/logout- User logout
GET /api/help- Get all help requestsPOST /api/help- Create a new help requestPUT /api/help/:id- Update help requestDELETE /api/help/:id- Delete help request
GET /api/chat/:helpId- Get chat messages for a help requestPOST /api/chat- Send a new message
GET /api/notifications- Get user notificationsPUT /api/notifications/:id/read- Mark notification as read
- Sign Up/Login: Create an account or log in to access the platform
- Request Help: Create a help request with details about what you need
- Offer Help: Browse available help requests and offer assistance
- Chat: Communicate with helpers or help seekers through real-time chat
- Dashboard: Manage your help requests and track your community contributions
- Fork the repository
- Create a 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 ISC License.
For questions or support, please reach out to the development team.
HelpHive - Building stronger communities through mutual aid and support πβ€οΈ