Skip to content

Technical Installation Manual

fffrikkie edited this page Jul 28, 2022 · 8 revisions

Technical Installation Manual

Technical Installation

Introduction

The following document provides details about how to go about installing and setting up the Vote Vault project to perform all the functions provided. The full system is comprised of both front-end and back-end aspects which both have more subsystems. The front-end comprises of the website to view voting information and the voting app where officials and voters can register and/or login to complete the voting process. All the frontend functionality was developed with Angular and Angular Ionic. The back-end comprises of an API, a service that is provided by Cloud Firestore, a database, also powered by Cloud Firestore and finally the blockchain which in this case is Ethereum.

Prerequisites

The basic requirements required to run the system is a computer capable of running a text editor and web browser. A text editor is required to manipulate the repository code to run the features. A web browser needs to be installed to view the website and mobile app on your computer.

The front-end libraries that need to be installed include the Angular library (link to installation and setup guide - https://angular.io/guide/setup-local), and the ionic library (link to installation guide - https://ionicframework.com/docs/intro/cli) which requires a node.js installation. The angular library is used to run the website from the terminal (localhost version) and the ionic library is used to run the mobile app from the terminal (localhost version).

The back-end software that needs to be installed is only for the blockchain to run a personal Ethereum blockchain to perform all the action neccesary to make and test transactions. The software is Ganache from the Truffle Suite. It can be downloaded and further installed with instructions on how to use from the following website - https://trufflesuite.com/ganache/. The MetaMask extension for your browser also needs to be installed to run the network service provided by Ethereum. The programming language used for the blockchain is Solidity and requires nothing to install to run the software. The database utilizes the Cloud Firestore service and requires no installation for use of software.

Installation

To install the software to run Vote Vault go to the following link for the GitHub repository - https://github.com/COS301-SE-2022/Vote-Vault. On this page you will have the option to clone the project from the main branch to run the software. To do so simply make sure you are in the main branch by selecting it. Once you are in the main branch, click on the green button labeled with "Code". This will give you the option to open the project in GitHub desktop (from which you can then open it in your IDE) or to download a zip file containing the code. The zip file can then be extracted and opened in the IDE. From either option once the code is open in your IDE you have cloned the repository and installed the software on your computer.

Deployment and Running

There are two components to deploy in order to run the front-end part of the project. The first is the website. This can be deployed and run through the terminal in the IDE. Ensure that you are in the feature-website branch and have angular installed. You can then run the ng serve command to deploy the website. Note that from the IDE you are running a local version of the project and that you need to use the following link - localhost:4200/home in the browser to run the website. The second component is the app. The app can be deployed by going to the feature-Mobile-App branch and ensuring you have the ionic library installed. You can then run the ionic serve command to deploy the app to be run, once again as a local version and the following link - (insert link). For the back-end, once you have Ganache installed and running, the code in the system files will do the work for the blockchain. (insert rules for deploying and running the database). Use the following link to view the User Manual - https://github.com/COS301-SE-2022/Vote-Vault/wiki/User-Manual

Version numbers of software used:

  • Angular - Version 13.2.7
  • Ionic - Version 6.20.1
  • Ganache - Truffle version 5.0.2