Trycatch
Plataforma colaborativa para conectar membros da nossa comunidade a projetos reais, facilitar a organização de tarefas e divulgar os portfólios individuais. Tudo isso com foco em experiência prática, visibilidade e crescimento conjunto.
Install / Use
/learn @TryCatch-ForMatch/TrycatchREADME
TryCatch 4Match - Plataforma de Organização de Projetos Colaborativos
🌐 Idiomas / Languages: Português | English
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --> <!-- ALL-CONTRIBUTORS-BADGE:END -->
🚀 Sobre o projeto
TryCatch é 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.
🔥 Objetivo
- 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.
🏗️ Stack do Projeto
- 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 ou Neon (PostgreSQL na nuvem)
- Design: Figma
- Controle de versão: Git + GitHub
- Kanban: GitHub Projects
❤️ Construção coletiva
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.
🙌 Como contribuir?
Leia o Guia de Contribuição para entender o fluxo de trabalho, boas práticas, padrões e combinados da equipe.
Confira também nosso arquivo CONTRIBUTORS.md para conhecer todos os colaboradores incríveis que ajudaram a construir este projeto. 🚀
⚙️ Como rodar localmente
🧾 1. Pré-requisitos
- Node.js (v20 ou superior - LTS)
- Docker + Docker Compose (caso queira rodar o banco via container)
📦 2. Clone o repositório
git clone https://github.com/TryCatch-ForMatch/trycatch.git
cd trycatch
git checkout develop
📥 3. Instale as dependências
npm install
🔐 4. Configure o arquivo .env
Crie um arquivo .env.local na raiz do projeto com base no exemplo abaixo (o Next.js lê esse arquivo automaticamente e ele já está configurado para não subir pro seu GitHub):
# 👉 Opção 1: Banco compartilhado (Neon - recomendado para o time)
DATABASE_URL="postgresql://neondb_owner:SUA_SENHA_AQUI@ep-autumn-surf-acr8iv80-pooler.sa-east-1.aws.neon.tech/neondb?sslmode=require&channel_binding=require"
# 👉 Opção 2: Banco rodando via Docker local
# DATABASE_URL="postgresql://trycatch_user:trycatch_pass@localhost:5555/trycatch_db"
# 👉 Opção 3: Banco 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-segredo
🐳 5. Escolha como rodar o banco de dados
Você tem 3 opções para usar o banco PostgreSQL no ambiente de desenvolvimento:
✅ Opção 1 – Usar o banco compartilhado no Neon (recomendado)
Não precisa instalar ou subir Docker. Basta configurar o .env com a URL do Neon e rodar as migrations normalmente:
npx prisma migrate deploy
npm run seed # opcional, para criar usuário admin de testes
✅ Opção 2 – Usar Docker localmente
Caso prefira rodar seu próprio container PostgreSQL localmente:
docker-compose up -d
Isso cria um banco PostgreSQL acessível em localhost:5555.
Depois, aplique as migrations:
npx prisma migrate dev
npm run seed
✅ Opção 3 – Usar PostgreSQL local instalado na máquina
Se você já tem o PostgreSQL instalado, basta ajustar a DATABASE_URL para usar a porta padrão 5432 e rodar as migrations normalmente.
🔃 6. Rode as migrations do Prisma
Independente da opção escolhida, aplique as migrations do Prisma para criar as tabelas:
npx prisma generate
npx prisma migrate deploy # se estiver usando Neon
# ou
npx prisma migrate dev # se estiver usando Docker/local
💡 Dica: Utilize npx prisma studio para visualizar o banco de dados em uma interface web.
📸 Upload de Avatar com Cloudinary
Este projeto utiliza o Cloudinary para armazenar e otimizar os avatares dos usuários.
O upload é feito automaticamente para o Cloudinary, e a URL da imagem é salva no banco de dados.
📝 Passo 1: Criar conta gratuita no Cloudinary
- Acesse https://cloudinary.com
- Clique em Sign Up Free e crie uma conta (plano gratuito já é suficiente).
- No painel do Cloudinary, vá em Dashboard → API Keys e copie:
- Cloud name
- API Key
- API Secret
⚙️ Passo 2: Configurar variáveis de ambiente
No ambiente local, adicione essas variáveis no arquivo .env.local (que já está no .gitignore):
CLOUDINARY_CLOUD_NAME=seu_cloud_name
CLOUDINARY_API_KEY=sua_api_key
CLOUDINARY_API_SECRET=sua_api_secret
▶️ 7. Inicie o servidor de desenvolvimento
npm run dev
Abra o navegador em: http://localhost:3000
🤖 Está desenvolvendo? Use nosso Code Reviewer!
Para te ajudar a aprender e garantir que seu código está seguindo boas práticas antes de enviar um Pull Request, nós temos um Agente de Code Review integrado com a IA do Gemini.
Ele roda direto no seu terminal e gera relatórios automáticos de melhorias!
👉 Clique aqui no nosso Guia de Contribuição para ver como criar sua chave gratuita do Gemini e rodar o comando npm run review.
👤 Criar Usuário Admin para Testes
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 seed
Esse comando executa o script que cria um usuário admin com os seguintes dados:
- Email: admin@admin.com
- Senha: teste123
- Função: ADMIN
⚠️ Certifique-se de que o banco de dados esteja rodando antes de executar o script (pode ser local, Docker ou Neon).
Esse usuário pode ser usado para autenticação via API ou interface, de acordo com as permissões definidas no projeto.
🧹 Lint e formatação
Para verificar erros e manter o padrão de código:
npm run lint
Para formatar automaticamente com Prettier:
npm run format
🗄️ Banco de Dados
O 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 devouprisma migrate deploy.
🧠 Outras informações
- 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á estruturado com autenticação via NextAuth e integração com a API.
Contributors ✨
Confira nosso arquivo CONTRIBUTORS.md para conhecer todos os colaboradores incríveis que ajudaram a construir este projeto. Sinta-se à vontade para abrir uma issue ou PR! 💜
Este projeto segue a especificação do all-contributors. Contribuições de qualquer tipo são bem-vindas!
Related Skills
node-connect
344.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
99.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
344.4kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
344.4kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
