RaiseSeed – A Simple Crowdfunding Platform 1
,
Report: Crowdfunding Platform
Project Title: RaiseSeed – A Simple Crowdfunding Platform
Author: Sayanti Chowdhury
ID: 22102023
Date: 23rd September 2024
Version: 1.0
RaiseSeed – A Simple Crowdfunding Platform 2
Table of Contents:
1. Introduction
2. Functional Overview
3. System Architecture
4. ER Diagram
5. Database Schema
6. Implementation Details
7. Conclusion
8. Future Enhancements
RaiseSeed – A Simple Crowdfunding Platform 3
Introduction
This project aims to create a simple, user-friendly crowdfunding platform where users can create and
support campaigns. Users can view a list of campaigns, donate to them, and view their donation
history through a personalized dashboard.
Functional Overview
The platform consists of the following key features:
● User Registration and Authentication: Users can sign up, log in, and access their profiles.
● Campaigns: Users can view campaigns with details such as the goal, funds raised, and days
remaining.
● Support/Donation: Users can donate money to a campaign and select a reward tier based on
their donation amount.
● Dashboard: Users can view their donation history, the campaigns they've supported, and the
total amount donated.
● Admin Panel (Optional): Manage campaigns, user accounts, and donations (not
implemented in the current version).
System Architecture
The project is based on the classic three-tier architecture:
1. Presentation Layer: HTML, CSS, and JavaScript (frontend).
2. Application Layer: PHP (server-side scripting).
3. Data Layer: MySQL (database management).
RaiseSeed – A Simple Crowdfunding Platform 4
ER Diagram
Here is the Entity-Relationship (ER) diagram that outlines the structure of the database for the
● Users Table: Contains information about each user registered on the platform.
● Campaigns Table: Stores data about crowdfunding campaigns such as the goal, raised
amount, and campaign details.
● Support Table: Links users to the campaigns they have donated to, including the amount
donated and the time of the donation.
RaiseSeed – A Simple Crowdfunding Platform 5
Database Schema
Here are the table definitions for the three main entities in the system:
Users Table
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Campaigns Table
CREATE TABLE campaigns (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
description TEXT NOT NULL,
goal DECIMAL(10, 2) NOT NULL,
raised_amount DECIMAL(10, 2) DEFAULT 0,
location VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
RaiseSeed – A Simple Crowdfunding Platform 6
Support Table
CREATE TABLE support (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
campaign_id INT NOT NULL,
amount DECIMAL(10, 2) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id),
FOREIGN KEY (campaign_id) REFERENCES campaigns(id)
);
Implementation Details
● Sign-In and Sign-Up
The signin.php script allows users to authenticate with their email and password. Once validated,
the user is redirected to their dashboard.
$sql = "SELECT * FROM users WHERE email = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s", $email);
$stmt->execute();
$result = $stmt->get_result();
RaiseSeed – A Simple Crowdfunding Platform 7
RaiseSeed – A Simple Crowdfunding Platform 8
● Dashboard
The dashboard displays the user’s information, along with the campaigns they have supported and
how much they have donated to each.
$sql = "
SELECT support.campaign_id, support.amount, campaigns.title,
campaigns.goal, campaigns.raised_amount
FROM support
JOIN campaigns ON support.campaign_id = campaigns.id
WHERE support.user_id = ?";
RaiseSeed – A Simple Crowdfunding Platform 9
● Campaign Details and Donations
Each campaign shows a progress bar for the funds raised. Users can donate by selecting a reward tier
and entering a custom donation amount.
$sql = "INSERT INTO support (user_id, campaign_id, amount) VALUES
(?, ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("iid", $user_id, $campaign_id, $amount);
RaiseSeed – A Simple Crowdfunding Platform 10
Conclusion:
This project provides a fundamental platform for crowdfunding, enabling users to create and support
campaigns with ease. The system features user authentication, campaign creation, and a donation
tracking mechanism.
Future Enhancements
Some of the planned future features include:
● Search and Filter for Campaigns: Allow users to search for specific campaigns or filter
based on categories.
● Admin Dashboard: Add a panel for administrators to manage campaigns and users.
● Email Notifications: Send email alerts to users when campaigns they’ve supported reach
certain milestones.
● Payment Gateway Integration: Instead of dummy payment inputs, integrate with real-world
payment systems like PayPal or Stripe.
● Enhanced Security: Implement more robust password hashing techniques and secure session
management.

Database management system project report (PDF)

  • 1.
    RaiseSeed – ASimple Crowdfunding Platform 1 , Report: Crowdfunding Platform Project Title: RaiseSeed – A Simple Crowdfunding Platform Author: Sayanti Chowdhury ID: 22102023 Date: 23rd September 2024 Version: 1.0
  • 2.
    RaiseSeed – ASimple Crowdfunding Platform 2 Table of Contents: 1. Introduction 2. Functional Overview 3. System Architecture 4. ER Diagram 5. Database Schema 6. Implementation Details 7. Conclusion 8. Future Enhancements
  • 3.
    RaiseSeed – ASimple Crowdfunding Platform 3 Introduction This project aims to create a simple, user-friendly crowdfunding platform where users can create and support campaigns. Users can view a list of campaigns, donate to them, and view their donation history through a personalized dashboard. Functional Overview The platform consists of the following key features: ● User Registration and Authentication: Users can sign up, log in, and access their profiles. ● Campaigns: Users can view campaigns with details such as the goal, funds raised, and days remaining. ● Support/Donation: Users can donate money to a campaign and select a reward tier based on their donation amount. ● Dashboard: Users can view their donation history, the campaigns they've supported, and the total amount donated. ● Admin Panel (Optional): Manage campaigns, user accounts, and donations (not implemented in the current version). System Architecture The project is based on the classic three-tier architecture: 1. Presentation Layer: HTML, CSS, and JavaScript (frontend). 2. Application Layer: PHP (server-side scripting). 3. Data Layer: MySQL (database management).
  • 4.
    RaiseSeed – ASimple Crowdfunding Platform 4 ER Diagram Here is the Entity-Relationship (ER) diagram that outlines the structure of the database for the ● Users Table: Contains information about each user registered on the platform. ● Campaigns Table: Stores data about crowdfunding campaigns such as the goal, raised amount, and campaign details. ● Support Table: Links users to the campaigns they have donated to, including the amount donated and the time of the donation.
  • 5.
    RaiseSeed – ASimple Crowdfunding Platform 5 Database Schema Here are the table definitions for the three main entities in the system: Users Table CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(50) NOT NULL, last_name VARCHAR(50) NOT NULL, email VARCHAR(100) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); Campaigns Table CREATE TABLE campaigns ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, description TEXT NOT NULL, goal DECIMAL(10, 2) NOT NULL, raised_amount DECIMAL(10, 2) DEFAULT 0, location VARCHAR(100), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
  • 6.
    RaiseSeed – ASimple Crowdfunding Platform 6 Support Table CREATE TABLE support ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, campaign_id INT NOT NULL, amount DECIMAL(10, 2) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users(id), FOREIGN KEY (campaign_id) REFERENCES campaigns(id) ); Implementation Details ● Sign-In and Sign-Up The signin.php script allows users to authenticate with their email and password. Once validated, the user is redirected to their dashboard. $sql = "SELECT * FROM users WHERE email = ?"; $stmt = $conn->prepare($sql); $stmt->bind_param("s", $email); $stmt->execute(); $result = $stmt->get_result();
  • 7.
    RaiseSeed – ASimple Crowdfunding Platform 7
  • 8.
    RaiseSeed – ASimple Crowdfunding Platform 8 ● Dashboard The dashboard displays the user’s information, along with the campaigns they have supported and how much they have donated to each. $sql = " SELECT support.campaign_id, support.amount, campaigns.title, campaigns.goal, campaigns.raised_amount FROM support JOIN campaigns ON support.campaign_id = campaigns.id WHERE support.user_id = ?";
  • 9.
    RaiseSeed – ASimple Crowdfunding Platform 9 ● Campaign Details and Donations Each campaign shows a progress bar for the funds raised. Users can donate by selecting a reward tier and entering a custom donation amount. $sql = "INSERT INTO support (user_id, campaign_id, amount) VALUES (?, ?, ?)"; $stmt = $conn->prepare($sql); $stmt->bind_param("iid", $user_id, $campaign_id, $amount);
  • 10.
    RaiseSeed – ASimple Crowdfunding Platform 10 Conclusion: This project provides a fundamental platform for crowdfunding, enabling users to create and support campaigns with ease. The system features user authentication, campaign creation, and a donation tracking mechanism. Future Enhancements Some of the planned future features include: ● Search and Filter for Campaigns: Allow users to search for specific campaigns or filter based on categories. ● Admin Dashboard: Add a panel for administrators to manage campaigns and users. ● Email Notifications: Send email alerts to users when campaigns they’ve supported reach certain milestones. ● Payment Gateway Integration: Instead of dummy payment inputs, integrate with real-world payment systems like PayPal or Stripe. ● Enhanced Security: Implement more robust password hashing techniques and secure session management.