Cause Connect is a web application that helps users find and connect with volunteer opportunities organized by local NGOs and community initiatives. The app aims to bridge the gap between volunteers and organizations, allowing for easy event discovery, registration, and participation.
YouTube link - https://youtu.be/loH2dCFAVb4?si=GHSRxwNOKR0hLQfx
- Event Discovery: Browse and search for volunteer events in your area.
- User Authentication: Sign up, log in, and secure access with JWT authentication.
- Event Registration: Register for events, view past events, and receive event updates.
- Organizer Dashboard: NGOs and organizations can create, update, and manage events.
- Pagination and Loading Effects: Smooth and dynamic pagination for events, with loading indicators for a seamless experience.
- Frontend: React, TypeScript, Tailwind CSS, Daisy UI
- Backend: Node.js, Express.js
- Database: MongoDB (using MongoDB Atlas)
- Authentication: JSON Web Tokens (JWT)
- Map Integration: OpenStreetMap for location display
Before you begin, make sure you have the following installed:
- Node.js (v14 or higher)
- MongoDB Atlas account and cluster (or a local MongoDB instance)
- Clone the repository:
git clone https://github.com/HackXwizards/CauseConnect.git
- Navigate into the project folder:
cd CauseConnect
- Install dependencies for both Frontend and Backend:
cd backend npm install cd ../frontend npm install
Create a .env file in the root of the backend folder and add the following variables:
- MongoDB Connection String
MONGO_URL=mongodb+srv://<username>:<password>@cluster0.mongodb.net/<your-database>?retryWrites=true&w=majority
- JWT SECRET
JWT_KEY=your_jwt_secret_key JWT_EXPIRES_IN=90d
- PORT
PORT=5000
- Start the Backend Server:
cd backend npm start
- Start the Frontend Development Server:
cd ../Frontend npm run dev
- Open https://cause-connect-flax.vercel.app/ in your browser to view the app.
In-app virtual assistant: to suggest event ideas and autofill forms
In-app Messaging: Enable direct communication between volunteers and organizers.
Notifications: Send reminders and updates for upcoming events.