Projects

Enthuse Fundraising totaliser

Enthuse is a fundraising platform in which there are various campaigns for worldwide projects. Task was to create a totaliser to display on websites to show graphically the amount raised and the goal for a given campaign.

Technology: Python, Flask, Curl

I was inspired by the idea of web scraping to download and analyse the campaign page to retrieve the goal and amount raised. Campaign URLs are hardcoded in the Python script. The Flask script takes a parameter for a campaign, the campaign page is downloaded and analysed.

The results are output with Flask in HTML and CSS inside a rectangle which can be resized and embedded on pages.

For example:

<embed src="https://amurt.org.uk/totaliser/?c=ukraine-refugees-rom" type="text/html" width="900px" height="300px"></embed>
<embed src="https://amurt.org.uk/totaliser/?c=ukraine-2022" type="text/html" width="320px" height="150"></embed>
<embed src="https://amurt.org.uk/totaliser/?c=laos2021" type="text/html" width="320px" height="150"></embed>

Totalgiving checkout

Totalgiving is a fundraising platform. Task was to provide a user interface in order for donors to choose which project to donate to.

Totalgiving has an API available to request a URL for checkout. The Totalgiving API requires details including donation amount and to which campaign the donation is for.

Technology: Python, Flask, Javascript/HTML

Frontend: javascript/HTML form for end user to enter: donation amount and choose which campaign to donate to.

Backend: Python and Flask. To communicate to Totalgiving with the parameters who return a URL for the checkout and finally redirect the user to the checkout.

Example:

To donate £80 to the London Feeding Programme campaign (number 2867). The parameters amount=80 and appeal=2867 are sent to the backend Flask script:

https://amurt.org.uk/checkout/?amount=80&appeal=2867

These parameters are sent to Totalgiving. Totalgiving returns a URL, in which the user is redirected to.

Example HTML form