{"id":19809861,"url":"https://github.com/danieljancar/votevault","last_synced_at":"2025-05-01T08:31:20.022Z","repository":{"id":249275362,"uuid":"830970867","full_name":"danieljancar/votevault","owner":"danieljancar","description":"Decentralized voting application using Stellar smart contracts for transparent and anonymous voting. ⛓️","archived":false,"fork":false,"pushed_at":"2024-08-23T08:59:00.000Z","size":2073,"stargazers_count":2,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-04-25T18:56:21.444Z","etag":null,"topics":["angular","blockchain","decentralized","dev-community","smart-contracts","soroban","stellar"],"latest_commit_sha":null,"homepage":"https://vv.danieljancar.dev/","language":"TypeScript","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/danieljancar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-19T11:13:22.000Z","updated_at":"2024-08-23T09:32:37.000Z","dependencies_parsed_at":"2024-08-23T10:00:48.039Z","dependency_job_id":null,"html_url":"https://github.com/danieljancar/votevault","commit_stats":null,"previous_names":["danieljancar/votevault"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danieljancar%2Fvotevault","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danieljancar%2Fvotevault/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danieljancar%2Fvotevault/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danieljancar%2Fvotevault/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danieljancar","download_url":"https://codeload.github.com/danieljancar/votevault/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251847664,"owners_count":21653558,"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":["angular","blockchain","decentralized","dev-community","smart-contracts","soroban","stellar"],"created_at":"2024-11-12T09:18:30.133Z","updated_at":"2025-05-01T08:31:19.551Z","avatar_url":"https://github.com/danieljancar.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"assets/brand/vv-logo-m.webp\" width=\"250\" height=\"250\" alt=\"VoteVault Logo\"\u003e\n    \u003ch1\u003eVoteVault\u003c/h1\u003e\n    \u003cp\u003eA open-source, blockchain-based voting platform built with Stellar Smart Contracts.\u003c/p\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![Stellar](https://img.shields.io/badge/Stellar-07B5E5?logo=stellar)](https://stellar.org)\n[![Nx Workspace](https://img.shields.io/badge/Nx-143055?logo=nx)](https://nx.dev/)\n[![Angular](https://img.shields.io/badge/Angular-DD0031?logo=angular)](https://angular.io/)\n[![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?logo=typescript\u0026logoColor=white)](https://www.typescriptlang.org/)\n\n[![Release](https://github.com/danieljancar/votevault/actions/workflows/release.yml/badge.svg)](https://github.com/danieljancar/votevault/actions/workflows/release.yml)\n[![Linter](https://github.com/danieljancar/votevault/actions/workflows/lint.yml/badge.svg)](https://github.com/danieljancar/votevault/actions/workflows/lint.yml)\n[![Formatting](https://github.com/danieljancar/votevault/actions/workflows/format.yml/badge.svg)](https://github.com/danieljancar/votevault/actions/workflows/format.yml)\n\n[![MIT License](https://img.shields.io/badge/License-MIT-blue)](LICENSE)\n\n\u003c/div\u003e\n\n---\n\nThis project is part of the [Stellar Smart Contract Challenge](https://dev.to/challenges/stellar) on [Dev.to](https://dev.to/).\n\nWe built a blockchain-based voting platform using Stellar Smart Contracts. VoteVault is a secure and transparent voting platform that allows users to create and participate in voting processes. Find out more about our journey building VoteVault in the [Dev.to post](https://dev.to/gr1ll/votevault-our-journey-from-a-lunchtime-idea-to-dapp-2opf) or visit the [VoteVault website](https://vv.danieljancar.dev).\n\n**Note**: Our Smart Contracts are still deployed on the [Stellar Testnet](https://developers.stellar.org/docs/learn/fundamentals/networks#testnet) and can't be used for a large audience yet. Also we can't ensure full auth security and integrity. The application currently serves as a proof-of-concept and fully functioning prototype. 🌱\n\n# Table of Contents\n\n- [Features](#features)\n- [Product Evaluation](#product-evaluation)\n  - [User Stories](#user-stories)\n  - [Use Cases](#use-cases)\n  - [Known Issues](#known-issues)\n  - [Future Features](#future-features)\n- [Contributing](#contributing)\n  - [Developer Guidelines and Repository Setup](#developer-guidelines-and-repository-setup)\n  - [Development Previews](#development-previews)\n- [License](#license)\n- [Credits](#credits)\n  - [Special Thanks](#special-thanks)\n  - [Contributors](#contributors)\n\n# Features\n\nWith VoteVault, you can create and participate in secure and transparent voting processes. Here are some of the features of VoteVault:\n\n- **Stellar Smart Contracts**: Ensure secure and verifiable voting through Stellar smart contracts.\n- **Angular Frontend**: Enjoy a sleek, responsive user interface designed using Angular, optimized for both desktop and mobile devices, developed with Tailwind CSS.\n- **Secure and Transparent**: VoteVault tries to implement secure and transparent voting processes, ensuring the integrity of the voting system.\n- **Verifiable Results**: All votes are stored on the Stellar blockchain, allowing for verification of the voting results.\n\n# Product Evaluation\n\n## User Stories\n\nWe wrote down some user stories to guide the development of VoteVault. Here are some of the most important ones:\n\n### Authentication\n\n- As a user, I want to be able to register a new Stellar account, so I can participate in the voting process.\n- As a user, I want to be able to login to my account, so I can access the voting platform.\n\n### Voting\n\n- As a user, I want to be able to create a new vote, so I can start a voting process.\n- As a user, I want to be able to cast my opinion on a vote, so I can participate in the voting process.\n- As a user, I want to be able to see the results of a vote, so I can verify the voting process.\n- As a user, I want to be able to copy the vote link, so I can share it with others.\n\n### User Experience\n\n- As a user, I want to get feedback on my actions, so I know what is happening.\n- As a user relying on accessibility features, I want to be able to use the platform, so I can participate in the voting process.\n\n## Use Cases\n\nVoteVault integrating Stellar Smart Contracts could be used in various scenarios, such as:\n\n- **Company Elections**: Companies could use VoteVault to conduct internal elections, such as electing a new board member.\n- **Community Decisions**: Communities could use VoteVault to make decisions on community projects or initiatives.\n- **Controversial Opinions**: People could use VoteVault to express their opinions on controversial topics.\n\nBased on this evaluation, the product sets a base source code for enhancing the platform with more features. Such as using VoteVault \"core\" as a base for a more complex voting system, like government elections with each citizen being registered once (which would kill the anonymity of the votes - _sigh_) or other useful extensions of our application. This provides a real-world use case for the Stellar Smart Contracts and the VoteVault platform.\n\n## Known Issues\n\nAs this project was developed in a short amount of time, there are some known issues that we would like to call out and address in the future:\n\n- **Accessibility**: The platform is not fully accessible yet. We tried to implement some accessibility features, but there is still some work to do.\n- **Error Handling**: The error handling is not perfect yet, but already pretty good.\n- **Protect from Sybil Attacks and improved Authentication**: We need to implement a way to protect the platform better from Sybil and other attacks.\n- **Improve UI/UX**: We implemented a lot of logic and tried to keep the UI clean and straightforward, still we will continue working on it and improving as much as possible.\n\n## Future Features\n\nWe also got some additional features we thought about and couldn't implement yet.\n\n- **Voting Timeframes**: Users creating a new vote can decide whether there's a start and end date for the votes.\n- **Multiple Options**: Users can also create votes where multiple options can be selected.\n- **Full Test Coverage**: We want to have full test coverage for the platform.\n- **Automated Testing**: We already have implemented some automated testing and linting, also in the `release.yml` action, where the app is automatically deployed. If we add full test coverage, we can also add automated testing to the deployment process (spec and e2e tests).\n- **Dynamic OG Tags**: We want to implement dynamic OG tags for the vote pages, so users can share the vote on social media platforms even better.\n- **Fees and Tokenization**: In a production environment, fees will need to be covered either by the vote creator or the participants. This could involve tokenization mechanisms where a small fee is charged for vote creation or participation, ensuring the platform remains sustainable.\n\n# Contributing\n\nContributions are appreciated! If you want to contribute, please read and comply with the [Contributing Guidelines](.github/CONTRIBUTING.md), [Code of Conduct](.github/CODE_OF_CONDUCT.md), and [Developer Certificate of Origin](.github/DCO.md) first.\n\n## Developer Guidelines and Repository Setup\n\nWe have several documents for developers to help them get started with the project. You can find them in the `docs` or `.github` directory. Here are some of the most important ones:\n\n- [Contributing Guidelines](.github/CONTRIBUTING.md)\n- [Workflow](docs/WORKFLOW.md)\n- [Best Practices](docs/BEST_PRACTICES.md)\n- [Formatting](docs/FORMATTING.md)\n- [Dev Actions](docs/DEV_ACTIONS.md)\n\nWe very much suggest you read these documents before contributing to the project, especially the [Contributing Guidelines](.github/CONTRIBUTING.md) and [Workflow](docs/WORKFLOW.md).\n\n# License\n\nThis project is licensed under the [MIT License](LICENSE). By contributing to VoteVault, you agree that your contributions will be released under the same license. Also, you agree to the [Contributor Covenant Code of Conduct](.github/CODE_OF_CONDUCT.md) and [Developer Certificate of Origin](.github/DCO.md).\n\n# Credits\n\n## Special Thanks\n\nThanks to the following projects and their contributors for making VoteVault possible:\n\n- [Stellar](https://stellar.org)\n- [Angular](https://angular.io/)\n- [Tailwind CSS](https://tailwindcss.com/)\n\nThis project was done as part of the [Stellar Smart Contract Challenge](https://dev.to/challenges/stellar) on [Dev.to](https://dev.to/).\n\n## Contributors\n\nThanks to the following people for their contributions:\n\n[![Contributors](https://contrib.rocks/image?repo=danieljancar/votevault)](https://github.com/danieljancar/votevault/graphs/contributors)\n\nReleased under [MIT License](LICENSE) by [@danieljancar](https://github.com/danieljancar) and [@cyrilkurmann](https://github.com/Gr1ll)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanieljancar%2Fvotevault","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanieljancar%2Fvotevault","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanieljancar%2Fvotevault/lists"}