Skip to content

nitro-neal/mypass

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MyPass

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

The latest mypass application can be found on the official city of austin github - https://github.com/cityofaustin/mypass

The MyPass application is secure document storage solution designed to help people experiencing homelessness to store and share their important documents, such as IDs and medical forms. The hope of this product is to make signing up for services and housing easier for people experiencing homelessness, by reducing the delays caused by lost or damaged documents.

Getting Started

First launch the backend server

Change the env.template to be a .env file and update to your values

$ cp env.template .env

Install dependencies:

$ yarn

Start the server:

$ yarn start

Hit the api endpoints at: http://localhost:5000/api/

One Click Heroku Deployment

Alternativly you can deploy the backend to heroku with one click:

Image of Heroku One Click Deploy Deploy to Heroku

Next Launch the React Frontend

The Frontend for this project can be found at: https://github.com/cityofaustin/mypass-frontend

Project Info

This project is funded by the Robert Wood Johnson Foundation and developed by the Innovation Office at the City of Austin. Kerry O'Connor is the lead investigator, and Daniel Culotta is the Co-investigator on this project. This project is a prototype to test the design considerations around serving a displaced population, and the technology considerations around permanent document management, distributed ledger technology, and the conference of e-notarization.

The project timeline can be found here: Timeline

MyPass Features

See the README.md files for respective notes in the server and webclient folders.

Authentication Flows

Helper with private key

sequenceDiagram
Frontend ->> Frontend: User enters private key for secure login
Frontend ->> Frontend: Frontend derives public key from private key EthCrypto.publicKeyByPrivateKey
Frontend ->> Backend: Get unique message for signing req = {publicAddress}
Backend ->> Backend : Store GUID this account needs to sign to be authenticated - updateAccountSignMessage
Backend->> Frontend: Give GUID as message to sign to frontend res = {messageToSign}
Frontend->>Frontend: Sign message with private key - EthCrypto.sign
Frontend->>Backend: Send signature as proof of private key ownership req={publicaddress, signature}
Backend ->> Frontend: Give JWT Auth Token
Loading

Helper with email / password

sequenceDiagram
Frontend ->> Backend: post to /login with creds req{ email, password }
Backend ->> Backend : Checks if password is valid with account password hash + salt
Backend ->> Frontend: Give JWT Auth Token
Loading

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages