/Secure-User

A full stack app that allows users to securely register or sign in then write notes which are saved to its database. 🔒

Primary LanguageJavaScript

Secure User

Overview

A full stack app that allows users to securely register or sign in then write notes which are saved to its database.

Why I built this app?

Internet security is a hot topic after recent hacks. I built this app that provides secure password encryption and connections for people so they can sign in and sefely log their travel entries.

Demo

Logic

  • User registers or signs in. App handles cases: unregistered email address, wrong email and password combination...
  • Password is encrypted before being saved to the database and decrypted to check user's input password when signing in.
  • User's connections are authenticated with a token (expires after a few hours) generated by the server and the token is decoded each time user makes a request.
  • User can change password or delete account. If user deletes account, old notes will be removed from database.
  • User writes new notes and app updates notes instantly from database, shows the previous notes by current user.

Installation

After cloning the repo to your local machine, go to its folder and run:

$ npm install --save

Next, you need to install mysql2 manually, so run:

$ npm install --save mysql2

You will also need to make your own keys.js file in folder /config. This is how your keys.js file should look like:

module.exports = {secret: 'YOUR OWN KEY HERE'};

Test

Go to folder /test and run:

$ mocha <test-file-name>

Technologies

  • MySQL, Express, NodeJS.
  • npm: mocha, chai, brcypt, jsonwebtoken, handlebars, body-parser.
  • jQuery, Bootstrap 4.

Author

  • Viet Nguyen - Solo developer