In its current state, the project is capable of logging a user in with address and name validation. A user must be registered to be able to login. Once a user is logged in they are able to access the dynamically created voting page and cast their ballot. Functionality for logging out is also present in the current version. The project also includes an admin/guardians page. Here administrative users are able to start elections and tally running elections. This page is fully independent of the voters page and not accessible by non administrative users.
The backend and the frontend should be run seperately.
- Navigate to the
backend
directory - Execute the
pip install -r requirements.txt
command to ensure all requiremnets are installed - Execute the program using
python main.py
to run the program
- In the frontend navigate either to
voter
,guardian
, orverifier
directory - Execute the
npm install
command to ensuire all requirements are installed - Execute the program using
npm start
to run the program
SPRINT 7 - 4/3/2023
- Full ID scanning added to login
- Verifier completed
- Yubikey implementation
- IPad Testing
SPRINT 6 - 3/20/2023
- Added voter success page
- Added election record publishing
- Completed verifier related tasks
- Started on ID card scanning
- Added true hardware key distribution
SPRINT 5 - 2/26/2023
- Added ballot encryption with ElectionGuard
- Added tally decryption with ElectionGuard
- Started on verifier frontend page
- Reformated voting page to reflect client request
- Added guardian initialization from keys
SPRINT 4 - 2/1/2023
- Added key ceremony frontend to guardians app
- Added key ceremony backend behavior with ElectionGuard
- Add functionality for basic key distribution
- Restyled a few pieces of frontend
SPRINT 3 - 11/29/2022
- Added voter registration logic
- Got ballot and user info to post to database
- Created administrative pages for creating an election and getting a tally from an election
- Wrote election manifest verifiers
SPRINT 2 - 11/8/2022
- Updated parameters for login and authentication
- Connected login page to backend using FastAPI
- Setup SQL Models for future database use
- Completed a dynamic voting page for the frontend
- Connected frontend voting page with backend ballot logic
SPRINT 1 - 10/24/2022
- Added backend ballot implementation with FastAPI
- Created React template page and sample login page
- Added early stage of login backend system
- Lucas Nagle - Team Leader
- Tom Matz - Quality Assurance
- Ryan Harris - Release Manager
- Gerry Pasquale - Documentation Manager