An open-source platform connecting disaster-affected families with donors to rebuild homes in Sri Lanka.
ReBuild Homes SriLanka is a transparent, verification-based platform that connects people who lost their homes in disasters with donors who want to help rebuild. While we initially launched this as a live service, we discovered that similar platforms with more extensive features already exist in the ecosystem. To maximize impact, we're open-sourcing this project so communities, NGOs, and developers worldwide can use, adapt, and improve it for their disaster relief efforts.
-
π Dual Portal System
- Beneficiary portal for families to submit verified applications
- Donor portal for individuals/organizations to offer support
-
β Verification System
- Document verification (GN letters, damage photos)
- Application review and approval workflow
- Priority scoring based on vulnerability
-
π€ Smart Matching
- Connect verified families with donors
- Full or partial house sponsorship
- Pooled funding for high-priority cases
-
π Admin Dashboard
- Application management
- Donor tracking
- Progress monitoring
- Analytics and reporting
-
π Privacy & Security
- Firebase Authentication
- Role-based access control (Admin, Beneficiary, Donor)
- Firestore security rules
- Protected sensitive data
- Frontend: Angular 21 with TypeScript
- Backend: Firebase (Firestore, Authentication, Storage, Hosting)
- Styling: Tailwind CSS
- State Management: RxJS
- Node.js (v18 or higher)
- npm or yarn
- Firebase account
For detailed setup instructions, see our π Setup Guide.
# Clone repository
git clone https://github.com/roshanevala/ReHome-SriLanka.git
cd ReHome-SriLanka
# Install dependencies
npm install
# Copy environment templates
cp src/environments/environment.ts.example src/environments/environment.ts
cp src/environments/environment.prod.ts.example src/environments/environment.prod.ts
# Add your Firebase config to environment.ts
# Then run the dev server
npm run devVisit http://localhost:4200/ to see the app running!
Comprehensive documentation is available in the /docs directory:
- π Setup Guide - Step-by-step installation instructions
- π» Development Guide - Developer reference and best practices
- π’ Deployment Guide - Production deployment instructions
- π Security Policy - Security best practices and vulnerability reporting
- Project Overview - System architecture and features
- Firebase Setup - Detailed Firebase configuration
- Database Schema - Firestore data structure
- User Roles & Permissions - Access control system
- Security & Privacy - Data protection measures
- API Specification - Service interfaces
- Implementation Roadmap - Development phases
- Scripts Documentation - Admin utility scripts guide
This platform can be adapted for:
- Natural disaster relief (floods, earthquakes, cyclones)
- War/conflict housing reconstruction
- Community housing programs
- NGO-managed relief operations
- Government disaster response initiatives
We welcome contributions from the community! Whether you're fixing bugs, adding features, or improving documentation, your help is appreciated.
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
- Check our Setup Guide for detailed installation instructions
- Read the Contributing Guidelines
- Browse existing issues or create a new one
- Fork the repository and create your feature branch
- Submit a pull request with a clear description of your changes
Build fails after cloning
rm -rf node_modules package-lock.json
npm installFirebase connection errors
- Verify your Firebase config in
src/environments/environment.ts - Ensure Firestore rules are deployed:
firebase deploy --only firestore:rules - Check that all Firebase services (Auth, Firestore, Storage) are enabled
Environment file errors
- Copy the
.examplefiles:cp src/environments/environment.ts.example src/environments/environment.ts - Fill in your Firebase credentials from Firebase Console
- Ensure no trailing commas or syntax errors in the config
Admin dashboard not accessible
- Run the admin setup script:
node scripts/set-admin.mjs your@email.com --confirm - Sign out and sign back in to refresh your token
- See scripts/README.md for detailed admin setup instructions
Port 4200 already in use
ng serve --port 4300For more troubleshooting help, see SETUP.md or create an issue.
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with the intention to help disaster-affected families in Sri Lanka
- Inspired by the resilience of communities recovering from natural disasters
- Thanks to all contributors and supporters
Roshane De Silva - @roshanevala
Project Link: https://github.com/roshanevala/ReHome-SriLanka
Note: This platform was initially developed as a live service but is now open-sourced to enable wider adoption and community-driven improvements. We encourage organizations and developers to use this as a foundation for their disaster relief initiatives.