Bridging Kindness, Connecting Needs.
A modern web platform connecting donors with beneficiaries to facilitate transparent and efficient goods donation.
Donasiaku is designed to solve the problem of unused goods piling up while many people are in need. We provide a seamless platform where:
- Donors can easily list items they wish to give away.
- Beneficiaries can browse available items and request them directly.
- Both parties can communicate securely via an integrated chat system to arrange delivery.
Built with a Monorepo architecture, combining the robustness of Laravel (API) and the interactivity of React (UI).
- Framework: Laravel 11
- Language: PHP 8.2+
- Auth: Laravel Sanctum (Token based)
- Database: MySQL
- Framework: React.js (Vite)
- Styling: Tailwind CSS + PostCSS
- State Management: React Hooks
- HTTP Client: Axios
- Routing: React Router DOM
- Manage Donations: Create, update, and delete donation listings easily.
- Request Approval: Review incoming requests from beneficiaries.
- Live Chat: Chat directly with potential recipients to discuss logistics.
- Browse Catalog: Filter available donations by category or recency.
- Request Items: One-click request mechanism.
- Request History: Track the status of your applications (Pending/Approved/Rejected).
- Secure Authentication: Registration and Login flows for different roles.
- Real-time Validation: Form inputs are validated on both client and server.
- Responsive Design: Optimized for Desktop, Tablet, and Mobile.
Follow these steps to set up the project locally.
- Node.js (v18+)
- Composer
- PHP (v8.2+)
- MySQL Server
git clone [https://github.com/your-username/donasiaku.git](https://github.com/your-username/donasiaku.git)
cd donasiaku
cd backend
# Install PHP dependencies
composer install
# Setup Environment
cp .env.example .env
# NOTE: Open .env and configure your DB_DATABASE, DB_USERNAME, DB_PASSWORD
# Generate Key & Migrate
php artisan key:generate
php artisan migrate
# Start Server
php artisan serve
Open a new terminal terminal window:
cd frontend
# Install JS dependencies
npm install
# Start Client
npm run dev
The App should now be running at
http://localhost:5173and the API athttp://localhost:8000.
Here are the main endpoints available in the backend:
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
POST |
/api/register |
Register new user | β |
POST |
/api/login |
Login user & get token | β |
GET |
/api/donations |
Get all available donations | β |
POST |
/api/donations |
Create a new donation | β |
GET |
/api/donations/{id} |
Get donation details | β |
POST |
/api/chat/send |
Send a message | β |
GET |
/api/user |
Get current user profile | β |
We have exciting plans for the future of Donasiaku:
- Notification System: Email and Push notifications for new requests.
- Map Integration: View donation locations on Google Maps.
- Rating System: Allow users to rate their experience.
- Delivery Integration: Partner with logistics APIs (e.g., GoSend/GrabExpress).
- Dark Mode: Enhanced UI theming.
donasiaku/
βββ backend/ # Laravel API
β βββ app/
β βββ database/
β βββ routes/api.php # API Routes defined here
βββ frontend/ # React Application
β βββ src/
β β βββ features/ # Feature-based folder structure (Auth, Donatur, Penerima)
β β βββ components/ # Shared UI components (Button, Card, Inputs)
β β βββ services/ # API Service logic (Axios setup)
βββ README.md
Distributed under the MIT License. See LICENSE for more information.