A full-stack crowdfunding platform built with object-oriented PHP, MySQL and PDO.
Crowdfund allows creators to launch and manage campaigns while users can discover projects, select rewards, make pledges and interact through comments.
- User registration and authentication
- Secure password hashing
- Create, edit and delete crowdfunding projects
- Browse and search campaigns
- Project categories
- Campaign funding goals and progress tracking
- Project image uploads
- Reward tiers
- Reward availability and quantities
- User pledges
- Automatic project funding updates
- Project comments
- User profiles
- Contribution history
- Responsive interface
- Object-oriented PHP architecture
- Reusable PDO database connection
- Relational MySQL database
Backend
- PHP
- Object-Oriented Programming
- PDO
- MySQL
Frontend
- HTML
- CSS
Database
- MySQL
- Primary and foreign keys
- One-to-many relationships
- Many-to-many relationships
The platform uses six main tables:
userscategoriesprojectsrewardspledgescomments
A user can create multiple projects, projects can contain multiple rewards and comments, and users can support multiple projects through pledges.
crowdfunding/
├── Classe/
│ ├── CRUD.php
│ ├── Category.php
│ ├── Comment.php
│ ├── Pledge.php
│ ├── Project.php
│ ├── Reward.php
│ └── User.php
├── assets/
├── css/
├── includes/
├── index.php
├── projects.php
├── project.php
├── project-create.php
├── project-edit.php
├── project-delete.php
├── reward-create.php
├── pledge-create.php
├── comment-create.php
├── profile.php
├── login.php
└── register.php
The project uses a reusable CRUD class built on PDO.
The main entities extend the shared database functionality while providing methods specific to their responsibilities.
PDO
↑
CRUD
↑
├── Project
├── User
├── Category
├── Reward
├── Pledge
└── Comment
This architecture keeps database operations reusable while separating the logic of each entity.
git clone https://github.com/YOUR-USERNAME/crowdfund-php.gitcd crowdfund-phpImport the included:
crowdfunding.sql
into MySQL.
php -S localhost:8000http://localhost:8000
Email: justin@test.com
Password: demo1234
The demo account is provided for local testing purposes.
Crowdfund was created to explore the architecture behind crowdfunding platforms while applying object-oriented PHP, relational database design, CRUD operations and reusable backend components.
The project focuses on building a complete and functional web application where multiple entities interact through meaningful database relationships.
Potential future improvements include payment processing, richer campaign media management, creator analytics, campaign updates and notification systems.