# Análise da Aplicação: freefi_admin

Este documento resume a arquitetura e as tecnologias da aplicação `freefi_admin`.

## 1. Visão Geral

- **Tipo de Aplicação:** Painel de Administração (Admin Panel).
- **Propósito Principal:** Gerenciamento de usuários e controle de acesso baseado em papéis (RBAC - Role-Based Access Control).
- **Stack Principal:** Laravel, Vite, Tailwind CSS, Alpine.js, Docker.

## 2. Ambiente de Desenvolvimento

A aplicação é totalmente containerizada usando Docker и Docker Compose.

- **Serviços do Docker:**
  - `app`: Container da aplicação principal com Laravel 12.
  - `nginx`: Servidor web que expõe a aplicação.
  - `db`: Banco de dados MySQL 8.0.

- **Acesso:**
  - A aplicação pode ser acessada através do navegador no endereço `http://localhost:8082`.

- **Comandos para Iniciar o Ambiente:**
  - `docker-compose up -d` (para iniciar os serviços em background)
  - `docker-compose down` (para parar os serviços)

## 3. Backend

- **Framework:** Laravel 12
- **Linguagem:** PHP 8.2
- **Gerenciador de Pacotes:** Composer

- **Funcionalidades Chave:**
  - **Autenticação:** Provida pelo `laravel/breeze`, inclui login, registro, recuperação de senha, etc.
  - **CRUD de Usuários:** Interface completa para Criar, Ler, Atualizar e Deletar usuários.
  - **Controle de Acesso (RBAC):** O banco de dados possui tabelas para `roles` (papéis), `permissions` (permissões) e a tabela pivot `role_user`, indicando um sistema de autorização granular.
  - **Internacionalização:** Suporte a múltiplos idiomas configurado através de rotas e arquivos de tradução.

## 4. Frontend

- **Build Tool:** Vite
- **Framework CSS:** Tailwind CSS
- **JavaScript:** Alpine.js para interatividade leve.
- **Gerenciador de Pacotes:** npm

- **Comandos:**
  - `npm install`: Para instalar as dependências.
  - `npm run dev`: Para iniciar o servidor de desenvolvimento do Vite com hot-reloading.
  - `npm run build`: Para compilar os assets de frontend para produção.

## 5. Banco de Dados

- **Sistema:** MySQL 8.0 (rodando no container `db`).
- **Credenciais (padrão do `docker-compose.yml`):**
  - Database: `adm_freefi`
  - User: `laravel_user`
  - Password: `user_password`
  - Root Password: `root_password`
- **Schema:** As migrações definem tabelas para `users`, `roles`, `permissions`, `jobs`, `cache`, etc.

## 6. Testes

- **Framework:** Pest (um framework de testes para PHP com foco em simplicidade).
- **Comando para Rodar Testes:**
  - `composer test` ou `php artisan test`
