Skip to content

rickneves15/plataforma-gestao-networking

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Plataforma de Gestão para Grupos de Networking

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.

✨ Visão Geral da Arquitetura

  • 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).

📋 Pré-requisitos

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)

⚙️ Como Executar o Projeto

Siga os passos abaixo para configurar e executar o ambiente de desenvolvimento local.

1. Clone o Repositório

git clone <URL_DO_SEU_REPOSITORIO>
cd <NOME_DO_REPOSITORIO>

2. Configure o Backend (/api)

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 install

b. 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 .env

Agora, 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=3333

c. 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:migrate

e. Inicie o Servidor Backend:

npm run dev

O servidor Fastify estará em execução, geralmente em http://localhost:3333.

3. Configure o Frontend (/web)

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 install

b. 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 dev

A aplicação Next.js estará disponível em http://localhost:3000.


✅ Conclusão

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.


🚀 Próximos Passos e Melhorias

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.yml na 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages