Automating rosters, reporting, and scheduling for 100+ active users.
Timeline
2023
Role
Lead Developer
Tools
Python, Tkinter, BeautifulSoup, Threading
Boy Scout troop leaders need to track adult training records and send regular updates to their troop members. However, updating records manually for 100+ people per troop was very tedious. I built a desktop app that automates the entire workflow: scraping member data, organizing it into sortable tables, and sending batch emails with one click. This reduced the time spent on record-keeping by 66% every week.

Three-panel Tkinter interface with member roster table, recipient list, and email composer with template support.
Built with Python and Tkinter for the desktop UI. I used the requests and BeautifulSoup libraries to scrape member data, parsing HTML tables into structured rows. One challenge I ran into was that the UI would freeze while data was being processed in the background. So, I separated the UI, HTTP requests, and data processing into different threads. Email templates are stored in JSON and support variable substitution for personalized batch sends.
