ConnectAid is a full-stack MERN (MongoDB, Express, React, Node.js) platform designed to bridge the gap between compassion and action. It connects generous donors with those in need, facilitating transparent and easy-to-manage appeals for medical, educational, emergency, and community causes.
- Features
- Tech Stack
- Installation
- Usage
- API Reference
- Configuration
- Architecture
- Contributing
- License
- User Authentication: Secure Sign Up and Login functionality using JWT (JSON Web Tokens).
- Appeal Management: Users can create, edit, delete, and view their own appeals.
- Categorized Appeals: Organize appeals by categories such as Medical, Education, Emergency, and Community.
- Donation System: Seamless donation process to support active appeals.
- Real-time Updates: Track raised amounts against target goals.
- Responsive Design: Fully responsive UI built with React, Tailwind CSS, and Framer Motion.
- Image Uploads: Support for uploading images for appeals.
- Containerized: Fully dockerized application with Nginx reverse proxy.
- CI/CD: Integrated Jenkins pipeline and Selenium E2E testing.
- Frontend: React, TypeScript, Tailwind CSS, Framer Motion, Redux Toolkit, Vite.
- Backend: Node.js, Express.js, MongoDB (Mongoose).
- DevOps: Docker, Docker Compose, Nginx, Jenkins.
- Testing: Selenium, Mocha.
- Node.js (v18+)
- Docker & Docker Compose (Recommended)
- MongoDB (if running locally without Docker)
-
Clone the repository
git clone <repository-url> cd Connect_Aid
-
Create Environment File Create a
.envfile inbackEnd/(see Configuration). -
Run with Docker Compose
docker-compose up --build
The application will be available at:
- Frontend:
http://localhost:80(via Nginx) orhttp://localhost:5173(direct) - Backend:
http://localhost:5000
- Frontend:
-
Clone the repository
git clone <repository-url> cd Connect_Aid
-
Backend Setup
cd backEnd npm install # Create .env file (see Configuration section) npm start
-
Frontend Setup
cd frontEnd npm install npm run dev
Users can sign up for a new account or log in to an existing one.
Once logged in, navigate to the "Raise" section to create a new appeal. Fill in the title, description, target amount, and category.
Browse active appeals and donate to causes that matter to you.
-
Get all active appeals
GET /api/appeals
-
Create an appeal
POST /api/appeals
Body:
title,description,targetAmount,category,image(file) -
Get single appeal
GET /api/appeals/:id
- Make a donation
Body:
POST /api/donations/:appealId
{ "amount": 100 }
-
Register
POST /api/auth/register
-
Login
POST /api/auth/login
Create a .env file in the backEnd/ directory with the following variables:
NODE_ENV=production
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
JWT_EXPIRE=24h
CURRENT_HOST=localhost
FRONTEND_PORT=80
ADDITIONAL_ORIGINS=http://localhost:5173The project follows a standard MERN architecture with a separate frontend and backend, orchestrated by Docker.
Connect_Aid/
├── backEnd/ # Express.js Backend
│ ├── models/ # Mongoose Models (User, Appeal)
│ ├── routes/ # API Routes
│ ├── middleware/ # Auth Middleware
│ └── uploads/ # Image Uploads
├── frontEnd/ # React Frontend
│ ├── src/
│ │ ├── components/ # Reusable Components
│ │ ├── pages/ # Application Pages
│ │ ├── services/ # API Services
│ │ └── api/ # Axios Configuration
├── tests/ # Selenium E2E Tests
├── docs/ # Documentation & Images
└── docker-compose.yaml # Container Orchestration
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
Distributed under the MIT License. See LICENSE for more information.



