A modern, secure, and scalable electronic voting system with face recognition capabilities. VoteVision combines a robust backend with a beautiful frontend to provide a seamless and secure voting experience.
- 🔐 Secure JWT-based authentication
- 👤 Comprehensive user management with role-based access
- 🎥 Advanced face recognition for secure voter verification
- 📊 Complete election management system
- 🗳️ Secure and transparent voting process
- 📝 Detailed audit logging
- 📱 Responsive design for all devices
- 🎨 Modern and intuitive user interface
- 🔄 Real-time updates and notifications
VoteVision is built using a modern tech stack with separate frontend and backend services:
- FastAPI (Python)
- PostgreSQL
- SQLAlchemy
- Alembic
- Face Recognition
- JWT Authentication
- React 18
- TypeScript
- Tailwind CSS
- Shadcn UI Components
- React Query
- React Router
- Python 3.9+
- Node.js 18+
- PostgreSQL 13+
- Docker (optional)
- Clone the repository
git clone <repository-url>
cd votevision- Set up the backend
cd backend
poetry install
# Create .env file with required configurations
poetry run alembic upgrade head
poetry run uvicorn app.main:app --reload- Set up the frontend
cd frontend
bun install
# Create .env file with required configurations
bun run dev- Access the application
- Frontend: http://localhost:5173
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
votevision/
├── backend/ # FastAPI backend service
│ ├── app/
│ ├── alembic/
│ └── pyproject.toml
├── frontend/ # React frontend application
│ ├── src/
│ ├── public/
│ └── package.json
└── README.md
- API documentation available at
/docs(Swagger UI) - Database migrations managed with Alembic
- Poetry for dependency management
- Hot reload enabled for development
- TypeScript for type safety
- ESLint for code quality
- Tailwind CSS for styling
- JWT-based authentication
- Face recognition for voter verification
- Role-based access control
- Secure password hashing
- Audit logging for all actions
- Protected API endpoints
Both frontend and backend services can be containerized using Docker:
# Build and run backend
cd backend
docker build -t votevision-backend .
docker run -p 8000:8000 votevision-backend
# Build and run frontend
cd frontend
docker build -t votevision-frontend .
docker run -p 5173:5173 votevision-frontend- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, please open an issue in the GitHub repository or contact the maintainers.