Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@ blank_issues_enabled: false

contact_links:
- name: 📖 Documentação
url: https://github.com/MatchDock/match-tech
url: https://github.com/MatchDock/match-tech/blob/main/CONTRIBUTING.md
about: Consulte a documentação antes de abrir uma issue.
34 changes: 34 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: CI (Vibe Safety Net)

on:
pull_request:
branches:
- main
- develop
push:
branches:
- main
- develop

jobs:
verify:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Run TypeScript Compiler Check (Lint)
run: npm run lint

- name: Run Vite Build Check
run: npm run build
4 changes: 4 additions & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npx lint-staged
11 changes: 11 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"semi": true,
"singleQuote": false,
"trailingComma": "all",
"printWidth": 100,
"tabWidth": 2,
"useTabs": false,
"bracketSpacing": true,
"arrowParens": "always",
"endOfLine": "lf"
}
136 changes: 108 additions & 28 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ Crie uma branch específica para sua issue.
Exemplos:

```bash
git checkout -b feature/profile-filters
git checkout -b feat/profile-filters
```

```bash
Expand All @@ -129,6 +129,10 @@ git checkout -b task/extract-avatar-component
git checkout -b bug/login-redirect-fix
```

```bash
git checkout -b docs/update-contributing
```

---

# Desenvolva sua solução
Expand All @@ -141,6 +145,30 @@ PRs menores são mais fáceis de revisar e aprovar.

---

## Quality Gates (obrigatório antes de abrir o PR)

Todo Pull Request deve passar nos seguintes checks antes de ser enviado. O CI os executa automaticamente, mas rode localmente primeiro para economizar tempo:

```bash
# 1. Verificar tipos TypeScript
npm run typecheck

# 2. Lint sem avisos
npm run lint

# 3. Testes unitários
npm test

# 4. Build de produção
npm run build
```

O pre-commit hook (Husky + lint-staged) executa ESLint e Prettier automaticamente em cada `git commit`.

Consulte [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) para entender os padrões de código adotados (estrutura de pastas, convenções de imports, AppError, etc.) antes de começar.

---

# Commits

Utilizamos o padrão Conventional Commits.
Expand Down Expand Up @@ -205,56 +233,66 @@ Closes #42

# Revisão

Todo Pull Request passará por revisão.
Todo Pull Request pode receber comentários e solicitações de alteração.

Os mantenedores poderão solicitar:
O processo de revisão tem como objetivo:

- Ajustes de código
- Melhorias de organização
- Correções de bugs
- Alterações de documentação
- Compartilhar conhecimento
- Melhorar a qualidade do código
- Identificar problemas antes do merge
- Manter padrões consistentes no projeto

Isso faz parte do processo normal de desenvolvimento.
Solicitações de ajuste fazem parte do processo normal de desenvolvimento e não devem ser interpretadas como críticas pessoais.

---

# Boas práticas
## Compromisso com a Issue

## Faça
Ao solicitar uma issue, você demonstra interesse em contribuir com aquela atividade.

✅ Trabalhe apenas em issues atribuídas a você
Caso não consiga continuar o trabalho por qualquer motivo, informe na própria issue para que ela possa ser disponibilizada novamente para outros colaboradores.

✅ Mantenha seu fork atualizado
Nosso objetivo é manter o fluxo do projeto saudável e transparente para toda a comunidade.

✅ Faça PRs pequenos e objetivos
---

✅ Escreva código legível
## Proteção de Branches

✅ Atualize documentação quando necessário
Para garantir a estabilidade do projeto, as branches principais possuem regras de proteção.

✅ Seja respeitoso com todos os membros
Branch `main`

---
A branch `main` representa a versão estável do projeto e é utilizada para publicação da aplicação.

## Evite
Não é permitido realizar alterações diretamente nesta branch.

❌ Trabalhar diretamente na branch develop
Toda alteração deve chegar à `main` através de Pull Requests aprovados.

❌ Abrir PRs gigantes
Branch `develop`

❌ Misturar múltiplas funcionalidades no mesmo PR
A branch `develop` é a principal branch de integração do projeto.

❌ Alterar código sem relação com a issue
Todas as novas funcionalidades, correções e melhorias devem ser abertas inicialmente contra a develop.

❌ Forçar pushes em branches compartilhadas
### Fluxo de Desenvolvimento

```
feature/* → develop → main

bug/* → develop → main

docs/* → develop → main
```

O objetivo é garantir que novas contribuições sejam validadas antes de fazerem parte de uma versão estável do projeto.

---

# Fluxo de Branches
## Fluxo de Branches

O projeto utiliza a seguinte estrutura:

```text
```
main
└── develop
├── feature/*
Expand All @@ -263,12 +301,54 @@ main
└── docs/*
```

- `main`: versão estável do projeto.
- `develop`: branch de integração das contribuições.
- main: versão estável do projeto.
- develop: branch de integração das contribuições.
- Branches temporárias: utilizadas para desenvolvimento de cada issue.

---

## Comunicação

Sempre que possível:

- Utilize as Issues para discussões relacionadas ao desenvolvimento.
- Utilize Discussions para dúvidas gerais, ideias e sugestões.
- Utilize os canais oficiais da comunidade para comunicação rápida.

Decisões técnicas importantes devem ficar registradas no GitHub para consulta futura.

---

## Boas práticas

### Faça

✅ Trabalhe apenas em issues atribuídas a você

✅ Mantenha seu fork atualizado

✅ Faça PRs pequenos e objetivos

✅ Escreva código legível

✅ Atualize documentação quando necessário

✅ Seja respeitoso com todos os membros

### Evite

❌ Trabalhar diretamente na branch develop

❌ Abrir PRs gigantes

❌ Misturar múltiplas funcionalidades no mesmo PR

❌ Alterar código sem relação com a issue

❌ Forçar pushes em branches compartilhadas

---

# Dúvidas

Caso tenha dúvidas:
Expand All @@ -279,4 +359,4 @@ Caso tenha dúvidas:

Toda contribuição é uma oportunidade de aprendizado.

Obrigado por ajudar a construir o Match Tech! 🚀
Obrigado por ajudar a construir o Match Tech! 🚀
14 changes: 14 additions & 0 deletions Dockerfile.backend
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
FROM node:22-bookworm

WORKDIR /app

COPY package.json package-lock.json* ./
RUN npm ci --include=dev

COPY src ./src
COPY tsconfig.json ./

ENV PORT=3001
EXPOSE 3001

CMD ["npx", "tsx", "src/server/server.ts"]
17 changes: 17 additions & 0 deletions Dockerfile.frontend
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
FROM node:22-bookworm AS builder

WORKDIR /app
COPY package.json package-lock.json* ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:22-bookworm AS runner

WORKDIR /app
COPY package.json package-lock.json* ./
RUN npm ci --include=dev
COPY --from=builder /app/dist ./dist

EXPOSE 3000
CMD ["npx", "vite", "preview", "--host", "0.0.0.0", "--port", "3000"]
Loading
Loading