Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
1cef254
feat: criar entidades e DTOs do banco de dados (Board, Column, Card)
Jaosalles Feb 16, 2026
db56874
feat: implementar módulo de Boards com service, controller e testes
Jaosalles Feb 16, 2026
536a115
feat: implementar módulos de Columns e Cards
Jaosalles Feb 16, 2026
adb803f
test: adicionar testes unitários para Columns e Cards
Jaosalles Feb 16, 2026
00c7742
chore: instalar sqlite3 para desenvolvimento
Jaosalles Feb 16, 2026
552049f
docs: atualizar README do backend com documentação completa
Jaosalles Feb 16, 2026
9fd4d33
feat: criar estrutura inicial do frontend com Angular
Jaosalles Feb 16, 2026
b8f4995
feat: integrar BoardComponent no AppComponent para exibir kanban
Jaosalles Feb 16, 2026
52da766
fix: corrigir erros de compilação nos services e controllers
Jaosalles Feb 16, 2026
d215184
test: corrigir e completar testes unitários do backend (40 testes pas…
Jaosalles Feb 16, 2026
136ed20
feat: habilitar CORS no NestJS para aceitar requisições do frontend
Jaosalles Feb 16, 2026
351333d
test(e2e): implementar suite completa de testes end-to-end (21 testes)
Jaosalles Feb 16, 2026
124d0db
fix: garantir que relações são carregadas após criar ou atualizar
Jaosalles Feb 16, 2026
99c8125
feat: configurar environment variables e estrutura de build do frontend
Jaosalles Feb 16, 2026
4c6cf77
feat: adicionar testes E2E com Cypress para frontend Kanban
Jaosalles Feb 16, 2026
2f8a30b
feat: add data-testid attributes to components for Cypress E2E tests
Jaosalles Feb 16, 2026
88f3a02
docs: add comprehensive Cypress E2E testing documentation
Jaosalles Feb 16, 2026
27ee0bf
fix: corrigir syntax errors em app.component.html e atualizar package…
Jaosalles Feb 16, 2026
f1e3d11
feat: configurar persistência de banco de dados SQLite
Jaosalles Feb 16, 2026
f39ab3f
feat: adicionar scripts de gerenciamento de banco de dados
Jaosalles Feb 16, 2026
dece73c
docs: adicionar documentação de banco de dados e atualizar .gitignore
Jaosalles Feb 16, 2026
26f2e26
chore: atualizar package-lock.json com dependência dotenv 17.3.1
Jaosalles Feb 16, 2026
5b86021
fix: add missing trackBy methods and remove invalid CDK import
Jaosalles Feb 16, 2026
c795899
feat: add websockets support to backend
Jaosalles Feb 16, 2026
e79cf78
refactor: remove NgModule in favor of standalone components
Jaosalles Feb 16, 2026
9e13840
refactor: update app component and config for standalone architecture
Jaosalles Feb 16, 2026
ea0f7c5
chore: update frontend build configuration and dependencies
Jaosalles Feb 16, 2026
624ef86
chore: remove frontend package-lock.json
Jaosalles Feb 16, 2026
c161123
feat: add routing configuration with standalone API
Jaosalles Feb 16, 2026
d5a8227
feat: add not-found component for 404 handling
Jaosalles Feb 16, 2026
9961742
chore: configure monorepo with npm workspaces
Jaosalles Feb 16, 2026
7a0f04b
refactor: replace native confirm() with custom modal dialog
Jaosalles Feb 16, 2026
0116243
fix: optimize frontend bundle and fix SCSS/TS warnings
Jaosalles Feb 16, 2026
8ebb548
feat(app): improve accessibility and semantic HTML structure
Jaosalles Feb 16, 2026
a41f563
feat(board): improve accessibility and drag-drop UX
Jaosalles Feb 16, 2026
bb30f01
feat(confirm-dialog): improve accessibility and semantic structure
Jaosalles Feb 16, 2026
9732526
test(backend): add comprehensive unit and E2E tests for all services …
Jaosalles Feb 16, 2026
59cfbd5
docs: document test completion status and coverage metrics
Jaosalles Feb 16, 2026
220ac04
fix: resolve dependency conflicts and downgrade Angular to LTS stable…
Jaosalles Feb 17, 2026
32f7eee
fix: resolve dependency conflicts and downgrade Angular to LTS stable…
Jaosalles Feb 17, 2026
e3bc71f
feat(frontend): implement BoardService with state management
Jaosalles Feb 17, 2026
74ae03e
feat(frontend): implement DashboardComponent
Jaosalles Feb 17, 2026
bf16abb
feat(frontend): implement ColumnComponent
Jaosalles Feb 17, 2026
25d3c3b
feat(frontend): implement CardComponent
Jaosalles Feb 17, 2026
b8be3ce
refactor(frontend): refactor BoardComponent to use composition
Jaosalles Feb 17, 2026
7de345d
refactor(frontend): simplify AppComponent
Jaosalles Feb 17, 2026
6f2f250
feat(frontend): add drag-drop module and enhance global styles
Jaosalles Feb 17, 2026
ca5c514
docs: add project progress analysis and roadmap
Jaosalles Feb 17, 2026
1b5e47a
chore: remove temporary commit helper scripts
Jaosalles Feb 17, 2026
f8d3e5d
feat: criar serviço ConfirmDialogService para gerenciar dialogs globais
Jaosalles Feb 17, 2026
08c71df
refactor: refatorar app.component para usar standalone com dashboard
Jaosalles Feb 17, 2026
79021dc
refactor: refatorar board.component com observables e melhor estrutura
Jaosalles Feb 17, 2026
de79477
refactor: melhorar card.component com drag-drop e confirm-dialog
Jaosalles Feb 17, 2026
3c9d0e9
refactor: melhorar column.component com drag-drop completo
Jaosalles Feb 17, 2026
b92bf75
refactor: melhorar confirm-dialog.component com acessibilidade
Jaosalles Feb 17, 2026
262c620
refactor: refatorar dashboard.component com observables e confirm-dialog
Jaosalles Feb 17, 2026
9896049
refactor: estender board.service com moveCard e melhorias
Jaosalles Feb 17, 2026
41f4115
feat: extrair template e styles do not-found.component
Jaosalles Feb 17, 2026
da064d8
style: atualizar cor primária para #4169E1 em estilos globais
Jaosalles Feb 17, 2026
a2b8a75
chore: atualizar tema-color no index.html
Jaosalles Feb 17, 2026
a4837f4
feat: adicionar testes unitários para componentes e serviços do frontend
Jaosalles Feb 17, 2026
eae57aa
feat: implementar socket.io para sincronização em tempo real
Jaosalles Feb 17, 2026
2db3e6f
fix: resolver dependências do KanbanGateway e instalar socket.io driver
Jaosalles Feb 17, 2026
0bb1966
docs: adicionar documentação de contribuição, changelog e segurança
Jaosalles Feb 17, 2026
69bec3f
fix: corrigir tipagem em socket.service.spec.ts
Jaosalles Feb 17, 2026
1db7f1a
chore: add comprehensive testing and deployment guide
Jaosalles Feb 17, 2026
3441d1e
docs: add project summary with PR template and next steps
Jaosalles Feb 17, 2026
e055cc2
fix: corrigir Dockerfiles com multi-stage build e npm install
Jaosalles Feb 17, 2026
d91cd09
fix: remover versão obsoleta docker-compose e configurar PostgreSQL
Jaosalles Feb 17, 2026
7f26f50
docs: adicionar guia manual de teste Docker e scripts
Jaosalles Feb 17, 2026
cbe803f
Merge: implementação kanban com upstream master
Jaosalles Feb 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
node_modules
npm-debug.log
dist
build
.git
.gitignore
.env
.env.local
.env.*.local
.vscode
.idea
*.swp
*.swo
*~
.DS_Store
.next
.nuxt
coverage
*.log
tmp
temp
.angular
out-tsc
.serverless
.fusebox
.dynamodb
*.tsbuildinfo
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
.cache
.env*.local
.eslintcache
.jest-cache
.nyc_output
.prettierignore
.stylelintignore
flamegraph.txt
*.hrtf
76 changes: 76 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# ============================================
# CONFIGURAÇÃO DE AMBIENTE - TEMPLATE
# ============================================
# Copie este arquivo para .env e preencha os valores

# ============================================
# NODE/App Configuration
# ============================================
NODE_ENV=development

# ============================================
# Database Configuration
# ============================================
# Para desenvolvimento: usar SQLite (padrão)
# Para produção: usar PostgreSQL

# PostgreSQL
DB_TYPE=postgres
DB_HOST=localhost
DB_PORT=5432
DB_USER=valinor
DB_PASSWORD=password123
DB_NAME=valinor_db

# SQLite (desenvolvimento)
# DB_TYPE=sqlite
# DB_DATABASE=./valinor.db

# ============================================
# Backend Security
# ============================================
# Gerar com: openssl rand -base64 32
JWT_SECRET=your-secret-key-change-in-production

# CORS Configuration
CORS_ORIGIN=http://localhost:4200

# ============================================
# Frontend Configuration
# ============================================
VITE_API_URL=http://localhost:3000
VITE_SOCKET_URL=ws://localhost:3000

# ============================================
# AWS Configuration (Para Deploy)
# ============================================
AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key

# RDS Endpoint (após criar banco em produção)
# DB_HOST=valinor-db.xxxxx.rds.amazonaws.com

# ============================================
# Logging
# ============================================
LOG_LEVEL=debug

# ============================================
# Redis (Opcional - para cache)
# ============================================
# REDIS_URL=redis://localhost:6379

# ============================================
# Email Service (Opcional)
# ============================================
# SMTP_HOST=smtp.gmail.com
# SMTP_PORT=587
# SMTP_USER=seu-email@gmail.com
# SMTP_PASSWORD=sua-senha-app

# ============================================
# Monitoring & Analytics (Opcional)
# ============================================
# SENTRY_DSN=https://xxxxx@sentry.io/xxxxx
# DATADOG_API_KEY=xxxxx
248 changes: 248 additions & 0 deletions .github/workflows/ci-cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,248 @@
name: CI/CD Pipeline

on:
push:
branches: [ main, master, develop ]
pull_request:
branches: [ main, master, develop ]

jobs:
# Job 1: Tests Backend
test-backend:
runs-on: ubuntu-latest
name: Test Backend

services:
postgres:
image: postgres:16-alpine
env:
POSTGRES_USER: valinor
POSTGRES_PASSWORD: password123
POSTGRES_DB: valinor_db
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432

steps:
- uses: actions/checkout@v3

- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Install backend dependencies
run: npm ci -w backend

- name: Lint backend
run: npm run lint -w backend --if-present

- name: Build backend
run: npm run build -w backend
env:
DB_HOST: localhost
DB_PORT: 5432
DB_USER: valinor
DB_PASSWORD: password123
DB_NAME: valinor_db

- name: Test backend
run: npm run test -w backend
env:
DB_HOST: localhost
DB_PORT: 5432
DB_USER: valinor
DB_PASSWORD: password123
DB_NAME: valinor_db

- name: Test coverage backend
run: npm run test:cov -w backend
continue-on-error: true

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
files: ./backend/coverage/cobertura-coverage.xml
flags: backend
continue-on-error: true

# Job 2: Tests Frontend
test-frontend:
runs-on: ubuntu-latest
name: Test Frontend

steps:
- uses: actions/checkout@v3

- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Install frontend dependencies
run: npm ci -w frontend

- name: Lint frontend
run: npm run lint -w frontend --if-present

- name: Build frontend
run: npm run build -w frontend --if-present

- name: Test frontend
run: npm run test -w frontend --if-present --watch=false

- name: E2E tests
run: npm run e2e -w frontend --if-present
continue-on-error: true

# Job 3: Build Docker Images
build-docker:
needs: [test-backend, test-frontend]
runs-on: ubuntu-latest
name: Build Docker Images

steps:
- uses: actions/checkout@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Build backend image
uses: docker/build-push-action@v4
with:
context: .
file: ./backend/Dockerfile
push: false
tags: valinor-backend:latest

- name: Build frontend image
uses: docker/build-push-action@v4
with:
context: .
file: ./frontend/Dockerfile
push: false
tags: valinor-frontend:latest

# Job 4: Security Scan
security-scan:
runs-on: ubuntu-latest
name: Security Scan

steps:
- uses: actions/checkout@v3

- name: npm audit
run: npm audit --audit-level=moderate
continue-on-error: true

- name: Dependency check
run: npm outdated
continue-on-error: true

# Job 5: Deploy to AWS (apenas em push para main/master)
deploy:
needs: [test-backend, test-frontend, build-docker, security-scan]
runs-on: ubuntu-latest
name: Deploy to AWS
if: |
github.event_name == 'push' &&
(github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master')

steps:
- uses: actions/checkout@v3

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION || 'us-east-1' }}

- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1

- name: Build, tag, and push backend image to Amazon ECR
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
ECR_REPOSITORY: valinor-backend
IMAGE_TAG: ${{ github.sha }}
run: |
docker build -f backend/Dockerfile -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
docker tag $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY:latest
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
docker push $ECR_REGISTRY/$ECR_REPOSITORY:latest

- name: Build, tag, and push frontend image to Amazon ECR
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
ECR_REPOSITORY: valinor-frontend
IMAGE_TAG: ${{ github.sha }}
run: |
docker build -f frontend/Dockerfile -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
docker tag $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY:latest
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
docker push $ECR_REGISTRY/$ECR_REPOSITORY:latest

- name: Deploy with Elastic Beanstalk
run: |
pip install awsebcli --upgrade
eb deploy valinor-prod --staged
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: ${{ secrets.AWS_REGION || 'us-east-1' }}
continue-on-error: true

- name: Create deployment status
uses: actions/github-script@v6
with:
script: |
github.rest.deployments.createStatus({
owner: context.repo.owner,
repo: context.repo.repo,
deployment_id: context.payload.deployment.id,
state: 'success',
environment_url: 'https://valinor-prod.elasticbeanstalk.com'
})
continue-on-error: true

# Job 6: Notify
notify:
needs: [test-backend, test-frontend, build-docker, security-scan]
runs-on: ubuntu-latest
name: Notify Results
if: always()

steps:
- name: Check test results
run: |
echo "Backend Tests: ${{ needs.test-backend.result }}"
echo "Frontend Tests: ${{ needs.test-frontend.result }}"
echo "Docker Build: ${{ needs.build-docker.result }}"
echo "Security Scan: ${{ needs.security-scan.result }}"

- name: Slack Notification
uses: 8398a7/action-slack@v3
if: always()
with:
status: ${{ job.status }}
text: |
Backend: ${{ needs.test-backend.result }}
Frontend: ${{ needs.test-frontend.result }}
Docker: ${{ needs.build-docker.result }}
Security: ${{ needs.security-scan.result }}
webhook_url: ${{ secrets.SLACK_WEBHOOK }}
continue-on-error: true
Loading
Loading