Skip to content

winnerezy/veo

Repository files navigation

Veo - Secure Voting Platform

Veo is an open-source voting platform designed for creating, managing, and analyzing time-bound polls. Built with modern web technologies, it combines a React.js frontend with a Spring Boot backend to deliver a secure, scalable solution for real-time democratic decision-making. Key Features ✨

Poll Management
Create polls with custom voting options and expiration dates

Real-Time Analytics
Live vote tracking with dynamic visualizations

JWT Authentication
Secure user sessions with JSON Web Tokens

Role-Based Access Control
Granular permissions for users and administrators

Responsive Interface
Mobile-first design optimized for all devices

Automated Expiration
Scheduled poll termination via Spring Boot tasks

Architecture 🏗️ Component Technology Stack Frontend React.js, Axios, Shadcn UI Backend Spring Boot, Spring Security, Spring Data JPA Database PostgreSQL Authentication JWT Build Tools Maven, npm Installation Guide 📥 Prerequisites

Node.js v23+ & npm or bun

Java 17+ & Maven

PostgreSQL 16+

Setup Instructions

Clone Repository

git clone https://github.com/winnerezy/veo.git
cd veo

Backend Setup

cd backend
# Configure application.yml
mvn clean install
mvn spring-boot:run

Frontend Setup

cd frontend
npm install
npm start

Configuration ⚙️ Environment Variables

Backend (application.yml): properties

 datasource:
    url: jdbc:postgresql://${POSTGRES_HOST}/${POSTGRES_DATABASE}
    username: ${POSTGRES_USERNAME}
    password: ${POSTGRES_PASSWORD}
security:
  jwt:
    secret-key: ${SECRET_KEY}
    expiration-time: 604800000

Authentication

/api/auth/signup POST User registration
/api/auth/login POST User authentication

Poll Management

/api/polls GET List active polls
/api/polls/create POST Create new poll (authenticated)
/api/polls/{id} GET Get poll details
/api/polls/{id}/vote/{optonId} POST Submit vote

Releases

No releases published

Packages

No packages published