Giter VIP home page Giter VIP logo

passport-live's Introduction

Passport-Live

Build Status Codacy Grade License: AGPL-3.0 Maintenance

This is the next version of Passport; rebuilt in NodeJS Passport Live is a modern web app for schools that helps them manage passes.

NOTE

Raven and Sentry.io are included if you install the optional deps. See docs for more info

Installation

NOTE: These instructions are assuming you are using Ubuntu 16.04+ LTS

  1. Install the latest version of NodeJS Here
    a. Be sure that NPM was also installed.
  2. Install rethinkdb by following this tutorial.
  3. Give your user account ownership of npm. This is so you don't need sudo.
    a. First Try: ~$ sudo chown -R $(whoami) ~/.npm
    b. If that dosn't work, try: sudo chown -R $(whoami) /usr/local/lib/node_modules
  4. Download the latest version of "Passport-Live", ~$ mv it to your desiered location
  5. ~$ cd into its containing folder and then Unzip it.
  6. Run ~$ npm install
    a. (NOTE.) If you get errors related to "node-sass", run rm -rf node_modules and then run ~$ npm install --unsafe-perm
  7. Run ~$ rethinkdb
  8. Run in a new termanal instance ~$ npm run configure:db
  9. Once that is done, run ~$ npm run configure:root to create an admin permission key to create an account.
  10. CTRL^C Exits the program.

Updating

We HIGHLY recommend that you use git for updating the code, however please be sure that there are no breaking changes documented or you may have to change any coustom code.

If you are using git:
Before you update for the first time, please run ~$ git update-index --skip-worktree config/local.json && git update-index --skip-worktree config/default.json && git update-index --skip-worktree config.js

To update, run git pull

Usage

To start the server, run ~$ npm run db THEN ~$ npm start from within the folder "package.json" is located.
Tmux may be useful for servers.

Special Thanks


Thanks to CrossBrowserTesting we are able to ensure that Passport works, not only on Chrome, but on many popular mobile devices and browsers. CBT helps us to cut down on UI testing and focus on adding new features.

Docs

github.io docs

This is a work in progress.

Logos

Found here or if you want a link for your site, you can use: https://cdn.josephhassell.com/passport/logo/main/[SIZE]x[SIZE].png
For just the anchor, use https://cdn.josephhassell.com/passport/logos/anchor.svg

passport-live's People

Contributors

dependabot[bot] avatar gmeriano avatar poster983 avatar snyk-bot avatar snyk-support avatar speck2525 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

passport-live's Issues

NOTE: Understanding Permissions

A new Config section called api will be created.

EVERY REST endpoint will be individually assign permissions from the config file
Example:

{
	"api": {
		"accounts": {
			"create": ["student", "teacher", "admin", "dev"], //Usergroups
			"archive": ["admin", "dev"]
		},
		"passes": {
			"create": ["student", "dev"],
			"cancel": ["student", "teacher", "dev"]
		}
	}
}

Add Blackouts

  • Add Create Function

  • Add Get Function

  • Add List Function

    • Support RRule checks in filter
    • Support filtering non RRule blackouts
    • Filter by date time range and get blackouts set for periods that fall in the range and vice versa
  • Add Edit Function

  • Add Delete Function

  • Blackouts should block pass creation

    • Backend
    • Frontend
  • Cancel Existing passes and send an email with the blackout reason.
    FUTURE:

  • Link into the (uncreated) bulk api system to auto cancel passes

  • Link Blackout reason to pass messages and the cancel message

Dupe account bug

When the create account function is called quickly in a short amount of time, some emails may bypass the dupe check.

REST API not following REST design

For Example:
In /routes/api/account.js there is a hierarchical endpoint that gets a single user by ID. '/id/:id/' This is fine because it returns only one user. However, /email/:email/, /userGroup/:userGroup/, /userGroup/:userGroup/name/:name and,/name/:name should be combined into a single search endpoint. For example:
example.com/api/account/search?userGroup=student&[email protected]&name=Student McStudentFace

Pass Groups

Pass groups will have different means of receiving their pass, teachers will have it sent to their computers and notify them, the Library will not notify them, and it will use a kiosk.

Implement Raw API

Just simple gets and inserts and updates to the db

User Accounts

  • Create
  • Archive (Flips a bool in the db, can't login after set to true)
  • Ban
    -- Think Of More

groupFields Student

  • Set Schedule(new key: groupFields.schedule Will include student's schedule

groupFields to usergroups with pass groups assigned to them

  • Set Limit
  • Change Limit

Passes

  • Add New pass to DB
  • Cancel a pass (include who did it)
  • [ ]

Tally

  • Pass Tally to any pass group

Problems found with student testers

  • Set error message in schedule setter to suggest that one can check the no period box

  • Add animation to successful schedule save

  • update the My Passes card on Pass submit

  • Load all teachers at once for the auto complete

  • Show teacher's scheduled class during the pass request

  • Denied passes should show as cancelled and should not be able to be reactivated

  • If student cancels pass, it should be cancel not denied

  • schedule definition should error if no schedule found

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.