Skip to content

Latest commit

 

History

History
147 lines (120 loc) · 8.86 KB

README.md

File metadata and controls

147 lines (120 loc) · 8.86 KB

🏆 RedCrossQuest

GitHub stars GitHub issues GitHub license Contributors

PHP Slim Framework Angular 1.7 MySQL Google App Engine Firebase Google PubSub Google Cloud Monitoring Google Cloud Functions

RedCrossQuest is a web application developed to ease the management of the French Red Cross yearly fundraising. This event, which lasts only 9 days each year around May/June, is critical for local Red Cross Units as it accounts for 25% to 50% of their annual budget. It is also challenging in terms of application development, monitoring, bug resolution, and implementing last-minute feature requests.

🚀 Main Features

The web application allows to:

  • Manage volunteers: whether they are Red Cross Volunteers or one-day volunteers.
  • Manage collections: Determine where they should be collecting money (assisted by Business Intelligence analytics), when they start and finish collecting, and track the locations of the collections.
  • QR Code scanning: Used to identify a bucket of money, a volunteer, or to register volunteers in RedQuest.
  • Rewarding Volunteers: Track the amount of money collected per volunteer with statistics that enable us to thank them in various ways, ensuring everyone is appreciated in a positive manner.
  • Deep understanding of performance: Monitor the amount collected versus the objectives, including the number of volunteers, hours of collecting, etc. This helps forecast outcomes using BI.
  • Working with Banks: Facilitate money collection by banks. Money is placed in bags that must not be overweight (or a penalty will be applied) and details the number of coins and bills.
  • Data analysis and quality: Numerous dynamic TIBCO Spotfire dashboards for analyzing the fundraising, with links back to the application to correct any mistakes.
  • Gamification: RedQuest is a supplementary web application based on Firebase that uses various badges to encourage volunteers to collect more money, funding more actions in the year ahead.

Application screenshots

Login and miscellaneous screens

Login page

login page

Welcome page

Welcome page

Embedded Tutorial to setup the application for a new unit

Embedded Tutorial to setup the application for a new unit

Support page: what to transmit, where to open a ticket, new features

Support page: what to transmit, where to open a ticket, new features
Main pages

QR Code scanning to automatically fill search field without typo

QR Code scanning to automatically fill search field without typo

Once collecting is done, count the money: coins and bills

Once collecting is done, count the money: coins and bills

Credit Card and bank notes

Credit Card and bank notes

Bank money bag assignment and free notes

Bank money bag assignment and free notes
Administration

Collecting location editor

Collecting location editor

Unit parameters editor

Unit parameters editor

Volunteer list

Volunteer list

Volunteer editor

Volunteer editor

QR Code printing (one of the 3 ones)

QR Code printing (one of the 3 ones)

Manual input of data before the unit uses RedCrossQuest to provide statistics references

Manual input of data before the unit uses RedCrossQuest to provide statistics references

Objectives interface

Objectives interface

Mailing interface that sends emails with TIBCO Spotfire displaying their accomplishments

Mailing interface that sends emails with TIBCO Spotfire displaying their accomplishments

GDPR Export of unit data

GDPR Export of unit data
TIBCO Spotfire dashboards

KPI over the years

KPI over the years

How the unit performs compared to its objective

How the unit performs compared to its objective

How did the unit perform in the past compared to the current year

How did the unit perform in the past compared to the current year

Data quality check: spot input errors (in amount or timing) with the ability to edit the particular row that has an issue directly in the web application

Data quality check: spot input errors (in amount or timing) with the ability to edit the particular row that has an issue directly in the web application

🛠️ Technologies

  • Backend: Google App Engine (PHP) with Slim Framework
  • Databases: Google Cloud SQL (MySQL), Firestore
  • Frontend: Angular 1.7 (migration needed to the latest version of Angular).
  • BI & Analytics: TIBCO Spotfire, considering a migration to Looker/Google Data Studio.
  • Others: Google Pub/Sub, Cloud Functions, Stackdriver, Sendgrid, Slack, ReCaptcha.

📈 Statistics since 2016

  • 👥 9 500 volunteers (Red Cross & one-day volunteers).
  • 125 700 hours of collecting money.
  • 💰 3 750 000€ collected in donations.
  • 🏋🏽 20,14 metric tons of coins & bills.
  • 🏘️ +65 local units using RedCrossQuest.

🏅 Gamification: RedQuest

To motivate volunteers, RedQuest grants badges and levels based on their accomplishments:

  • % of the local unit objective they've collected (€)
  • Amount of money collected via Credit Card
  • Amount of weight (kg) in bills and coins collected
  • Number of days collected: Number of days the volunteer spent collecting donations.
  • Number of locations collected: Number of collection points where the volunteer collected donations.
  • Number of times they went out collecting: Number of times the volunteer went out for a collection session (they can have multiple sessions in a day, e.g., two 2-hour slots).
  • Number of hours collected: Total time spent collecting donations.

Each volunteer can see their progress in the RedQuest app, how much they have collected each time, and their ranking (if the feature is enabled by their unit). Beyond gamification, it also allows volunteers to be thanked at the end of the collection.

📚 Documentation

The documentation is available in the French Red Cross information system and is not public.

💡 Contribute

We are looking for developers:

  • Migrate the frontend to the latest version of Angular
  • Add new features to both frontend and backend
  • Enhance the gamification (like supporting teams, national ranking with rewards)

Wanted Skills:

  • Angular 10+, Firebase, Cloud Functions.
  • PHP, Python, Typescript.
  • Google Data Studio or Looker.

📝 License

This project is licensed under GPL v3. You can read the license here: LICENSE.

📬 Contact

If you have any questions or suggestions, or if you want to contribute, please open a GitHub issue. 🙂