The ElectOS VersaClient is a web app that reads, edits, and saves Election Data.
ElectOS Versa is analogous to what is typically referred to as the “Election Management System,” or EMS, in traditional commercial voting systems.
-- From the ElectOS website
For more information about ElectOS Versa, please see What is “Versa”? on the VersaClient Wiki
For more on VersaClient, please see the TrustTheVote-Project/VersaClient Wiki. This wiki includes design documents, screen captures, wireframes, and other important information.
VersaClient was generated with Angular CLI version 11.2.3., part of the Angular TypeScript application development framework. Angular requires node.js and npm. See Getting Started, below, for details.
The VersaClient will connect to the TrustTheVote-Project/VersaEDM-Backend API to save and validate election data.
To work with this repo, first create a fork and then clone the fork to your development workstation. If you just want to try it out, you can download the code from GitHub as a Zip archive.
Once you have the contents of this repo on your development workstation, you'll need to install some software.
To run and develop VersaClient, you'll need to install Angular-CLI. To get started, review the Angular Local Setup: Prerequisites
VersaClient requirements include:
- node.js
- npm
- angular-cli
To see if you have the software installed correctly, enter the following commands at your terminal:
node -v
npm -v
ng --version
If these commands don't work, or result in errors or the wrong version numbers, follow the steps in Angular - Setting up the local environment and workspace for your specific platform.
Also, check out Getting Started: Setup in the VersaClient Wiki.
If you want to contribute code to VersaClient, you'll want to use karma and protractor. See below for details on testing.
The Angular CLI includes several important tools used to develop the VersaClient.
Run ng serve
to start a development server. Navigate to http://localhost:4200/
. The app will automatically reload if you change any of the source files.
The VersaClient app consists of a number of different Angular components, many of which correspond to a class of data in the Election Data file.
Run ng generate component component-name
to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module
.
Run ng build
to build the project. The build artifacts will be stored in the dist/
directory. Use the --prod
flag for a production build.
The VersaClient repo includes uint and end-to-end tests.
Run ng test
to execute the unit tests via Karma.
Run ng e2e
to execute the end-to-end tests via Protractor.
To get more help on the Angular CLI use ng help
or go check out the Angular CLI Overview and Command Reference page.