Inspiration
Hackathon judging is often chaotic and relies on generic polling tools. We wanted to build Communal_Vote—a centralized, custom-built platform designed specifically to handle the unique dynamics of hackathon voting, including role-based score weighting.
What it does
Communal_Vote is a secure voting app where users log in with specific access codes. It allows attendees to evaluate projects on a 1-to-5 scale. The system automatically applies multipliers based on the user's role (e.g., a judge's score is multiplied by 5, a student's by 1).
How we built it
Frontend: HTML, CSS, and Vanilla JS, styled with a modern glassmorphic design and hosted on GitHub Pages. Projects are dynamically loaded via JSON. Backend: Node.js and Express API hosted on Render. Database: MongoDB Atlas to securely store scores, manage role weights, and strictly prevent duplicate voting per person.
Challenges we ran into
Enforcing a strict "one vote per project per person" rule without forcing users to create full accounts was tricky. We solved this by engineering a custom backend logic that validates votes based on a combination of the user's name and the specific project ID.
Accomplishments that we're proud of
We are incredibly proud of successfully deploying a full-stack MERN-like application! Building the role-based weighting system on the backend while keeping the frontend UI simple and sleek was a massive win for us.
What we learned
We gained hands-on experience with REST API design, asynchronous JavaScript (fetch), NoSQL schema modeling with Mongoose, and successfully connecting disparate cloud hosting platforms (Render, GitHub Pages, MongoDB Atlas).
What's next for Communal_Vote
We want to add a real-time Admin Dashboard with live leaderboards, and integrate QR codes at project tables so attendees can instantly jump to a project's voting card on their phones.
Log in or sign up for Devpost to join the conversation.