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.


Log in or sign up for Devpost to join the conversation.