Status: Active Development
Last Updated: May 14, 2026
Vision: To create a transparent, efficient, and donor-friendly platform that empowers humanitarian organizations to maximize their impact in East Africa by efficiently managing resources and [...]
To get the project up and running on your local machine, follow these steps.
You need a local server environment with PHP and MySQL.
- XAMPP (cross-platform)
- WAMP (for Windows)
- MAMP (for macOS)
Import the database/database.sql file into your MySQL database (e.g., via phpMyAdmin). This will create the necessary tables and schema.
Copy the contents of config/db.php and update the credentials to match your local database setup.
// In config/db.php
define('DB_HOST', 'localhost');
define('DB_USER', 'your_db_user');
define('DB_PASSWORD', 'your_db_password');
define('DB_NAME', 'ngo_project');The admin panel is protected. You need to create an admin user in the admin_users table.
Insert the Admin User: Execute the following SQL query in your database, using your desired plain text password.
INSERT INTO `admin_users` (`username`, `password`, `role`)
VALUES ('admin', 'your_plaintext_password_here', 'admin');Place the project files in your server's web directory (e.g., htdocs for XAMPP) and navigate to the application in your browser.
- User Panel:
http://localhost/NGO-Project/Users-panel/ - Admin Panel:
http://localhost/NGO-Project/admin-panel/admin-login.html
Browser Compatibility:
- Chrome (recommended), Firefox, Safari, Edge
- Backend: PHP 7.4+
- Database: MySQL
- Frontend: HTML5, CSS3, JavaScript (ES6+ Asynchronous Fetch API)
- Server Environment: Apache/Nginx
| Language | Percentage |
|---|---|
| JavaScript | 33.7% |
| PHP | 30.2% |
| HTML | 21.0% |
| CSS | 15.1% |
NGO-Project/
├── admin-panel/ # Admin-facing dashboard and management pages
│ ├── admin-auth.js # Client-side session check
│ ├── donor.js # CRUD logic for donors
│ ├── script.js # Dashboard stats logic
│ └── *.html # Admin HTML files
├── api/ # Backend PHP API endpoints
│ ├── admin/ # Admin-specific actions (login, etc.)
│ └── donations/ # CRUD and stats for donations
├── config/
│ └── db.php # Database connection settings
├── database/
│ └── database.sql # SQL schema file
├── includes/
│ └── session.php # Server-side session handling
├── Users-panel/ # Public-facing user pages
│ ├── donation-handler.js # Client-side library for donation API
│ └── *.html # User HTML files
├── DONATIONS_API.md # Detailed API documentation for donations
└── README.md # This file
This project features a comprehensive RESTful API for managing donations. For detailed information on endpoints, parameters, and example responses, please see the DONATIONS_API.md file.
- Visit the Landing Page (
Users-panel/index.html) to explore our mission and programs. - Make a Donation by clicking "Donate Now", filling out the secure form, and choosing a payment method.
- Track Your Impact through confirmations and impact stories.
- Log In at
admin-panel/admin-login.htmlwith the credentials you created. - View Dashboard for a real-time overview of key metrics.
- Manage Donors in the "Donors" section (add, edit, delete).
- Track Donations in the "Donations" section (view, filter, search).
- Generate Reports for financial summaries and trend analysis.
- Manage Communications to send messages to donors.
- Donation Form Intelligence: URL-based program pre-selection, dynamic payment fields, and integrated payment SDKs.
- Admin Dashboard: Real-time statistic cards and interactive data tables for full control over records.
- Decoupled Backend: A clean PHP/MySQL backend API handles all data logic, separate from the frontend presentation.
- Admin Authentication: Secure login and session management for protected routes.
- SQL Injection Prevention: Use of prepared statements in all database queries.
- Password Hashing: Donor passwords are securely hashed using
password_hash()(Note: Admin login is configured for plain text locally). - Server-Side Validation: All incoming data is validated on the server to ensure integrity.
We operate across East Africa with focus areas in:
- 🇰🇪 Kenya
- 🇺🇬 Uganda
- 🇸🇸 South Sudan
Program Areas:
- Child Protection: Ensuring safety and rights for vulnerable children.
- Clean Water: Providing safe drinking water to rural communities.
- Education: Supporting schools and learning resources.
- Health & Nutrition: Improving medical access and nutrition programs.
📈 Impact Metrics:
- 12+ Communities Reached
- 5,000+ Lives Impacted
- 3 Active Countries
Donation Flow:
- User selects a program from the landing page.
- User fills out the donation form.
- On submission, JavaScript sends the data to the
POST /api/donations/create.phpendpoint. - The PHP backend validates the data and inserts it into the
donationstable in the MySQL database. - A success or error message is returned to the user.
Admin Workflow:
- Admin logs in via
admin-login.html, which calls thePOST /api/admin/login.phpendpoint. - Upon success, a PHP session is created on the server.
- Each admin page is protected by
admin-auth.js, which verifies the active session with the server. - The dashboard fetches data from the API (e.g.,
GET /api/donations/stats.php). - Admin performs CRUD operations by calling the relevant API endpoints.
- Backend API development (PHP)
- Database implementation (MySQL)
- User authentication and registration
- Email Notification System: Automate thank-you emails and receipts.
- SMS Integration: Send SMS thank-you messages.
- Advanced Analytics: A more detailed analytics dashboard with charts.
- Payment Gateway Integration: Add Stripe and M-Pesa.
- Volunteer Management Module: A system for managing volunteers.
- Event Scheduling Platform: For organizing NGO events.
- Mobile-Responsive Optimization: Further enhance mobile views.
- Multi-language Support.
We welcome contributions from developers and designers! Here's how to help:
- Fork the repository
- Create a feature branch:
git checkout -b feature/YourFeatureName