We were inspired to create this in order to address the problems of recruiting and engaging volunteers for opportunity hack without a technical background so they could source projects from non-profits and follow up with them through newsletters.

What it does

It is a collection of APIs that interact with a newsletter system we created for opportunity hack volunteers, groups(if need be), and non-profits.

How we built it

  • We built it using Python Flask on the back end and React on the front end.
  • We developed various APIs to check whether a user is subscribed, to get the subscribed users, to fetch unsubscribed users, and to send emails.
  • The email can be sent as HTML code or Markdowns.
  • The APIs interact with firebase and adds a field called subscribed and set it as a boolean.
  • We added a few packages to help with development such as smtplib, markdown and decouple one to create a server and send emails through TLS, turn markdown to HTML for the email, and one to be able to access Security Credentials for the SMTP server as security would have been a concern without it.
  • protected the APIs and made them only accessible to admins

Accomplishments that we're proud of

  1. This was a great learning opportunity. Some of the accomplishments we are proud of is completing a working prototype that will increase engagement even though it is not fully complete.
  2. Learning about APIs and front-end development regardless of unfamiliarity is something we're very proud of.
  3. Giving Opportunity hack the chance to send newsletters is something that makes us happy and proud, knowing we did something to help future Volunteers, Hackers, and non-profits.

What we learned

  1. We learned about designing APIs and thinking about how to come up with meaningful solutions while working on the user interface of the website.
  2. The system design also played a major role in our decision-making process, Front-End design, and how to quickly and efficiently join a project and get hands-on with the code.


The code is documented with TODOs which can be viewed by installing a todo tree extension on VSCODE

  1. What can be done is basically adding Multithreading to the SMTP to save time and make it more scalable as Opportunity hack gets more newsletter subscribers.
  2. The user interface needs a bit of work, we were only developers working on it
  3. A tiny bug exists in unsubscribe, the template for the footer should be formatted to accept an email, once it has an email, the user can be unsubscribed through the unsubscribe API. The only problem is that the unsubscribe API initially used userID. and this is the fix for any future updates
  4. The list that should be used

Built With

Share this project: