https://github.com/mahirsalahin/cavs
CUET Anonymous Voting System
https://github.com/mahirsalahin/cavs
alembic fastapi framer-motion nextjs oauth2 postgresql sqlmodel supabase tailwindcss
Last synced: 2 months ago
JSON representation
CUET Anonymous Voting System
- Host: GitHub
- URL: https://github.com/mahirsalahin/cavs
- Owner: MahirSalahin
- License: mit
- Created: 2024-09-29T16:42:14.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-01-18T12:03:15.000Z (5 months ago)
- Last Synced: 2025-04-12T08:09:00.649Z (2 months ago)
- Topics: alembic, fastapi, framer-motion, nextjs, oauth2, postgresql, sqlmodel, supabase, tailwindcss
- Language: TypeScript
- Homepage: https://cavs.vercel.app
- Size: 993 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CAVS (CUET Anonymous Voting System)
A secure and anonymous voting platform designed specifically for CUET (Chittagong University of Engineering & Technology) students.
## 🌟 Overview
CAVS enables students to participate in polls and surveys while maintaining their anonymity. The system uses CUET email addresses for authentication but ensures voter privacy through SHA256 email hashing and secure data handling.
### Key Technologies
- **Backend**: FastAPI, SQLModel
- **Frontend**: Next.js, Tailwind CSS, Framer Motion
- **Database**: PostgreSQL with Supabase
- **Containerization**: Docker## ✨ Features
- **Secure Authentication**
- CUET email verification
- SHA256 email hashing for anonymity
- Secure token-based sessions- **Poll Management**
- Anonymous voting mechanism
- Custom poll creation
- Time-bound polls
- Public and private poll options
- Real-time results visualization- **Privacy First**
- No voter identity tracking
- Encrypted data storage
- Transparent poll creation## 🚀 Getting Started
### Prerequisites
- Node.js 18+
- Python 3.12+
- Docker (optional)
- Poetry (for Python dependency management)### Local Development
1. **Clone the repository**
```bash
git clone https://github.com/MahirSalahin/cavs.git
cd cavs
```2. **Backend Setup**
```bash
cd backend
poetry install
poetry run uvicorn main:app --reload
```3. **Frontend Setup**
```bash
cd frontend
pnpm install
pnpm dev
```4. **Docker Setup (Alternative)**
```bash
docker-compose up -d
```Visit `http://localhost:3000` for the frontend and `http://localhost:8000/docs` for the API documentation.
## 📚 Documentation
- [Backend Documentation](./backend/README.md)
- [Frontend Documentation](./frontend/README.md)## 🤝 Contributing
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request## 📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.