LaravelTailwind CSS

Sample Ballot Generator

Role: Full-stack Developer

Libraries / Frameworks used: Laravel, VueJS, Sass, Tailwind CSS

sampleballotgen-designsampleballotgen-design-mobile

Context.

A personal project created for the 2022 Philippine Election. It features a form wizard that allows users to choose their preferred candidates for each electoral position, then generates a printable Sample Ballot with the selected candidates.

You can find the project's source code at Github: www.github.com/iresci23/ballotph

Development work.

I served as the lead developer and system architect for the project, while a friend assisted with the front-end development.

Designed the database schema

I designed the database schema with scalability in mind, ensuring it can accommodate future elections data.

Imported the lists of candidates

The Philippine government provides the candidate list in PDF format. Initially, I attempted to parse and import the data directly from the PDFs, but this led to inaccuracies. To resolve this, the PDFs are converted to Excel files first, then I created a functionality utilizing the Laravel Excel library to automate the parsing and import of the Excel files into the database.

Implemented the form wizard

The form wizard helps users select their preferred candidates for each electoral position. I used the Vue Pinia library to manage the state of the form wizard.

Design.

Note: Most of the candidate photos were sourced from external links, which were no longer functional at the time this video was recorded.

Reflection.

The app was pretty simple, but the biggest hurdle was importing all the data for national and local election candidates. We managed to get all the files with candidate info for every city and province into the system. We completed the project in under a month and launched it a week before the Philippine elections. Although we didn't have enough time to market it, we were thrilled to see so many people have used it.