An open-source crisis relief management platform connecting people in need with volunteers, donors, and relief organizations.
Quick Start β’ Documentation β’ Contributing
- Overview
- Features
- Technology Stack
- Quick Start
- Testing Credentials
- Documentation
- Project Structure
- Contributing
- License
Relief Connect is a full-stack crisis relief management platform designed to coordinate emergency assistance during natural disasters and crises. The platform enables:
- Individuals to request help with location-based needs
- Volunteer Organizations to manage relief camps and coordinate efforts
- Donors to contribute resources to specific requests
- Administrators to oversee and manage the entire system
Built with modern technologies and best practices, Relief Connect provides a scalable, secure, and user-friendly solution for crisis management.
- π Multi-Role Authentication - Users, Volunteer Clubs, Admins with JWT-based security
- π Help Request Management - Location-based requests with urgency levels and categories
- ποΈ Relief Camp Management - Volunteer clubs can create and manage relief camps
- π Donation System - Track donations with status workflow
- π₯ Volunteer Club System - Organizations can register and manage memberships
- πΊοΈ Interactive Mapping - Leaflet maps with color-coded markers and filtering
- π¨βπΌ Admin Dashboard - Comprehensive system management and analytics
- π Multi-Language Support - English, Sinhala, and Tamil
- Next.js 15 - React framework with SSR/SSG
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first styling
- shadcn/ui - Accessible UI components
- Leaflet - Interactive maps
- Express.js - Web framework
- PostgreSQL - Relational database
- Sequelize - ORM for database operations
- JWT - Authentication tokens
- TypeScript - Type-safe backend
- NX Monorepo - Workspace management
- Docker - Containerization
- GitHub Actions - CI/CD
- Node.js 18.x or higher
- PostgreSQL 14.x or higher (only if running backend locally)
- Yarn 4.x (via Corepack)
# Clone repository
git clone https://github.com/CodeSchool-LK/relief-connect.git
cd relief-connect
# Enable Corepack
corepack enable
# Install dependencies
yarn install
# Build shared library
yarn shared:buildUse the deployed development API - no backend setup required!
- Set up Frontend Environment (
apps/web/.env.local):
# Use the deployed dev API
NEXT_PUBLIC_API_URL=https://dev-api.pasindusampath.com
# Map Configuration
NEXT_PUBLIC_MAP_TILE_URL=https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png- Start Frontend Only:
yarn web:dev # Frontend on port 3001Access the application:
- Frontend: http://localhost:3001
- API: Uses https://dev-api.pasindusampath.com (no local backend needed)
Run both frontend and backend locally:
-
Set up Backend Environment (
apps/api/.env):- Copy
apps/api/env.exampletoapps/api/.env - Configure PostgreSQL credentials as shown in
env.example:DB_HOST=localhostDB_PORT=5432DB_NAME=nx_monorepo_devDB_USER=postgresDB_PASSWORD=postgres(or your PostgreSQL password)
- Set JWT secrets and other required variables
- Copy
-
Set up Frontend Environment (
apps/web/.env.local):
# Use local API
NEXT_PUBLIC_API_URL=http://localhost:3000
# Map Configuration
NEXT_PUBLIC_MAP_TILE_URL=https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png- Start Development Servers:
yarn api:dev # Terminal 1 - Backend on port 3000
yarn web:dev # Terminal 2 - Frontend on port 3001Access the application:
- Frontend: http://localhost:3001
- API: http://localhost:3000
π Read Full Quick Start Guide β
- Frontend: https://dev-web.pasindusampath.com/
- Backend API: https://dev-api.pasindusampath.com/
- Username:
pasindusampath - Password:
77889900
- Username:
test-club - Password:
123456789
- No password required
- Users can log in using only their unique username
- You can create additional volunteer club accounts through the Admin Panel
Tip: To test the application without running a local backend, set
NEXT_PUBLIC_API_URL=https://dev-api.pasindusampath.comin yourapps/web/.env.localfile and run only the frontend withyarn web:dev.
Comprehensive documentation is available in the docs/ directory:
| Document | Description |
|---|---|
| Overview | Project purpose, goals, and vision |
| Features | Detailed feature breakdown |
| Technology Stack | Complete tech stack with versions |
| Architecture | System architecture and design patterns |
| Quick Start | Step-by-step setup instructions |
| Project Structure | Directory structure and organization |
| API Reference | Complete API endpoint documentation |
| Authentication & Authorization | Auth system and RBAC |
| Database Schema | Database tables and relationships |
| Deployment | Production deployment guide |
| Development | Development workflows and guidelines |
| Contributing | Contribution guidelines |
relief-connect/
βββ apps/
β βββ api/ # Express.js Backend
β βββ web/ # Next.js Frontend
βββ libs/
β βββ shared/ # Shared code library
βββ docs/ # Documentation
βββ docker-compose.yml # Docker orchestration
βββ package.json # Root package.json
π Read Full Project Structure β
- Local Development:
http://localhost:3000 - Dev Environment:
https://dev-api.pasindusampath.com - Production:
https://api.yourdomain.com
POST /api/auth/login- User authenticationGET /api/help-requests- Get all help requestsPOST /api/help-requests- Create help requestGET /api/camps- Get all relief campsPOST /api/camps- Create camp (Volunteer Club)GET /api/volunteer-clubs- Get all volunteer clubsGET /api/admin/stats- System statistics (Admin)
π Read Full API Reference β
-
Build Docker images
docker-compose build
-
Start services
docker-compose up -d
-
View logs
docker-compose logs -f
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Commit following Conventional Commits
- Push to your branch (
git push origin feature/amazing-feature) - Open a Pull Request
π Read Full Contributing Guide β
The project includes Docker Compose files for different environments:
docker-compose.yml- Base configurationdocker-compose.dev.yml- Developmentdocker-compose.qa.yml- QA environmentdocker-compose.staging.yml- Stagingdocker-compose.prod.yml- Production
This project is licensed under the MIT License - see the LICENSE file for details.
- Issues: GitHub Issues
- Documentation: See
docs/directory - Questions: Open a discussion on GitHub
- Built with β€οΈ for crisis relief coordination
- Inspired by the need for efficient disaster response systems
- Thanks to all contributors and volunteers
- Next.js Documentation
- Express.js Documentation
- Sequelize Documentation
- Leaflet Documentation
- TypeScript Documentation
- NX Documentation
Built with β€οΈ to help connect people in need with those who can help