Inspiration

As with most cities, Birmingham has a large disconnect between its citizens and local government. This project attempts to bridge that gap by automatically notifying citizens on upcoming city council meetings that they might be interested in, based on their stated interests.

What it does

This project scrapes data from the city council's published agenda and automatically notifies users via email if enough of the user's stated interests line up with an upcoming meeting.

How we built it

We started by outlining how we would store the data as well as add new users. After creating several classes for building the keyword dictionary and user class, we implemented the scraper that read and tokenized the pdf. Then we created the Update class logic that puts everything together and updates the running text file of users as well as sending the automatically generated email to the users with enough connections to the upcoming meeting.

Challenges we ran into

We ran into significant challenges learning to implement scrapers and utilizing the AgendaMailer module. Also, we initially wanted to build an SQL database but, after many failings, decided to just build a dictionary in python.

Accomplishments that we're proud of

We are very proud of getting all of the working pieces to fit together in time and being able to create a functional scraper, automatic email sender, and an easy way to append new users.

What we learned

We learned a tremendous amount about scrapers, SMTP/SSL api, and object oriented python programming.

What's next for Good Citizen Project

Although we only have basic functionality now, adding an easier user interface, perhaps on a website, would be a great next step to add users. Also, just scraping the city council's agenda is great, but we are sure there are many more opportunities we could compile together such as public forums or volunteer meet-ups that our users might be very interested in hearing about. Lastly, this is a project that more generally the city could be interested in as a public service to better engage with the community.

Built With

Share this project:

Updates