A password saver built by LHL students for their midterm Project
Explore the project »
Report Bug
·
Request Feature
Table of Contents
Signum is a web app that serves as a password manager for its end users.
- 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.
To setup your database for the project, follow these instructions prior to forking and cloning the repo.
- Fork this repo
- Clone your forked repo
git clone https://github.com/your_username_/Signum-App-
Create a new
.envin the root folder by using.env.exampleas a reference. -
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`- Install dependencies
npm i- Fix binaries for sass
npm rebuild node-sass- 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- Run the server!
npm run local- Checkout your server by visiting :
http://localhost:8080/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.cssfile directly, it is auto-generated bylayout.scss - Split routes into their own resource-based file names, as demonstrated with
users.jsandwidgets.js - Split database schema (table definitions) and seeds (inserts) into separate files, one per table. See
dbfolder for pre-populated examples. - Use the
npm run db:resetcommand 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
DROPthe tables and recreate them.
- 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).





