Skip to content

FabInfra/FabAccess-V2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FabAccess

A comprehensive resource management system for tracking and managing access to shared resources.

Features

  • Resource Management
    • Track resource status, usage, and maintenance
    • Image support for resources with automatic resizing and caching
    • Role-based access control
    • Maintenance scheduling
    • Usage tracking and reporting

ESPHome Integration

FabAccess provides ESPHome components for easily integrating IoT devices with your access control system:

  • Real-time resource status monitoring via Server-Sent Events (SSE)
  • No polling required - uses persistent connections for efficient updates
  • Automatic reconnection if connection is lost
  • Compatible with ESP8266/ESP32 devices
  • Enables automation based on resource status (availability, usage, etc.)
  • Provides both sensors and binary sensors for monitoring

To integrate your IoT devices with FabAccess, add this to your ESPHome configuration:

external_components:
  - source:
      type: git
      url: https://github.com/FabInfra/FabAccess-esphome-components.git
    components: [fabaccess_resource]

See the FabAccess ESPHome Components repository for detailed documentation and examples.

Image Support

Resources can have associated images to help users identify them. The system supports:

  • Image upload during resource creation and updates
  • Automatic image resizing and caching
  • Supported formats: JPEG, PNG, WebP
  • Maximum file size: 10MB
  • Image dimensions: 16px-2000px
  • Flexible URL structure:
    • Original image: /storage/resources/{id}/original/{filename}
    • Resized images: /storage/cache/resources/{id}/{width}x{height}/{options_hash}/{filename}
    • Optional parameters: fit (contain/cover/fill), format (webp/jpeg/png), quality

Installation

  1. Clone the repository
  2. Install dependencies:
    pnpm install
  3. Set up environment variables:
    cp .env.example .env
  4. Run database migrations:
    nx run api:run-migrations

Development

Start the development server:

nx serve api

The API will be available at http://localhost:3000.

API Documentation

Swagger documentation is available at /api when the server is running.

Contributing

Please see CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.

✨ Your new, shiny Nx workspace is almost ready ✨.

Learn more about this workspace setup and its capabilities or run npx nx graph to visually explore what was created. Now, let's get you up to speed!

Finish your CI setup

Click here to finish setting up your workspace!

Run tasks

To run the dev server for your app, use:

npx nx serve api

To create a production bundle:

npx nx build api

To see all available targets to run for a project, run:

npx nx show project api

These targets are either inferred automatically or defined in the project.json or package.json files.

More about running tasks in the docs »

Add new projects

While you could add new projects to your workspace manually, you might want to leverage Nx plugins and their code generation feature.

Use the plugin's generator to create new projects.

To generate a new application, use:

npx nx g @nx/node:app demo

To generate a new library, use:

npx nx g @nx/node:lib mylib

You can use npx nx list to get a list of installed plugins. Then, run npx nx list <plugin-name> to learn about more specific capabilities of a particular plugin. Alternatively, install Nx Console to browse plugins and generators in your IDE.

Learn more about Nx plugins » | Browse the plugin registry »

Learn more about Nx on CI

Install Nx Console

Nx Console is an editor extension that enriches your developer experience. It lets you run tasks, generate code, and improves code autocompletion in your IDE. It is available for VSCode and IntelliJ.

Install Nx Console »

Useful links

Learn more:

And join the Nx community:

This is a test comment

About

Access Control for Makerspace machines, tools and more

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •