2018 Fundamentals of Software Engineering Final Project
Our final project was an electronic voting application which could be used to manage elections. We used Loopback for our backend and Angular for our frontend. Our final product is a single-page web application which fulfills all of the project criteria while being intuitive and elegantly designed.
Links
Group Responsibilities
-
Kevin Blicharski: Frontend development, design, project management
-
Joseph Leiferman: Backend development, database management, documentation
-
Logan Brown: Some frontend and some backend development, documentation, quality assurance
Running the Application
Requirements
This project requires Node.js. In order to get Node, you have two options:
Option 1: Using nvm
Follow the instructions in the nvm repository README. After installing nvm, run nvm install node
.
Option 2: Downloading Node from the official website
Go to the Node.js downloads page and choose the version appropriate for your system.
Setting Up The Project
Clone the project by running git clone https://github.com/kblicharski/fswe-project.git
. Change directories using cd fswe-project
. Install project dependencies by running npm install
. Install the Angular CLI by running npm install -g @angular/cli
. Once that finishes, you are set to run the application locally.
Loopback Development Server
Run node server/server.js
. Feel free to explorer the backend API at http://localhost:3000/explorer/
.
Angular Development Server
Run ng serve --open
. Your default browser should open the application at http://localhost:4200/
.
Running Unit Tests
Run ng test --code-coverage
to execute the unit tests using Karma. In order to view code coverage, open index.html
in the generated coverage/
directory.
System Description
There are three tiers of users: voters, managers, and administrators. In order to see what each is capable of, sample credentials are provided that are created on server start.
Voter
- Username: jonSmith
- Password: jonSmith!
Manager
- Username: jonClancy
- Password: jonClancy!
Administrator
- Username: jonAdams
- Password: jonAdams!