Skip to content

Arfazrll/Donasiaku

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

20 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

DONASIAKU 🀝

Bridging Kindness, Connecting Needs.
A modern web platform connecting donors with beneficiaries to facilitate transparent and efficient goods donation.

Laravel React Tailwind MySQL


View Demo Β· Report Bug Β· Request Feature


πŸ“– Table of Contents

  1. About The Project
  2. Tech Stack
  3. Key Features
  4. Getting Started
  5. API Reference
  6. Roadmap
  7. License

πŸ’‘ About The Project

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).

πŸ›  Tech Stack

Backend (Server)

  • Framework: Laravel 11
  • Language: PHP 8.2+
  • Auth: Laravel Sanctum (Token based)
  • Database: MySQL

Frontend (Client)

  • Framework: React.js (Vite)
  • Styling: Tailwind CSS + PostCSS
  • State Management: React Hooks
  • HTTP Client: Axios
  • Routing: React Router DOM

πŸš€ Key Features

🐯 For Donors

  • 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.

πŸ™‹β€β™‚οΈ For Beneficiaries (Penerima)

  • 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).

πŸ” Security & Core

  • 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.

⚑ Getting Started

Follow these steps to set up the project locally.

Prerequisites

  • Node.js (v18+)
  • Composer
  • PHP (v8.2+)
  • MySQL Server

1. Clone the Repository

git clone [https://github.com/your-username/donasiaku.git](https://github.com/your-username/donasiaku.git)
cd donasiaku

2. Backend Setup (Laravel)

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

3. Frontend Setup (React)

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:5173 and the API at http://localhost:8000.

πŸ”Œ API Reference

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 βœ…

πŸ—Ί Roadmap

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.

πŸ“‚ Project Structure

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

πŸ“„ License

Distributed under the MIT License. See LICENSE for more information.

About

DonasiAku is a web-based donation management platform that enabling users to create, manage, and track donation campaigns easily with a clean and responsive interface.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors