Skip to content

A small password management website. Inspired by Last Pass. Proof of concept. Made with EJS, express and nodeJs.

Notifications You must be signed in to change notification settings

danekf/Signum-App

Repository files navigation

Contributors Forks Issues


Logo

SIGNUM

A password saver built by LHL students for their midterm Project
Explore the project »

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Database Setup
  3. Getting Started
  4. Roadmap
  5. App Images

About The Project

SignumScreenshot

Signum is a web app that serves as a password manager for its end users.

Built With

  • express, for server setup
  • bcrypt, for encryption
  • chalk, for a user pleasing server console
  • cookie session, for storing session cookies
  • ejs, as a view engine
  • bootstrap, for styling
  • jquery, for dynamic events
  • postgres, for database
  • nodemon, for automatic server resets on save
  • morgan, for logging of server requests
  • and many more...

This project aims to have its developpers hone their frontend, and backend skills, including PSQL to build a cohesive end product.

A user is able to register, create new saved logins and set them as favourites for easy access. It has dynamic viewport elements, so that mobile and desktop have optimized views of data.

The app also uses a modal drop down menu to automatically generate passwords for its users, and gives them different criteria with which to do so.

The app uses jquery event targetting to show/hide passwords for individual logins, as well as copying that data to clipboard.

Passwords are hidden by default but the login area can be clicked to view it.

(back to top)

Getting Started

Database Setup

To setup your database for the project, follow these instructions prior to forking and cloning the repo.



(back to top)

Repo Setup

  1. Fork this repo
  2. Clone your forked repo
   git clone https://github.com/your_username_/Signum-App
  1. Create a new .env in the root folder by using .env.example as a reference.

  2. Update the .env file with your correct local information (You can change this if youd like but ensure all references are updated)

  - username: `labber` 
  - password: `labber` 
  - database: `midterm`
  1. Install dependencies
  npm i
  1. Fix binaries for sass
  npm rebuild node-sass
  1. Build/reset the database with value from seeds
    -This step can be performed at any point to reset the database to its original seeded value.
  npm run db:reset
  1. Run the server!
  npm run local
  1. Checkout your server by visiting :
http://localhost:8080/


(back to top)

Warnings & Tips

The app does not currently encrypt user passwords for saved logins. 

They are stored as plain text which is absolutely not ideal for real world scenarios.

This app is meant for learning database management and to develop skills.

Real usernames and passwords should not be stored or used commercially at this point.

  • Do not edit the layout.css file directly, it is auto-generated by layout.scss
  • Split routes into their own resource-based file names, as demonstrated with users.js and widgets.js
  • Split database schema (table definitions) and seeds (inserts) into separate files, one per table. See db folder for pre-populated examples.
  • Use the npm run db:reset command each time there is a change to the database schema or seeds.
    • It runs through each of the files, in order, and executes them against the database.
    • Note: you will lose all newly created (test) data each time this is run, since the schema files will tend to DROP the tables and recreate them.

(back to top)

Roadmap

  • Add "Prettier" for cleaner linting.
  • Add instructions for setting up Postgres database to README File.
  • Encrypt saved login info. This is the next MAJOR step for the app.
  • Add organisations logic (Org can manage saved logins, and grant/revoke access to specific users/groups)
  • Add 2FA
  • Add Dynamic elements when selecting a login

See the open issues for a full list of proposed features (and known issues).

(back to top)

App images

Registration

Logo


(back to top)

Password Generator

Logo


(back to top)

Add New Login

Logo


(back to top)

Basic Search

Logo


(back to top)

Copy to Clipboard

Logo


(back to top)

About

A small password management website. Inspired by Last Pass. Proof of concept. Made with EJS, express and nodeJs.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •