Introducing Polle - Create, Distribute and Analyze Polls.
Create Polls, share with your public, get votes and analyze everything in the dashboard.

Developer with a love for web technologies. Building things with react, next and node.
Search for a command to run...
Create Polls, share with your public, get votes and analyze everything in the dashboard.

Developer with a love for web technologies. Building things with react, next and node.
Looks great! (honestly from what happened witha previous project, I was a bit skeptical but it looks geniune)
Question though, how were you able to use prisma schema to create fields that reference other fields?
Don't they create FKs? (which I think isn't allowed by PlanetScale)
In the fast-paced world of software development, where competition is fierce and innovation is key, having a standout portfolio is not just an advantageβit's a necessity. Your portfolio is more than a collection of projects; it's a visual narrative t...

Next.Js 14 has added a lot of cool features that make development so much easier like: App Router Server Actions Route Handlers Client and Server Components In this article, we will be covering Server Actions. What are Server Actions A Server A...

Next.js provides a solid foundation for building React applications with server-side rendering, while Supabase offers a scalable and easy-to-use backend-as-a-service with PostgreSQL as the database. Since the release of Next.js 13 and then Next.js 14...

Communication with your users is really important and emails are one of the means of communication. Sending emails is really important for applications. These are some of the reasons: User Onboarding and Account Verification Password Resets and Acc...

This is our first article in the series of Data Structures and Algorithms. In this article, we will discuss the ins and outs of a Singly Linked List. What is a Singly Linked List? A Singly Linked List is a linear data structure that allows us to stor...

Polle is an open-source platform where you can create polls, share them to get votes, and finally analyze them in the dashboard. See the number of votes on each answer, votes on each day, votes from different devices, and much more!
Now, we know there are already a lot of poll makers in the market. They lack in one big thing, analytics and that's where Polle can help you. I used some of the poll makers out there and came to know that they don't have great analytics like we don't know from where the votes are coming, when are we getting the most votes, how many votes we got today, yesterday, or the day before yesterday, are we getting votes from mobile, desktop or tablet.
That's where I came up with the idea of Polle. It not only lets you build and share polls but also provides user-friendly charts for analyzing the polls. I was thinking to build such kind of app way before this hackathon. But when I heard about this hackathon, I was very motivated to build it.
Here are some reasons why I built Polle for this hackathon:
Not a feature though. But tried my best to build a nice-looking landing page.

I added authentication using JWT and Cookies.

The dashboard shows an overview of the polls, votes and votes on the current day.

Users can not only create polls, but they can also customize and configure them. Users can:


The analytics page shows:

This is the Poll page where users can vote and can also see the results if allowed by the creator.

There are some other features and pages as well. Make sure to explore them.
I built the entire app using Next.js along with some other packages and deployed the app on Vercel.
-- components
-- AnalyticsBox
-- DashboardLayout
-- Features
-- Footer
-- Header
-- Hero
-- HomeLayout
-- Navbar
-- Poll
-- PollCustomize
-- PollItem
-- PollMaker
-- PollManager
-- PollSettings
-- Seo
-- SharePoll
-- context
-- PollContext
-- UserContext
-- lib
-- getUser
-- prisma
-- pages
-- api
-- auth
-- polls
-- votes
-- dashboard
-- analytics
-- edit-poll
-- create-poll
-- index
-- polls
-- poll
-- _app
-- _document
-- index
-- login
-- signup
-- prisma
-- schema.prisma
-- src
-- styles
-- utils
As this was the first time I was working with PlanetScale and Prisma, so I had to cover some basic stuff before creating the project. I read this blog post on PlanetScale by Camila Ramos which gave me an overview of Prisma and PlanetScale. Then started reading the official docs of Prisma and PlanetScale. Once I covered the basics, then the next step:
npx create-next-app polle
Installed Prisma, set up PlanetScale, and created the schema. I started off by implementing authentication, then CRUD operations on the poll, then implemented analytics by using chart.js, and at the end built this cool logo:
Which is nothing but a copy of an emoji from Notion π€£. I just changed its color using Figma π. I'm not a designer so I had to do this π. I also created an open-graph image using Canva:

Here are some difficulties that I faced during the development process:
These are some features that I thought of adding but was unable to do so. However, I will definitely add them in the future:
Live Preview: polle.shahmir.me
Github Repo: github.com/shahmirfaisal/polle
I'm Shahmir Faisal, currently pursuing my Bachelor's in Computer Engineering. I've been in the world of coding for 3 years now. I'm a web developer and my current stack consists of React, Next, Node, Express, and MongoDB. But now I will also include Prisma and PlanetScale π₯.
In the end, I want to say thanks to Hashnode and PlanetScale for organizing such a great hackathon where we can learn and show our skills by building cool projects.