LHL midterm Project by : Victor Poirier
, Eric Lombardo
, and Hatem (Ahmed Attia)
PasswordKeepR is a web app that allow users to share credentials of app services (such as facebook page) between specific members.
- a new
user
can register for an account. - an
existing user
can login into his account. - a
user
must enter a validemail
andpassword
; and her/his/theirname
. - a
user
stays logged in until she/he/they logs out.
- any
user
can create an "app credentials" : a username and a related password. This user becomes known as "Owner
" (of the credential). - an
Owner
may share her/his/theircredentials
with another user who shall be called "Viewer
". - an
Owner
may revoke aViewer
's access to her/his/their credential(s). - an
Owner
may alter or delete her/his/theircredentials
, aViewer
can not. - an
Owner
may have 1 or morecredentials
. - an
App Credential
may be associated with an "App
" (e.g. facebook, linkedIn,..) - an
App Credential
may have acategory
(social, entertainment, Work,..) it is "uncategorized
" by default.
- Create the
.env
by using.env.example
as a reference:cp .env.example .env
- Update the .env file with your correct local information
- username:
labber
- password:
labber
- database:
midterm
- Install dependencies:
npm i
- Fix to binaries for sass:
npm rebuild node-sass
- Reset database:
npm run db:reset
- Check the db folder to see what gets created and seeded in the SDB
- Run the server:
npm run local
- Note: nodemon is used, so you should not have to restart your server
- Visit
http://localhost:8080/
- Node 10.x or above
- NPM 5.x or above
- PG 6.x
- bcrypt 2.0.0
- body-parser 1.19.0
- chalk 2.4.2
- cookie-session 1.4.0
- dotenv 2.0.0
- ejs 2.6.2
- express 4.17.1
- morgan 1.9.1
- node-sass-middleware 0.11.0
- pg 6.4.2
- pg-native 3.0.0
Our Database contains 5 tables:
Tables | description |
---|---|
users | all user account informations on the webapp, some are "owners" and some are "viewers" [of a credential] |
categories | contains the categories of app_credentials |
app_list | list of apps with which a app_credentials is associated. |
app_credentials | these are the credentials (username/password) entity that are being shared accross users for a certain app. |
shared_access | a middle/bridge table to associate app_credentials to other users, refered to as "viewers". |