Skip to content

diogo-ribicki/DockQueue

Repository files navigation

🚀 DockQueue

Sistema de gerenciamento de filas para docas (docks) desenvolvido em .NET 8.0 com Blazor Server e PostgreSQL.

📋 Pré-requisitos

  • .NET SDK 8.0 (ou superior)
  • PostgreSQL (banco de dados)
  • Docker (opcional, para rodar via containers)
  • Docker Compose (recomendado)

⚙️ Configuração

❌ Precisa de .env?

NÃO! Este projeto usa appsettings.json ao invés de arquivos .env.

📝 Configurações Necessárias

  1. Backend (DockQueue.API/appsettings.json):

    • Configure a ConnectionStrings:DefaultConnection com seus dados do PostgreSQL
    • Ajuste as configurações de JWT se necessário
  2. Frontend (DockQueue.Client/appsettings.json):

    • Configure ApiSettings:BaseUrl para apontar para a URL da API

🏃 Como Executar

Opção 1: Docker Compose (Recomendado - Mais Fácil)

O projeto inclui um docker-compose.yml que configura tudo automaticamente:

# Inicia PostgreSQL e API juntos
docker-compose up -d

# Ver logs da API
docker-compose logs -f api

# Parar tudo
docker-compose down

Acesse:


Opção 2: Executar Diretamente (Desenvolvimento)

1. Inicie o PostgreSQL

Opção A: Usando Docker

docker-compose up -d postgres

Isso iniciará o PostgreSQL na porta 15432.

Opção B: PostgreSQL Local

Se você tem PostgreSQL instalado localmente, edite DockQueue.API/appsettings.json:

"ConnectionStrings": {
  "DefaultConnection": "Host=localhost;Port=5432;Database=DockQueueDb;Username=postgres;Password=sua_senha"
}

2. Instale a ferramenta dotnet-ef

dotnet tool install --global dotnet-ef --version 8.0.0

3. Execute as Migrations

cd DockQueue.API
dotnet ef database update

4. Execute o Backend (API)

cd DockQueue.API
dotnet run

A API estará disponível em:

5. Execute o Frontend (Blazor)

Em outro terminal:

cd DockQueue.Client
dotnet run

O frontend estará disponível em: https://localhost:5002 (ou porta configurada)


🛣️ Rotas da API

As rotas da API estão nos Controllers localizados em DockQueue.API/Controllers/:

  • LoginController/api/Login
  • BoxController/api/Box
  • QueueController/api/Queue
  • UsersControllers/api/Users
  • StatusesController/api/Statuses
  • SettingsController/api/Settings
  • RefreshController/api/Refresh
  • OperatorPermissionsController/api/OperatorPermissions

Documentação das Rotas

Quando a API estiver rodando, acesse o Swagger para ver todas as rotas:


🔧 Configurações Importantes

JWT (Autenticação)

Configurado em DockQueue.API/appsettings.json:

"Jwt": {
  "Key": "sua_chave_secreta",
  "Issuer": "DockQueueAPI",
  "Audience": "DockQueueAPIUsers",
  "AccessTokenMinutes": 30,
  "RefreshTokenDays": 7
}

CORS

Configurado no Program.cs do backend. Por padrão permite qualquer origem em desenvolvimento.


📦 Estrutura do Projeto

dockQueue-main/
├── DockQueue.API/          # Backend (API REST)
│   └── Controllers/         # 🛣️ Rotas da API
├── DockQueue.Client/        # Frontend (Blazor Server)
├── DockQueue.Application/   # Lógica de negócio
├── DockQueue.Domain/        # Entidades e domínio
├── DockQueue.Infra.Data/    # Repositórios e EF Core
└── DockQueue.Infra.Ioc/     # Injeção de dependência

🐛 Troubleshooting

Erro de Conexão com Banco

Erro: Failed to connect to 127.0.0.1:15432

Soluções:

  1. Se estiver usando Docker:

    docker-compose ps  # Verifique se o container está rodando
    docker-compose up -d postgres  # Inicie o PostgreSQL
    docker-compose logs postgres  # Verifique os logs
  2. Se estiver usando PostgreSQL local:

    • Verifique se o serviço PostgreSQL está rodando
    • Atualize a connection string em appsettings.json para usar localhost:5432

Erro em Migrations

Erro: column does not exist

Solução:

docker-compose down -v  # Remove volumes (dados do banco)
docker-compose up -d    # Recria o banco
cd DockQueue.API
dotnet ef database update

Porta já em uso

  • Altere as portas em launchSettings.json ou appsettings.json
  • Para Docker, altere as portas no docker-compose.yml

📚 Comandos Úteis

# Restaurar dependências
dotnet restore

# Build do projeto
dotnet build

# Ver migrations pendentes
dotnet ef migrations list

# Criar nova migration
dotnet ef migrations add NomeDaMigration

# Aplicar migrations
dotnet ef database update

# Docker Compose
docker-compose up -d          # Iniciar serviços
docker-compose down           # Parar serviços
docker-compose logs -f api    # Ver logs da API
docker-compose ps             # Ver status dos containers

🛠️ Tecnologias Utilizadas

  • .NET 8.0 - Framework principal
  • Blazor Server - Frontend
  • Entity Framework Core - ORM
  • PostgreSQL - Banco de dados
  • JWT - Autenticação
  • Swagger - Documentação da API
  • Docker - Containerização

📝 Licença

Este projeto é privado e de uso interno.

About

Sistema de gerenciamento de filas para docas

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors