An intelligent, interactive assistant designed to clear voter confusion by providing real-time election roadmaps, registration steps, and polling locations.
- Interactive Voter Bot: Parses complex civic data into easy-to-follow, step-by-step guides.
- Real-time API Integration: Powered by the Google Civic Information API for accurate election data.
- Search History Tracking: Uses an SQLite database to maintain a secure record of voter inquiries.
- Responsive UI: A clean, accessible interface built with Tailwind CSS and designed for keyboard navigability.
- Backend: Python (Flask) with Blueprints and Factory Pattern.
- Security: Flask-Talisman for forced HTTPS and security headers.
- Database: SQLAlchemy (SQLite) for efficient record management.
- Testing: Pytest suite for automated logic validation.
- Frontend: HTML5, Tailwind CSS, JavaScript (Fetch API).
app/services/: Logic for Google Civic API communication.app/routes/: Interactive bot logic and endpoint management.app/models/: Database schema for recording user interactions.config/: Centralized YAML-based application settings.tests/: Comprehensive unit tests for core functionality.
- Clone the repository and navigate to the directory.
- Create and activate a virtual environment:
python3 -m venv .venv && source .venv/bin/activate. - Install dependencies:
pip install -r requirements.txt. - Set your
GOOGLE_CIVIC_API_KEYin the.envfile. - Run the application:
python3 main.py.
To verify the application logic and security configurations:
python3 -m pytest