Skip to content

3zbumban/realtime-polls-fullstack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

170 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

polling app

description

Realtime Polling App – Vue.js, Node.js, MongoDB. A fullstack realtime polling app for creating, voting and browsing polls with a REST API.

  • Frontend: Vue.js with Chart.js for live poll result updates
  • Backend: Node.js with Socket.io and REST API
  • Database: MongoDB (no ORM)
  • Anti-spam: FingerprintJS-based browser fingerprinting
  • Docker Compose
  • Kubernetes manifests included for deployment testing

alt text

docker quickstart 🚀

git clone https://github.com/3zbumban/realtime-polls-fullstack
cd realtime-polls-fullstack
# create .env file
cp .env.sample .env
docker compose up

architecture

development ⚒

  • nodejs -v 18.1.0

  • If ports 3000 and 3030 are available

  • and you use the command below to run mongoDB (so credentails are the same)

  • you won't have to change configs you just have to create .env like the samples

run mongoDB using docker

docker run -d --name mongo-test-1 -e MONGO_INITDB_ROOT_USERNAME=mongouser -e MONGO_INITDB_ROOT_PASSWORD=mongopassword123 -p 27017:27017 mongo:5.0.5

Now open two Terminals one for client and one for server.

client

cd client
cp .env.sample .env
# set `VITE_API_URL` in `.env` if needed
npm i
npm run dev

server

cd server
cp .env.sample .env
# set `PORT` and `MONGO_URI` in `.env` if needed
npm i
npm run dev

deploy

npm i -g vercel
vercel login
vercel deploy

reference

About

A fullstack realtime polling app for creating, voting and browsing polls with a REST-API. Using Vue.js, Node.js, Socket.io, MongoDB

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors