Giter VIP home page Giter VIP logo

fabxaccess's Introduction

fabXaccess

Backend for fabX access system. Written using ktor and exposed.

Compatible AngularJS frontend (with screenshots in readme): fabXdashboard.

Setup

For a simple setup we would recommend forking this repository on GitHub and then auto-deploying it to Heroku. This allows for independent updates by pulling changes from this repository when desired. Heroku's free tier should be enough for most users. The following describes this setup.

Github

  • Fork this repository

Heroku

  • Create an account on or login to Heroku
  • Create a new App, give it a name and select a region
  • Connect to GitHub and authorize Heroku (such that Heroku can automatically deploy the forked repository)
  • Search for the forked repository and click connect
  • Manually trigger a deployment of master/main branch

Database

  • Click on the "Resources" Tab in Heroku
  • In the Add-ons section search for PostgreSQL and select Heroku Postgres
  • Select a Plan and submit the order
  • Under "More" click restart all dynos
  • Open a postgres client connection to the Heroku Postgres database
  • Add users to the "admins" table with INSERT INTO admins ("name", "passwordHash") VALUES ('[name]', '[hash]')
  • Password can be changed with UPDATE admins SET passwordHash = '[hash]' where name = '[name]' (if necessary)

Setup for the Backend is done, continue with the setup of Dashboard.

fabxaccess's People

Contributors

sschaeffner avatar fkreiner avatar

Stargazers

T. Mulzer avatar Andreas Kahler avatar

Watchers

James Cloos avatar  avatar  avatar  avatar

Forkers

werkbox3 fkreiner

fabxaccess's Issues

Client API

  • API for clients
    • configuration per deviceId
    • permission per cardId and deviceId

Admin Action Logging

write audit log to some server/service?

old:

  • which permission was given by which admin
  • lastChanged by lastEditor

DB Mapping

Automatic Model <-> DB Mapping with ORM

Tool locking

  • disable tool for all users
  • usefull for maintenance or corona lockdown

Create User without cardId

Check if it is possible to create a new user without a card id.
If not implement functionality to do so.

Fix First Startup

Automatic schema creation at startup without test data and admin credentials.

Multiaction API

  • for standard api provide a way to
    • give a set of users a set of permissions at once

Role Instructor

  • Instructor has a list of qualifications they can give out

Qualifications

  • User has list of qualifications

  • Device has list of qualifications needed for it

  • If User has all qualifications needed for a Device, then User has permission to use it

  • Qualification is given out at a date

  • Qualification is given out by an Instructor

Client Authentication

  • client authenticates with mac and secret
  • if client with new mac and unknown secret authenticates, a new (client) entry is created

Qualification Badge Color

Each Qualification should have a color, so that a coloured badge can be displayed in the frontend.

Edit User

minimum:

  • lock user
  • change cardId
  • change phone nr

Tool Logging

  • independent service

  • only knows card ids (or maybe user ids), no personal user data

  • logs: card scan?, tool unlock, tool lock

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.