Pular para o conteúdo principal

Inventario Tecnico do Repositorio

Introducao ao documento

Este documento descreve o inventario tecnico do repositorio dhedalos-app-laravel-schedule-manager com base exclusiva em evidencias do codigo-fonte e configuracoes versionadas.

Versionamento

  • Versao do documento: 1.0.0
  • Ultima atualizacao: 2026-03-17
  • Responsavel: GitHub Copilot

Referencial teorico

  • C4 Model (Context/Container/Component)
  • OpenAPI Specification 3.0.3
  • Documentacao Laravel 11 (routing, queue, cache, mail)

Proposito do repo

Aplicacao Laravel com painel administrativo web e API HTTP para agendamentos, com envio de e-mails e rotinas de exportacao em CSV para S3.

  • Evidencia: README.md:4
  • Evidencia: routes/web.php:35
  • Evidencia: routes/api.php:26
  • Evidencia: app/Http/Controllers/ExportAppointmentsController.php:91

Entrypoints

  1. HTTP web via grupo de rotas web e area administrativa em /admin.
  • Evidencia: app/Providers/RouteServiceProvider.php:34
  • Evidencia: routes/web.php:35
  1. HTTP API prefixada por /api e definicoes em routes/api.php.
  • Evidencia: app/Providers/RouteServiceProvider.php:30
  • Evidencia: app/Providers/RouteServiceProvider.php:31
  • Evidencia: routes/api.php:26
  1. Inicializacao de container de runtime com migrate e cache de config/rota/view/event.
  • Evidencia: docker/entrypoint.sh:6
  • Evidencia: docker/entrypoint.sh:7
  • Evidencia: docker/entrypoint.sh:10

Principais pastas e responsabilidades

  • app/: controllers, middleware, models e providers de dominio.
    • Evidencia: composer.json:35
  • routes/: definicao de endpoints web e api.
    • Evidencia: app/Providers/RouteServiceProvider.php:32
    • Evidencia: app/Providers/RouteServiceProvider.php:35
  • database/migrations/: schema relacional e tabelas de cache/jobs/api_keys.
    • Evidencia: database/migrations/2024_03_28_140814_create_appointments_table.php:14
    • Evidencia: database/migrations/2024_04_18_161748_create_jobs_table.php:14
    • Evidencia: database/migrations/2024_04_24_014638_create_cache_table.php:14
  • docker/ e Dockerfile: build, runtime e bootstrap operacional.
    • Evidencia: Dockerfile:1
    • Evidencia: docker/entrypoint.sh:3
  • helm/ e kubernetes/: artefatos de deploy usados no pipeline.
    • Evidencia: .github/workflows/ci-cd-pipeline.yaml:76
    • Evidencia: .github/workflows/ci-cd-pipeline.yaml:77

Integracoes externas (URL, SDK, credenciais por env)

  • S3 para upload do CSV exportado.
    • Evidencia: app/Http/Controllers/ExportAppointmentsController.php:92
    • Evidencia: config/filesystems.php:45
  • E-mail SMTP (ou mailers alternativos Laravel).
    • Evidencia: config/mail.php:13
    • Evidencia: config/mail.php:31
    • Evidencia: app/Http/Controllers/MailController.php:43
  • Redis para cache/fila/Horizon.
    • Evidencia: docker-compose.yml:42
    • Evidencia: config/queue.php:65
    • Evidencia: config/horizon.php:184
  • Registro de imagem Docker e deploy Helm no CI/CD.
    • Evidencia: .github/workflows/ci-cd-pipeline.yaml:33
    • Evidencia: .github/workflows/ci-cd-pipeline.yaml:76

Jobs, cron, queues e workers

  • Existe tabela jobs e configuracao de filas para database/redis/sqs/sync.
    • Evidencia: database/migrations/2024_04_18_161748_create_jobs_table.php:14
    • Evidencia: config/queue.php:31
  • Horizon esta habilitado com supervisor redis e gate viewHorizon.
    • Evidencia: composer.json:15
    • Evidencia: config/horizon.php:182
    • Evidencia: app/Providers/HorizonServiceProvider.php:31
  • Nao ha agendamento explicito ativo no Console Kernel.
    • Evidencia: app/Console/Kernel.php:15

Storage e caches

  • Filesystem default local com disco s3 configurado.
    • Evidencia: config/filesystems.php:16
    • Evidencia: config/filesystems.php:45
  • Cache default por variavel CACHE_DRIVER e store file/database/redis.
    • Evidencia: config/cache.php:16
    • Evidencia: config/cache.php:37
    • Evidencia: config/cache.php:63
  • API de agendamentos utiliza cache de slots por chave composta.
    • Evidencia: app/Http/Controllers/AppointmentController.php:581
    • Evidencia: app/Http/Controllers/AppointmentController.php:602

Variaveis de ambiente encontradas

  • Aplicacao: APP_ENV, APP_DEBUG, APP_URL.
    • Evidencia: .env.example:2
    • Evidencia: .env.example:4
    • Evidencia: .env.example:5
  • Banco: DB_CONNECTION, DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD.
    • Evidencia: .env.example:10
    • Evidencia: .env.example:11
    • Evidencia: .env.example:15
  • Fila/cache/storage: QUEUE_CONNECTION, CACHE_DRIVER, FILESYSTEM_DRIVER.
    • Evidencia: .env.example:18
    • Evidencia: .env.example:19
    • Evidencia: .env.example:20
  • Redis: REDIS_HOST, REDIS_PASSWORD, REDIS_PORT.
    • Evidencia: .env.example:26
    • Evidencia: .env.example:27
    • Evidencia: .env.example:28
  • Mail: MAIL_MAILER, MAIL_HOST, MAIL_PORT, MAIL_USERNAME, MAIL_PASSWORD.
    • Evidencia: .env.example:30
    • Evidencia: .env.example:31
    • Evidencia: .env.example:34
  • AWS: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION, AWS_BUCKET.
    • Evidencia: .env.example:39
    • Evidencia: .env.example:40
    • Evidencia: .env.example:42

Comandos de run, test e build

  • Run local: docker-compose up -d --build.
    • Evidencia: README.md:50
  • Build frontend: npm run build.
    • Evidencia: package.json:6
    • Evidencia: README.md:69
  • Testes: suites Unit/Feature em phpunit.xml.
    • Evidencia: phpunit.xml:8
    • Evidencia: phpunit.xml:11

Achados x Evidencias

AchadoEvidencia
API protegida por API key em parte das rotasroutes/api.php:26; app/Http/Kernel.php:70; app/Http/Middleware/ApiKeyMiddleware.php:22
Endpoints administrativos em /api/v1 com auth:apiroutes/api.php:55
Dominio de agendamento usa tipos individual/collective/group/blockapp/Models/AppointmentType.php:23; database/seeders/AppointmentTypeSeeder.php:25
Exportacao de agendamentos envia arquivo para S3app/Http/Controllers/ExportAppointmentsController.php:91; app/Http/Controllers/ExportAppointmentsController.php:92
Pipeline faz build/push e deploy Helm por branch.github/workflows/ci-cd-pipeline.yaml:40; .github/workflows/ci-cd-pipeline.yaml:74; .github/workflows/ci-cd-pipeline.yaml:136

Pendencias

  • A rota v1 appointments/date/{id} aponta para updateDate, mas o metodo nao foi identificado em AppointmentsApiController.
    • Evidencia: routes/api.php:76
    • Evidencia: app/Http/Controllers/Api/V1/Admin/AppointmentsApiController.php:12
  • Existe referencia a relacao services em AppointmentsApiController, mas o model Appointment nao define services().
    • Evidencia: app/Http/Controllers/Api/V1/Admin/AppointmentsApiController.php:18
    • Evidencia: app/Models/Appointment.php:34
  • O parametro client na rota de slots nao e utilizado na assinatura dos metodos de AppointmentController.
    • Evidencia: routes/api.php:30
    • Evidencia: app/Http/Controllers/AppointmentController.php:577