TryCatch For Match é uma plataforma colaborativa desenvolvida para organizar projetos, conectar pessoas, gerar portfólios reais e criar um ambiente que simula o mercado de trabalho. Aqui praticamos comprometimento, disciplina e colaboração.
Mais do que apenas código, este projeto é um laboratório de aprendizado coletivo, onde evoluímos juntos tanto em habilidades técnicas quanto comportamentais.
- Construir uma plataforma web onde:
- Membros possam criar e gerenciar projetos internos;
- As tarefas sejam divididas com base em habilidades técnicas;
- O sistema faça "match" entre tarefas e membros com perfis compatíveis;
- Um histórico de colaboração seja gerado para portfólios reais.
- Frontend: Next.js + TypeScript + TailwindCSS
- Backend: API Routes do Next.js + TypeScript + Prisma
- Banco de Dados: PostgreSQL
- ORM: Prisma
- Ambiente de desenvolvimento: Docker + Docker Compose
- Design: Figma
- Controle de versão: Git + GitHub
- Kanban: GitHub Projects
Nosso foco é o desenvolvimento real de habilidades: trabalho em equipe, responsabilidade e entrega. Todos os participantes são incentivados a colaborar de forma ativa e comprometida, simulando uma equipe de desenvolvimento profissional.
Leia o Guia de Contribuição para entender o fluxo de trabalho, boas práticas, padrões e combinados da equipe.
- Node.js (versão recomendada: LTS)
- Docker + Docker Compose (caso queira rodar o banco via container)
git clone https://github.com/TryCatch-ForMatch/trycatch.git
cd trycatch
git checkout developnpm installCrie um arquivo .env na raiz do projeto com base no exemplo abaixo:
# Se estiver rodando o banco via Docker
DATABASE_URL="postgresql://trycatch_user:trycatch_pass@localhost:5555/trycatch_db"
# Ou, se estiver rodando localmente sem Docker
# DATABASE_URL="postgresql://postgres:postgres@localhost:5432/trycatch_db"
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=um-segredo-seguro
JWT_SECRET=um-outro-segredoCaso prefira usar Docker para o banco de dados, você pode usar o docker-compose.yml incluído no projeto:
Com o Docker Desktop aberto,
docker-compose up -dEste comando iniciará um container PostgreSQL escutando na porta 5555. Certifique-se de que essa porta está configurada corretamente no .env.
npx prisma migrate devEste comando criará as tabelas no banco e aplicará os schemas definidos no prisma/schema.prisma.
npm run devAbra o navegador em: http://localhost:3000
Para facilitar os testes da API, incluímos um script que cria um usuário administrador no banco de dados.
📥 Como rodar Após configurar o .env corretamente e rodar as migrations do Prisma, execute:
npm run seedEsse comando executa o script createTestUser.ts, que cria um usuário admin com os seguintes dados:
Email: admin@admin.com
Senha: teste123
Função: ADMIN
Esse usuário pode ser usado para autenticação via API ou interface, de acordo com as permissões definidas no projeto.
Para verificar erros e manter o padrão de código:
npm run lintPara formatar automaticamente com Prettier:
npm run formatO projeto utiliza o Prisma para modelar o banco de dados PostgreSQL.
- Os IDs são do tipo
CUID, ideais para sistemas distribuídos; - Todos os relacionamentos (usuário, projeto, habilidades, stacks, feedbacks) estão devidamente mapeados;
- As migrations estão versionadas e podem ser aplicadas com
prisma migrate dev.
- O backend utiliza validações com Zod;
- As permissões são controladas por função (
role) e centralizadas emlib/check-auth.ts; - O frontend está sendo estruturado com autenticação via NextAuth e integração com a API.
💡 Dica: Utilize
npx prisma studiopara visualizar o banco de dados em uma interface web.
Sinta-se à vontade para abrir uma issue ou PR. Toda ajuda é bem-vinda! 💜