Skip to content
Eva Stoddard edited this page Aug 2, 2024 · 7 revisions

Welcome to the Makerspace wiki!

Introduction

Makerspace, formerly known as ConstructControl, is a training and access control system for makerspaces to manage use of equipment via API-connected card reader devices.

Makerspace was built originally for the RIT SHED. While the language in this wiki will attempt to remain unspecific to the SHED, certain descriptions will be describing the SHED's specific deployment environment.

Technical Specifications

The Makerspace application contains a server and client subsystem. The server subsystem is a NodeJS express application that contains the SAML authentication control, Equipment API, and web service handled with GraphQL. The client subsystem is a React web application with admin and user views.

Server

The server is written in TypeScript using NodeJS Express with Apollo server included as a GraphQL query handler. The server uses Knex as a database adapter and SQL queryer.

Shibboleth Authentication

Shibboleth is the authentication provider RIT uses to sign all RIT users into RIT services. Shibboleth uses SAML2 for private key authentication handling. Makerspace uses passport-saml to create SAML requests and decrypt responses. The full process in detailed in Authentication.

Machine API

The application supports communication between access control card reader devices via a REST API located at /api. The API handles machine authentication requests and status updates from access devices. This is detailed in Machine API.

GraphQL Handler

Apollo Server allows the use of GraphQL sent from the client to the server. GraphQL endpoints, or resolvers, pull requested information from the database via associated repositories. This is detailed in Database > Querying

Web Service

SQL-to-GraphQL Serving

Knex Migrations

Client

Static Assets

Database

Clone this wiki locally