A complete crowdfunding platform built with Laravel 12 (PHP 8.2), MariaDB, Vite, and Bootstrap. It features a public area for browsing and donating to campaigns, authenticated story/idea creation, and an administration area for approving or deleting submissions. Includes image optimization, accessibility improvements, search/sort, and a working contact page with SMTP email.
Try the app here: Crowdfunding Platform
- About
- Key Features
- Changelog Highlights
- Architecture Overview
- Tech Stack
- Screenshots
- Prerequisites
- Running the App
- Roadmap / Ideas
- License
- Author
This project implements an online platform for crowdfunding stories or ideas. It allows users to create campaigns with a funding goal and accept donations from the public:
- Public users can browse all approved stories/ideas (campaigns), see goal progress, and donate without registering.
- Registered users can create new stories/ideas with images and funding goals.
- Admins can approve or delete submitted campaigns; only approved ones appear publicly.
The platform is production-ready for shared hosting and configured to work with Namecheap + MariaDB via phpMyAdmin. It uses modern tooling (Vite, Bootstrap) and includes a working contact form with SMTP mail.
Public Area:
- Campaign listing with:
- Story/idea text and cover image
- Goal amount, raised amount, remaining amount
- Donation history (name + amount)
- Inline donation form (name + amount + Donate)
- Sorting and searching:
- Sort campaigns; modal popup for searching by title
- Clear status presentation:
- Campaigns that reached the goal are visually distinct and no longer accept donations
- Static pages:
- About, Contact, FAQ, How It Works, Maintenance, Privacy, Terms
Auth & User Area:
- Registration and login (Laravel Breeze)
- New story/idea creation with image upload and target goal
- Server-side validation across all pages
Admin Area:
- Review all submitted campaigns
- Approve or delete campaigns (only approved are public)
Contact & Email:
- Contact page with form, validation, anti-bot checks
- SMTP-based mailing service for contact submissions
Performance & UX:
- Image optimization:
- Convert uploads to WebP, resize, and serve responsive/lazy images
- Accessibility improvements:
- ARIA labels, improved heading order, better link semantics
- Build pipeline with Vite
- feat(contact): add working contact page with mailing service
- Controller, view, routes
- SMTP integration, validation, anti-bot
- feat: create and edit campaign functionality in dashboard
- perf: optimize campaign images (WebP, resize, responsive/lazy)
- a11y: ARIA labels, improved heading order, link semantics
- feat: modal popup to search campaigns by title
- feat: sorting on campaigns page
- feat: add about, contact, faq, how-it-works, maintenance, privacy, terms pages
- feat: validation across all pages
- chore: deploy and connect to Namecheap MariaDB
- Domain model:
- Users: authentication and roles/permissions for admin access
- Campaigns: story/idea, goal amount, raised amount, image, status (approved/pending)
- Donations: donor name, amount, linked to campaign
- Project structure:
- app/Http/Controllers — controllers (e.g., CampaignController, DonationController, ContactController)
- app/Models — Eloquent models (User, Campaign, Donation)
- resources/views — Blade templates (public pages, auth, admin)
- routes/web.php — application routes
- database/migrations — database schema
- public/ — public assets (Vite builds, images)
Note: Image optimization uses Intervention Image (conversion to WebP and responsive dimensions). Donation flow updates totals and logs donor history.
Backend:
- Laravel 12 (PHP 8.2)
- MariaDB (MySQL-compatible)
Frontend:
- Vite
- Bootstrap 5
- Vanilla JS
Laravel Packages:
- laravel/breeze — auth scaffolding
- intervention/image-laravel — image processing (resize/WebP)
- laravel/telescope — development debugging tools (dev only)
- PHP 8.2+
- Composer 2.x
- Node.js 18+ and npm 9+
- MariaDB 10.5+ (or MySQL 8)
- OpenSSL/PDO extensions enabled
- Git (optional for cloning)
- For email: SMTP credentials
Backend (PHP):
php artisan serveFrontend (Vite) – For development:
npm run devOr, for production build:
npm run build- Comments or discussion section for each campaign
- Email verification for user registration
- Multi-language support
- Export campaign and donation data (CSV, PDF)
- Integration with payment gateways (Stripe, PayPal, etc.)
- Two-factor authentication (2FA) for users/admins
- Social media sharing for campaigns
- Campaign expiration dates and automatic status updates
- Donation receipts via email
- Accessibility audit and improvements
- Mobile app or PWA version
This project is licensed under the MIT License - see the LICENSE file for details.

