> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/Israel-Perez/Nuxt-Secure/llms.txt
> Use this file to discover all available pages before exploring further.

# Nuxt Secure

> A corporate access management platform with JWT authentication, role-based permissions, and user administration — built with Nuxt.js and Vue 3.

<CardGroup cols={2}>
  <Card title="Quick Start" icon="rocket" href="/quickstart">
    Set up Nuxt Secure locally and run your first login in minutes.
  </Card>

  <Card title="Authentication" icon="lock" href="/concepts/authentication">
    Learn how JWT authentication and Cloudflare Turnstile protect your app.
  </Card>

  <Card title="User Management" icon="users" href="/features/user-management">
    Create, edit, and deactivate users with profile photo support.
  </Card>

  <Card title="Permissions Matrix" icon="table" href="/features/permissions-matrix">
    Configure granular CRUD-level access per profile and module.
  </Card>
</CardGroup>

## What is Nuxt Secure?

Nuxt Secure is a responsive corporate web application designed for **secure access administration**. It provides a complete identity and access management (IAM) solution for organizations that need to control which users can read, create, edit, or delete data in each part of the application.

The system is built on top of **Nuxt.js 4** with server-side API routes, a **PostgreSQL** database (via Neon serverless), and **Drizzle ORM**. Authentication is powered by **JSON Web Tokens (JWT)** and protected against bots with **Cloudflare Turnstile** CAPTCHA.

## Core capabilities

<CardGroup cols={3}>
  <Card title="JWT Authentication" icon="key">
    Secure cookie-based sessions with 8-hour token expiry and global route protection middleware.
  </Card>

  <Card title="Role-Based Access Control" icon="shield-check">
    Every action — view, add, edit, delete, detail — is gated per profile and per module.
  </Card>

  <Card title="User Administration" icon="user-gear">
    Full CRUD for users including status management (active/inactive) and avatar uploads via Cloudinary.
  </Card>

  <Card title="Profile Management" icon="id-badge">
    Define roles (profiles) with an administrator flag and assign them to users.
  </Card>

  <Card title="Module Registry" icon="grid">
    Register application modules and control access to them through the permissions matrix.
  </Card>

  <Card title="Permissions Matrix" icon="lock-open">
    A visual editor to assign bitwise permissions (add, edit, query, delete, detail) to any profile-module combination.
  </Card>
</CardGroup>

## Technology stack

| Layer            | Technology                     |
| ---------------- | ------------------------------ |
| Framework        | Nuxt.js 4 + Vue 3              |
| Language         | TypeScript                     |
| Styling          | Tailwind CSS                   |
| Database         | PostgreSQL (Neon Serverless)   |
| ORM              | Drizzle ORM                    |
| Auth             | JSON Web Tokens (jsonwebtoken) |
| Password hashing | bcrypt                         |
| CAPTCHA          | Cloudflare Turnstile           |
| Image hosting    | Cloudinary                     |

## Navigation

<CardGroup cols={2}>
  <Card title="Environment setup" icon="gear" href="/environment-setup">
    Configure all required environment variables before running the app.
  </Card>

  <Card title="Architecture" icon="diagram-project" href="/concepts/architecture">
    Understand the full-stack layout of Nuxt Secure.
  </Card>

  <Card title="RBAC system" icon="sitemap" href="/concepts/rbac">
    Deep dive into how permissions are evaluated at runtime.
  </Card>

  <Card title="API Reference" icon="code" href="/api-reference/auth/login">
    Browse all server API endpoints with request/response documentation.
  </Card>
</CardGroup>
