Skip to content

Repository files navigation

Click2Vote

This project is a Real-Time Ranked-Choice Voting App that allows users to create polls, invite friends to participate, add nominations, cast their votes, and view the final results in real time.

▶️ Watch the demo on YouTube


Framework Design

design



Technologies

Typescript | NestJs | Redis | Socket.io | Docker | ReactJs


Features

  • Real-time updates via WebSockets (Socket.IO)
  • Ranked‑choice voting: voters select preferences and final tallies use Instant-Runoff logic.
  • Backend: NestJS (TypeScript), REST APIs + WebSocket gateway.
  • Frontend: React (TypeScript), responsive UI for voting and dynamic results.
  • In‑memory vote storage: Redis‑JSON or Redis as backend store.
  • Clean architecture: controllers, services, modules, repositories, gateways, guards, pipes, interceptors.


How to Run

  1. Clone the repo
  2. Download Docker and Docker Compose
  3. Navigate to the project repo and run the following
# In root directory
npm install 
docker-compose up

cd backend/ && npm install && cd ..
# Configure Redis connection settings in .env

cd frontend/ && npm install && cd ..

npm run server
npm run client

About

A lightweight, real-time voting platform built with React, NestJS, and Redis.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages