Inspiration

KW AccessAbility runs an annual fundraiser where a helicopter drops golf balls over a target, and whoever's numbered ball lands closest to the pin wins. Around 1,800 tickets were sold last year, but the process behind it is entirely manual.

What it does

This project combines seller spreadsheets into a master sales report and provides a login-protected dashboard for uploading files, viewing sales totals, searching ball numbers, and exporting results. It flags missing or inconsistent data for review and stores uploaded workbooks and user accounts in a local database.

How we built it

We built the project in Python, using openpyxl to read and combine seller spreadsheets, and Flask with SQLite to power a login-protected dashboard for uploads, sales summaries, and ball-number searches. We tested the importer and dashboard with sample workbooks and added Docker and Caddy configuration for deployment. Codex, Claude, and GitHub Copilot supported parts of the coding and debugging process, while our team guided the project and checked the results.

Challenges we ran into

Overall, the biggest limitation was our understanding of the problem. After clarification from Bob Wismer, the representative from KW AccessAbility, we could begin coding. First, we ran into issues reading the rows of the spreadsheet but that was resolved quickly. When we attempted to obtain a domain from GoDaddy, the registry was down.

Accomplishments that we're proud of

Some accomplishments were building a tool that combines seller spreadsheets into one report, creating a dashboard to upload files and search ball numbers, and adding checks that flag possible data issues without dropping purchase records.

What we learned

We learned to investigate what a warning actually means before assuming data is missing, and to trace imported records back to their original spreadsheet rows. We also learned that effective AI prompt engineering takes clear context, specific goals, and follow-up questions. Overall, we saw how testing with realistic spreadsheets helps catch edge cases and verify a fix.

What's next for KW AccessAbility Spreadsheet Compiler

With a working public web domain, we would create Admin and Seller accounts. The Seller accounts would poll a file stored locally on their own computers and update the corresponding file in the cloud. Admin accounts would then be able to see all the data from all the Sellers and compile them into one data presentation UI, as it currently does.

Built With

Share this project:

Updates

Submission history