Este é o repositório oficial da Plataforma de Gestão para Grupos de Networking. A solução foi projetada para digitalizar e otimizar a administração de grupos de negócios, substituindo controles manuais por um sistema centralizado, eficiente e escalável.
O projeto segue uma arquitetura de serviços desacoplados, com um backend robusto em Fastify e um frontend moderno em Next.js.
- Frontend (
/web): Construído com Next.js 15 (App Router), TypeScript, React Query para data-fetching, Zustand para gestão de estado e shadcn/ui para uma interface consistente. - Backend (
/api): Uma API REST de alta performance desenvolvida com Fastify, validação de schemas com Zod, e comunicação com o banco de dados via Drizzle ORM. - Banco de Dados: PostgreSQL, escolhido por sua robustez, confiabilidade e suporte a dados relacionais complexos.
- Autenticação: Fluxos de autenticação protegidos com JWT (JSON Web Tokens).
Antes de começar, certifique-se de que você tem as seguintes ferramentas instaladas em sua máquina:
- Node.js (versão 18.x ou superior)
- npm ou yarn
- Docker e Docker Compose (recomendado para rodar o PostgreSQL)
Siga os passos abaixo para configurar e executar o ambiente de desenvolvimento local.
git clone <URL_DO_SEU_REPOSITORIO>
cd <NOME_DO_REPOSITORIO>O backend é responsável pela lógica de negócio, comunicação com o banco de dados e exposição dos endpoints da API.
a. Instale as dependências:
cd api
npm installb. Configure as Variáveis de Ambiente:
Crie um arquivo .env na raiz do diretório /api a partir do exemplo. Este arquivo armazenará suas chaves secretas e configurações de ambiente.
# Copie o arquivo de exemplo
cp .env.example .envAgora, edite o arquivo .env com as suas configurações.
# .env
# Configuração do Banco de Dados
DATABASE_URL="postgresql://user:password@localhost:5432/mydatabase?schema=public"
# Segredo para gerar os tokens JWT (use um valor forte e aleatório)
JWT_SECRET="seu-segredo-super-secreto-aqui"
# URL do frontend para configuração do CORS
FRONTEND_URL="http://localhost:3000"
# Porta em que a API será executada
PORT=3333c. Suba o Banco de Dados (PostgreSQL):
A maneira mais simples de executar o PostgreSQL é usando Docker. Um arquivo docker-compose.yml pode ser usado para simplificar o processo. Se não houver um, você pode executar o container manualmente ou instalar o PostgreSQL localmente.
d. Execute as Migrações do Banco:
Com o banco de dados em execução, aplique as migrações para criar as tabelas e relacionamentos necessários.
# Este comando executa os scripts de migração gerados pelo Drizzle Kit
npm run db:migratee. Inicie o Servidor Backend:
npm run devO servidor Fastify estará em execução, geralmente em http://localhost:3333.
O frontend é a interface com a qual o usuário interage, construída com Next.js.
a. Instale as dependências (em um novo terminal):
cd web
npm installb. Configure as Variáveis de Ambiente:
O Next.js utiliza o arquivo .env.local para variáveis de ambiente. Crie este arquivo na raiz do diretório /web.
# /web/.env.local
# URL completa da API backend para o cliente fazer as requisições
NEXT_PUBLIC_API_URL="http://localhost:3333"c. Inicie a Aplicação Frontend:
npm run devA aplicação Next.js estará disponível em http://localhost:3000.
Ao final desses passos, você terá a plataforma completa rodando localmente:
- Backend API:
http://localhost:3333 - Frontend Web:
http://localhost:3000
A comunicação entre os serviços já está configurada através das variáveis de ambiente, permitindo um desenvolvimento integrado e eficiente.
Este projeto foi construído com uma base sólida, mas há sempre espaço para evolução. Abaixo estão alguns pontos sugeridos para futuras implementações e melhorias:
-
Autenticação Avançada: Implementar um fluxo de refresh tokens para melhorar a segurança da sessão e a experiência do usuário, evitando a necessidade de logins frequentes.
-
Notificações em Tempo Real: Integrar WebSockets para fornecer feedback instantâneo aos usuários sobre eventos importantes, como o recebimento de uma nova indicação de negócio ou a aprovação de um cadastro.
-
Relatórios e Dashboards Avançados: Desenvolver um módulo de relatórios automáticos para enviar KPIs (Key Performance Indicators) por e-mail aos administradores e criar dashboards analíticos mais detalhados.
-
Containerização Completa: Criar um arquivo
docker-compose.ymlna raiz do projeto para orquestrar os serviços de backend, frontend e o banco de dados com um único comando (docker-compose up), simplificando ainda mais o ambiente de desenvolvimento. -
Expansão da Cobertura de Testes: Aumentar a cobertura de testes automatizados (unitários, integração e E2E com Playwright) para garantir a estabilidade e a confiabilidade do sistema à medida que novas funcionalidades são adicionadas.
-
Sistema de Permissões Granular (RBAC): Evoluir o sistema de papéis (
ADMIN,MEMBER) para um controle de acesso baseado em permissões mais granulares, permitindo, por exemplo, a criação de papéis customizados.