/Multipart-Authentication

Project implementing the use of computer vision and voice identification to create a multipart-authentication system

Primary LanguageJavaScriptMIT LicenseMIT

Multi-part Authentication

An experiment with multi-part authentication using machine learning


Table of Contents:


Prerequisites

To run this project your server machine needs to have the following installed:

follow the installation instructions specific to your OS

Installation and Setup

  1. Use the Node package manager npm to install all of the projects Node dependencies.
npm install
  1. Use the Python 3 package manager pip to install all of the projects Python dependencies
pip3 install -r requirements.txt

If you are running Ubuntu run the following command to make sure Tkinter is properly installed:

sudo apt-get install python3-tk

  1. Generate your vapid keys:
./node_modules/.bin/web-push generate-vapid-keys

The output should look similar to the following:

=======================================

Public Key:
<Your Key Here>

Private Key:
<Your Key Here>

=======================================

Copy these keys into their respective variables in the .env_example file.


  1. Connect to your MongoDB Cluster

This project uses MongoDB as the database for storing user profile information. You will need to setup your own cluster with MongoDB Atlas


Once you've created a cluster, navigate to the connect dialog and select Connect Your Application You should be given a url that looks like the following:

'mongodb+srv://<Your User>:<password>@<Your Cluster>.mongodb.net/test?retryWrites=true&w=majority'

copy this url with the correct user password replacing <password> into the DB_URL variable in .env_example


  1. Finalize the .env_example File

Remove _example from the .env_example file name and your .env will be finalized

Usage

Start the node server:

npm run serve

Alternatively, run the server in development mode:

npm run dev

You can change the default port (8080) the server runs on in package.json:

"config": {
    "port": "<Your Port Here>"
}

To delete a user from the server type:

delUser

In your terminal while the server is running. The appropriate prompts will follow

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT