@ysfred4/api-client
v1.1.6
Published
API client for electionguard-api-python
Downloads
37
Readme
🗳 ElectionGuard UI
This repository is a "reference implementation" of ElectionGuard UI written using Typescript and Lerna. This is a Monorepo using Lerna which has multiple packages. These packages can be compiled and released separately. The websites and the compoent library use ReactComponents of this library can also be used to construct frontend implementations that need to talk to the ElectionGuard server API.
📁 In This Repository
| File/folder | Description |
| -------------------------------------------- | ------------------------------------- |
| packages
| Monorepo packages for this project |
| package/admin-app
| sample UI for an admin website |
| packages/api-client
| library for connecting to api backend |
| packages/library
| library for sample UI components |
| packages/result-app
| sample UI for election result website |
| CONTRIBUTING.md
| Guidelines for contributing |
| README.md
| This README file |
| LICENSE
| The license for ElectionGuard-Python. |
❓ What Is ElectionGuard?
ElectionGuard is an open source software development kit (SDK) that makes voting more secure, transparent and accessible. The ElectionGuard SDK leverages homomorphic encryption to ensure that votes recorded by electronic systems of any type remain encrypted, secure, and secret. Meanwhile, ElectionGuard also allows verifiable and accurate tallying of ballots by any 3rd party organization without compromising secrecy or security.
Learn More in the ElectionGuard Repository
🦸 How Can I use ElectionGuard?
ElectionGuard supports a variety of use cases. The Primary use case is to generate verifiable end-to-end (E2E) encrypted elections. The Electionguard process can also be used for other use cases such as privacy enhanced risk-limiting audits (RLAs).
💻 Requirements
- Node is used to simplify the commands and GitHub Actions. This approach is recommended to simplify the command line experience. This is built in for MacOS and
- Yarn is used as the package manager instead of npm.
- Lerna is used to create a monorepo and multiple projects inside of this single github repo. This allows for each small project to be built and deployed separately.
- GNU Make is used to simplify the commands and GitHub Actions. This approach is recommended to simplify the command line experience. This is built in for MacOS and Linux. For Windows, setup is simpler with Chocolatey and installing the provided make package. The other Windows option is manually installing make.
🚀 Quick Start
In the project directory, you can run:
Using make, the entire [GitHub Action workflow][pull request workflow] can be run with one command:
make
Installs lerna and does a bootstrap for the projects. You might need to enter your admin credentials when this runs.
make install
Launches the test runner in the interactive watch mode.
See the section about running tests for more information.
make test
Builds the app for production to the build
folder for each package.
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
Your app is ready to be deployed!
See the section about deployment for more information.
make build
Runs linting on all of the packages can be run by executing:
make lint
Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.
The page will reload if you make edits.
You will also see any lint errors in the console.
make start
Runs the app in the storybook mode.
Open http://localhost:6006 to view it in the browser.
The page will reload if you make edits.
You will also see any lint errors in the console.
make storybook
A local docker image will be created to run the admin website instead of running it directly like the 'make start' comand above.
make docker-dev-app
A local docker image will be created to run the storybook website instead of running it directly like the 'make storybook' comand above.
make docker-dev-storybook
Contributing
This project encourages community contributions for development, testing, documentation, code review, and performance analysis, etc. For more information on how to contribute, see [the contribution guidelines][contributing]
Code of Conduct
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.
Reporting Issues
Please report any bugs, feature requests, or enhancements using the GitHub Issue Tracker. Please do not report any security vulnerabilities using the Issue Tracker. Instead, please report them to the Microsoft Security Response Center (MSRC) at https://msrc.microsoft.com/create-report. See the [Security Documentation][security] for more information.
Have Questions?
Electionguard would love for you to ask questions out in the open using GitHub Issues. If you really want to email the ElectionGuard team, reach out at [email protected].
License
This repository is licensed under the MIT License
Trademarks
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.