Skip to content

Access Control is a flexible modular system for managing physical access in monitored environments. It supports multiple validation methods like biometrics, QR codes, APIs, and messaging apps, adapting easily to different needs.

Notifications You must be signed in to change notification settings

gabrielmendezsoares/access-control

Repository files navigation

🔐 Access Control

📋 Overview

Access Control is a modular physical access management system designed to authenticate and authorize individuals in monitored environments such as residential condominiums, corporate facilities, industrial sites, and institutions.

Its main strength lies in flexibility: the system supports multiple validation channels, including biometrics, QR codes, authorization lists, corporate API integrations, and messaging applications. This modular architecture allows each component to operate independently or together, easily adapting to various scenarios and operational needs.

🎯 Objectives

  • Automate the authentication and entry approval process
  • Integrate with physical devices (gates, turnstiles, barriers, etc.)
  • Operate seamlessly alongside existing systems
  • Ensure complete traceability through event logs in Sigma Cloud

🧩 Available Modules

  • WhatsAppAccess granted via encrypted messages initiated by QR Code scanning

📦 Quick Start

⚠️ Prerequisites

  • Node.js20.14.0JavaScript runtime environment
  • MySQL8.0Relational database

⚙️ Setup

# Clone & navigate
git clone <repository-url> && cd access-control

# Configure environment
cp .env.example .env  # Edit with your settings

# Install dependencies (auto-runs database setup)
npm install

💡 Database: Import storage.sql.example before running npm install


⚡ Usage

🛠️ Development

npm run start:development

🏗️ Production

npm run build && npm run start:production

📚 Command Reference

🧰 Core

Command Description
npm run start:development Start the application in development
npm run start:production Start the application in production
npm run build Build the application for production
npm run build:watch Build the application with watch mode
npm run clean Clean application build artifacts

🛢️ Database

Command Description
npm run db:pull Pull database schema into Prisma across all schemas
npm run db:push Push Prisma schema to the database across all schemas
npm run db:generate Generate Prisma Client for all schemas
npm run db:migrate:dev Run development migrations across all schemas
npm run db:migrate:deploy Deploy migrations to production across all schemas
npm run db:studio Open Prisma Studio (GUI) across all schemas
npm run db:reset Reset database (pull + generate) for all schemas

🐳 Docker

Command Description
npm run docker:build:development Build Docker image for development
npm run docker:build:production Build Docker image for production
npm run docker:run:development Run development Docker container
npm run docker:run:production Run production Docker container
npm run docker:compose:up:development Start Docker Compose in development
npm run docker:compose:up:production Start Docker Compose in production
npm run docker:compose:up:build:development Start & rebuild Docker Compose in development
npm run docker:compose:up:build:production Start & rebuild Docker Compose in production
npm run docker:compose:down Stop Docker Compose services
npm run docker:compose:logs View Docker Compose logs
npm run docker:prune Clean up unused Docker resources

🧪 Testing

Command Description
npm test Run all tests once
npm run test:watch Run tests in watch mode
npm run test:coverage Run tests and generate a coverage report

About

Access Control is a flexible modular system for managing physical access in monitored environments. It supports multiple validation methods like biometrics, QR codes, APIs, and messaging apps, adapting easily to different needs.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published