Skip to content

ACME CSR Donation Platform Internal donation platform for employees to create, manage, and contribute to fundraising campaigns supporting social and environmental causes. Built with Laravel 12, Inertia.js, and Vue 3 — featuring secure authentication, a clean REST API, and a modern dashboard with live campaign analytics.

Notifications You must be signed in to change notification settings

luismgsantos/acme-donation-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ACME Donation Platform

⚠️ Note: This project is a proof of concept developed for assessment purposes.
It is not intended for production use.

🚀 Getting Started

  1. Clone the repository
git clone https://github.com/luismgsantos/acme-donation-platform.git
  1. Install PHP dependencies
composer install # This is necessary to later have ./vendor/bin/sail to run `./vendor/bin/sail up -d`

NOTE: You can kind of skip this and just run docker compose up -d and then you have to install php dependencies, build the assets and run the migrations on your own with php artisan migrate.

  1. Install and build frontend assets
npm install
npm run build

🧱 Tech Stack

  • PHP 8.4 / Laravel 12
  • SQLite
  • Sanctum for API auth
  • Pest for testing
  • PHPStan (level 8)
  • Dockerized with Laravel Sail

📁 Project Overview

Path Description
app/Models/ Eloquent models
app/Http/Controllers/Api/V1/ Versioned API controllers
app/Http/Controllers/Api/ API controllers
app/Http/Resources/V1/ Versioned API resources (CampaignResource, DonationResource)
app/Notifications/ Notifications like DonationMade
routes/api.php Main API routes entry point (calls versioned route groups)
routes/auth.php Central auth routes (used across versions)
routes/api/auth.php API Auth
routes/api/v1/campaigns.php V1 Routes for Campaigns
tests/Feature/ Pest feature tests for API endpoints
tests/Unit/ Pest unit tests for API endpoints

Full project overview here

✅ Features

  • Authenticated users can create donation campaigns
  • Authenticated users can donate
  • Notifications for both donors and campaign creators (stored in database)
  • Pest tests for core features
  • Dockerized dev environment with SQLite

⚒ Dev Notes

  • API is versioned under /api/v1/
  • Authentication is handled via Sanctum (see routes/auth.php)
  • Use php artisan tinker for quick testing or poking the database
  • Factories and seeders help build fake data fast

🧪 Running Tests

./vendor/bin/sail test

Or directly via Pest:

./vendor/bin/sail pest

🐳 Docker

Start the application

./vendor/bin/sail up -d

Run migrations

./vendor/bin/sail artisan migrate

Access the app

Open http://localhost:8000 in your browser. You can also use sail shell or sail artisan for interacting with the container.

📎 Author

Luís Santos
GitHub: @luismgsantos
Email: luismgspro@gmail.com

About

ACME CSR Donation Platform Internal donation platform for employees to create, manage, and contribute to fundraising campaigns supporting social and environmental causes. Built with Laravel 12, Inertia.js, and Vue 3 — featuring secure authentication, a clean REST API, and a modern dashboard with live campaign analytics.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published