{"id":15103744,"url":"https://github.com/akashmanujaya/steadfast-voting-system","last_synced_at":"2026-01-20T10:32:31.276Z","repository":{"id":232300360,"uuid":"776043605","full_name":"akashmanujaya/steadfast-voting-system","owner":"akashmanujaya","description":"The Steadfast Voting System is a robust web application designed to facilitate secure and efficient online voting. This project leverages modern web technologies and best practices to deliver a seamless user experience and reliable backend services.","archived":false,"fork":false,"pushed_at":"2024-03-22T15:13:11.000Z","size":170,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-05T13:02:45.602Z","etag":null,"topics":["docker","laravel","php","phpunit","unittest","vuejs"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/akashmanujaya.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-03-22T15:07:34.000Z","updated_at":"2024-04-08T23:38:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"519432a2-d34e-448d-a654-6ee9220c0ffa","html_url":"https://github.com/akashmanujaya/steadfast-voting-system","commit_stats":{"total_commits":2,"total_committers":1,"mean_commits":2.0,"dds":0.0,"last_synced_commit":"ae7370031db5cb1cef1c8d65f4d39f8aefcdd5dc"},"previous_names":["akashmanujaya/steadfast-voting-system"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/akashmanujaya/steadfast-voting-system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akashmanujaya%2Fsteadfast-voting-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akashmanujaya%2Fsteadfast-voting-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akashmanujaya%2Fsteadfast-voting-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akashmanujaya%2Fsteadfast-voting-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akashmanujaya","download_url":"https://codeload.github.com/akashmanujaya/steadfast-voting-system/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akashmanujaya%2Fsteadfast-voting-system/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28601835,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T09:39:28.479Z","status":"ssl_error","status_checked_at":"2026-01-20T09:38:10.511Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["docker","laravel","php","phpunit","unittest","vuejs"],"created_at":"2024-09-25T19:41:50.367Z","updated_at":"2026-01-20T10:32:31.255Z","avatar_url":"https://github.com/akashmanujaya.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Steadfast Collective Voting System\n\n## Introduction\n\nThe Steadfast Voting System is a robust web application designed to facilitate secure and efficient online voting. This project leverages modern web technologies and best practices to deliver a seamless user experience and reliable backend services.\n\n### Technologies Used\n\nThis project is built using Laravel, Vue.js, Tailwind CSS, and Docker, among other technologies. Key features include:\n\n- **Geolocation Tracking**: Utilizes the `stevebauman/location` package to determine and store the geographical location of voters for analytical purposes.\n- **Queue Service with Supervisor**: Ensures background jobs (like email sending) are processed efficiently.\n- **Cronjob for Task Scheduling**: Handles periodic tasks like daily email summaries.\n- **Docker Environment**: Recommended for easy setup, encapsulating services like Supervisor and Cronjobs, ensuring everything is pre-configured and ready to use.\n- **Manual Configuration Option**: For users opting not to use Docker, manual setup of queue workers and cron jobs is necessary.\n\nUsing Docker, you won't need to manually configure services like Supervisor for queue management or set up cron jobs for task scheduling; everything is pre-packaged for convenience. For non-Docker users, manual setup instructions are provided.\n\n## Project Requirements\n\n- Composer \u003e= 2.6.6\n- PHP \u003e= 8.2\n- Node \u003e= 20.11.0\n- Npm \u003e= 10.2.4\n- Laravel \u003e= 10.10\n- Mailtrap Account\n\n## Configure Mailtrap for Email Service\n\nMailtrap is used in this project to simulate an email inbox for testing and development purposes. To configure Mailtrap, follow these steps:\n\n1. **Create a Mailtrap Account:**\n   - If you don't already have a Mailtrap account, visit [Mailtrap's website](https://mailtrap.io/) and sign up for a free account.\n\n2. **Find Your Mailtrap Credentials:**\n   - Once logged in, go to your inbox and click on the 'SMTP Settings' tab. \n   - Select 'Laravel 9+' from the dropdown to get the configuration details tailored for Laravel.\n\n3. **Update Environment Variables:**\n   - Open your project's `.env.example` file. \n   - Locate the SMTP settings section and update it with your Mailtrap credentials. It should look something like this:\n\n     ```\n     MAIL_MAILER=smtp\n     MAIL_HOST=sandbox.smtp.mailtrap.io\n     MAIL_PORT=2525\n     MAIL_USERNAME=your_mailtrap_username\n     MAIL_PASSWORD=your_mailtrap_password\n     MAIL_ENCRYPTION=tls\n     MAIL_FROM_ADDRESS=from@example.com\n     MAIL_FROM_NAME=\"${APP_NAME}\"\n     ```\n\n   - Replace `your_mailtrap_username` and `your_mailtrap_password` with the actual username and password provided by Mailtrap.\n   - The `MAIL_FROM_ADDRESS` and `MAIL_FROM_NAME` can be set to your preferences or left as default for testing.\n\n## Installation Steps Using Docker\n\n1. **Clone the Repository**:\n    ```bash\n    git clone https://github.com/akashmanujaya/steadfast-voting-system.git\n    ```\n\n2. **Navigate to the Project Directory**:\n    ```bash\n    cd steadfast-voting-system\n    ```\n\n3. **Build and Start Docker Containers**:\n    ```bash\n    docker-compose up -d --build\n    ```\n    - **After run this code, your container will be built. Please wait few secods until the container run all the commands inside the temainal. please check your conatainer terminal for logs. after success installaion all the packages, the application will be run on `http://0.0.0.0:8000`**\n\n4. **Access the Application**: Open your web browser and visit `http://0.0.0.0:8000`.\n\n## Installation Steps Without Docker\n\n1. **Clone the Repository**:\n    ```bash\n    git clone https://github.com/akashmanujaya/steadfast-voting-system.git\n    ```\n\n2. **Navigate to the Project Directory**:\n    ```bash\n    cd steadfast-voting-system\n    ```\n\n3. **Install Composer Dependencies**:\n    ```bash\n    composer install\n    ```\n\n4. **Install NPM Packages**:\n    ```bash\n    npm install\n    ```\n\n5. **Set Up Environment**:\n    - Copy the example environment file:\n        ```bash\n        cp .env.example .env\n        ```\n    - Generate an application key:\n        ```bash\n        php artisan key:generate\n        ```\n\n6. **Build Assets**:\n    ```bash\n    npm run build\n    ```\n\n7. **Serve the Application**:\n    ```bash\n    php artisan serve\n    ```\n   Then, access the application at `http://127.0.0.1:8000/`.\n\n8. **Run the Queue Worker**:\n    To process jobs on your queue, you need to start a queue worker. In a production environment, consider using a process monitor like Supervisor to ensure the queue worker does not stop running. For development, you can start a worker with:\n    ```bash\n    php artisan queue:work\n    ```\n9. **Setting Up Cronjobs**\n    The Laravel scheduler relies on a single cron entry in your server to call the `schedule:run` command every minute. Add the following Cron entry to your server:\n    ```cron\n    * * * * * cd /path-to-your-project \u0026\u0026 php artisan schedule:run \u003e\u003e /dev/null 2\u003e\u00261\n    ```\n    Replace `/path-to-your-project` with the absolute path to your Laravel project. This Cron job ensures that Laravel's task scheduler runs every minute to execute any scheduled tasks.\n\n## Technologies and Libraries\n\nThis project makes use of several key technologies and libraries, including:\n\n- **Laravel**: A robust PHP framework for web and API development, providing a rich set of functionalities for modern web applications.\n- **Vue.js**: A progressive JavaScript framework used for building user interfaces, particularly single-page applications.\n- **Tailwind CSS**: A utility-first CSS framework for rapidly building custom designs.\n- **stevebauman/location**: A Laravel package used for retrieving user location information based on IP addresses, enhancing the application's functionality by allowing geographical analysis of user activities.\n- **Docker**: A platform for developing, shipping, and running applications with containerization.\n- **PHPUnit**: A popular testing framework for PHP, used for writing and running unit tests.\n- **Supervisor**: A process control system that ensures the Laravel queue workers are continuously running.\n- **Cronjobs**: Used for scheduling periodic tasks such as sending out daily email summaries.\n\n## Running Tests\n\n### Using Docker Environment\n\n1. **Access the Container's Shell**:\n    ```bash\n    docker exec -it aml-steadfast-collective-voting-system /bin/sh\n    ```\n\n2. **Run the Tests**:\n    ```bash\n    php artisan test\n    ```\n\n### In Non-Docker Environment\n\nSimply run the tests with the following command in your project root:\n\n```bash\nphp artisan test\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakashmanujaya%2Fsteadfast-voting-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakashmanujaya%2Fsteadfast-voting-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakashmanujaya%2Fsteadfast-voting-system/lists"}