Givingly is a fundraising website where individuals contribute small amounts of money to support a project, business, or cause. It leverages the collective financial backing of a large number of people to achieve a common goal.
Business Process & Execution Flow Diagram
A) Support Existing Projects:
Action: Donate to ongoing projects.
Description: Contribute to existing initiatives by providing financial support. Individual donations make a positive impact on ongoing projects.
Flow Diagram:
B) Initiate Fundraising Projects:
Action: Kick off your project to raise funds.
Description: Launch your own projects to gather financial support. Start project and engage supporters to raise funds for your innovative ideas and initiatives.
Flow Diagram:
Data Model
Custom Object Label
Givingly Project
Custom Object API Name
Givingly_Project__c
Field Name
API Name
Data Type
Lenght
Description
About
About__c
Long Text Area
405
A long text area field (About__c) capturing detailed information about the project in the Givingly platform.
Givingly Project Name
Name
Text
80
A text field (Name) storing the name of the projects.
Goal
Goal__c
Number
(5,3)
A numeric field (Goal__c) specifying the fundraising target amount for the project.
Poster
Poster__c
Text Area
255
A text area field (Poster__c) intended for storing information or details related to the project’s poster.
Progress Percentage
Progress_Percentage__c
Formula
(3,2)
A formula field (Progress_Percentage__c) dynamically calculating the project’s completion percentage based on amount raised.
Raised
Raised__c
Roll Up Summary
A roll-up summary field (Raised__c) aggregating the total amount raised for the project from associated donations.
Start Date
Start_Date__c
Date
A date field (Start_Date__c) indicating the commencement date of the Givingly project.
Status
Status__c
Picklist
A picklist field (Status__c) providing a dropdown of predefined options to denote the current status of the project like live, in review, or fully subscribed.
Custom Object Label
Givingly Payment
Custom Object API Name
Givingly_Payment__c
Field Name
API Name
Data Type
Lenght
Description
Contact
Contact__c
Master Detail
405
A Master-Detail relationship field (Contact__c) establishing a connection with the associated contact record.
Donation
Donation__c
Number
(16,2)
A Number relationship field (Donation__c) capturing the amount donated by the user.
Givingly Contributer Name
Name
Text
80
A text field (Name) capturing the name of the Givingly contributor.
Payment Id
Payment_Id__c
Text
255
A text field (Payment_Id__c) storing the unique identifier for the payment.
Payment Status
Payment_Status__c
Picklist
A picklist field (Payment_Status__c) allowing selection of different payment statuses like pending, successful and failed.
Project
Project__c
Master Detail
A Master-Detail relationship field (Project__c) creating an association with the corresponding project record.
Designed for obtaining a payment link from the Stripe API, offering functionality to create a Stripe session using input parameters like name, email, amount, and projectId.
Input Parameter
Variable Name
Variable Type
name
String
email
String
amount
Number
projectId
String
Callout Details
Stripe API
Invocation Type
Lightning Web Component
Invoked By
givinglyPaymentGateway
Invoking Function
createGivinglyPayment
Apex Class
GivinglyPaymentGateway
Method Name
createStripeSession
Purpose
Serves to generate a Stripe payment record while ensuring deduplication of contact records.
Input Parameter
Variable Name
Variable Type
name
String
email
String
amount
Number
projectId
String
sessionId
String
Callout Details
Invocation Type
Apex
Invoked By
createStripeSession
Invoking Function
Apex Class
GivinglyPaymentWebhook
Method Name
checkoutSessionCompleted
Purpose
Designed to receive responses from the Stripe API. Configured as a Webhook, it is invoked by Stripe upon payment completion, facilitating the “updateGivinglyPayment” function to handle the webhook callout and process relevant details.
Input Parameter
Callout Details
Invocation Type
Webhook
Invoked By
Stripe
Invoking Function
updateGivinglyPayment
Apex Class
GivinglyPaymentWebhook
Method Name
updateGivinglyPayment
Purpose
Accurately update payment record details by receiving information from the Stripe API.
Input Parameter
Variable Name
Variable Type
paymentId
String
paymentStatus
String
Callout Details
Invocation Type
Apex
Invoked By
checkoutSessionCompleted
Invoking Function
Apex Class
Givingly
Method Name
getProjects
Purpose
Tailored to retrieve projects that are in live, review, and fully subscribed states. It efficiently filters and returns relevant project data based on their status.
Input Parameter
Variable Name
Variable Type
categoryKey
String
Callout Details
Invocation Type
Flexcard
Invoked By
cf:givinglyProjectFullySubscribed
cf:givinglyProjectInReview
cf:givinglyProjectLive
Invoking Function
Apex Class
Givingly
Method Name
getProjectDetails
Purpose
Retrieves information such as project description, fundraising goal, amount raised, progress percentage, category, and status for a requested project. This class facilitates the retrieval and display of key project details within digital experience.
Input Parameter
Variable Name
Variable Type
idKey
String
Callout Details
Invocation Type
Flexcard
Invoked By
cf:givinglyProjectDetails
Invoking Function
Apex Class
Givingly
Method Name
getAllContributions
Purpose
Fetch most recent payment records.
Input Parameter
Variable Name
Variable Type
idKey
String
Callout Details
Invocation Type
Flexcard
Invoked By
cf:givinglyRecentContributionsChild
Invoking Function
Apex Class
Givingly
Method Name
createProject
Purpose
Design to facilitates the creation of a project record by gathering details from a community. It streamlines the process of collecting and organizing community input to efficiently generate new project records.