{"id":18146592,"url":"https://github.com/hrishikeshwarrier4/realtime-voting-system","last_synced_at":"2026-04-11T09:46:21.898Z","repository":{"id":248601915,"uuid":"828315469","full_name":"hrishikeshwarrier4/realtime-voting-system","owner":"hrishikeshwarrier4","description":" The Real-Time Voting System is a distributed, fault-tolerant system designed to process, aggregate, and visualize votes in real time. It uses Apache Kafka for event streaming, Apache Spark for data processing, and PostgreSQL for storing voter and candidate data. The system is built on a microservices architecture and utilizes Docker.","archived":false,"fork":false,"pushed_at":"2024-10-21T23:11:11.000Z","size":1031,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-13T02:47:55.816Z","etag":null,"topics":["data-pipeline","docker","kafka","postgresql","python","spark","streamlit","visualization"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hrishikeshwarrier4.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-13T18:54:46.000Z","updated_at":"2024-10-22T18:08:01.000Z","dependencies_parsed_at":"2024-12-20T08:28:28.587Z","dependency_job_id":"a836a9c3-6bc4-4ff1-9d6f-3cf4f5e09a7a","html_url":"https://github.com/hrishikeshwarrier4/realtime-voting-system","commit_stats":null,"previous_names":["hrishikeshwarrier4/realtime-voting-system"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrishikeshwarrier4%2Frealtime-voting-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrishikeshwarrier4%2Frealtime-voting-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrishikeshwarrier4%2Frealtime-voting-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrishikeshwarrier4%2Frealtime-voting-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hrishikeshwarrier4","download_url":"https://codeload.github.com/hrishikeshwarrier4/realtime-voting-system/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247550642,"owners_count":20956984,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-pipeline","docker","kafka","postgresql","python","spark","streamlit","visualization"],"created_at":"2024-11-01T21:08:24.487Z","updated_at":"2026-04-11T09:46:16.848Z","avatar_url":"https://github.com/hrishikeshwarrier4.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Real-Time Voting System\n\nThe Real-Time Voting System is a distributed, fault-tolerant voting system designed to process, aggregate, and visualize votes in real time. This project utilizes Apache Kafka for event streaming, Apache Spark for data processing, and PostgreSQL for persistence of voter and candidate data. The system is built with microservices architecture, leveraging Docker for containerization.\n\n## Features\n\n- **Real-Time Vote Aggregation**: Processes incoming votes in real time from various polling stations using Kafka and Spark Streaming.\n- **Data Storage**: Utilizes PostgreSQL to persist information about voters, candidates, and voting results.\n- **Data Visualization**: Displays real-time voting statistics via a Streamlit-based web application.\n- **Fault Tolerance**: Ensures resilience through distributed components running in containers using Docker and Docker-Compose.\n- **Scalability**: Can scale easily by adding more Kafka brokers and Spark nodes.\n\n## Tech Stack\n\n- **Apache Kafka**: For real-time streaming of voting data.\n- **Apache Spark**: For processing and aggregating votes in real time.\n- **PostgreSQL**: As a relational database to store voter and candidate information.\n- **Streamlit**: To create a web-based dashboard for real-time visualizations of voting data.\n- **Docker \u0026 Docker-Compose**: For containerizing the application services and simplifying deployment.\n\n## Setup Instructions\n\n### Prerequisites\n\n- **Docker**: Ensure Docker and Docker-Compose are installed on your machine.\n- **Python**: Python 3.7+ installed on your local machine.\n- **Kafka**: A running Kafka instance (you can use the Docker setup to bring this up).\n\n### Steps to Setup the Project\n\n1. **Clone the repository**:\n   ```bash\n   git clone https://github.com/hrishikeshwarrier4/realtime-voting-system.git\n   cd realtime-voting-system\n2. ** Build and Start Services using Docker-Compose: Ensure that Kafka, PostgreSQL, and the Spark containers are running:**\n   ```bash\n   docker-compose up --build\n3. **Run the main, voting and spark_streaming code:**\n   ```bash\n    python main.py\n    python voting.py\n    python spark_streaming.py\n4. **Launch the Streamlit Web Application:**\n   ```bash\n   streamlit run streamlit-app.py\n5. **Access the Application:**\n   - Streamlit Web App: Open your browser and go to http://localhost:8501.\n   - Kafka: Kafka will be running at localhost:9092.\n   - PostgreSQL: Access the database at localhost:5432 (default user: postgres, default password: postgres).\n \n ## Configuration\n \n All environment-specific configurations are stored in the .env file, including database credentials and Kafka configurations.\n\n## License\nThis project is licensed under the MIT License \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhrishikeshwarrier4%2Frealtime-voting-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhrishikeshwarrier4%2Frealtime-voting-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhrishikeshwarrier4%2Frealtime-voting-system/lists"}