- Propósito: Plataforma completa de encurtamento e monitoramento de URLs utilizada pelos produtos Rapport.
- Arquitetura DDD: O backend em
rapport-shortener/backend/organiza camadasdomain,applicationeinfrastructure, expondo uma API Express com Sequelize/MySQL. O frontend emrapport-shortener/frontend/é um painel React (Create React App) que consome essa API. - Integração automática: O servidor backend (
src/index.ts) inicializa o React Dev Server, permitindo desenvolvimento integrado (API + interface) com um único comando.
- Node.js >= 18 e npm >= 9 instalados no servidor.
- MySQL/MariaDB com mecanismo InnoDB disponível e credenciais válidas.
- Acesso à porta configurada em
PORT(backend) e, opcionalmente,REACT_APP_PORT(frontend).
- Schema: utilize o script
rapport-shortener/backend/sql/sql_create.sqlpara criar as tabelassites,sites_shortenesesites_shortener_stats. - Credenciais: o backend lê as variáveis
DB_HOST,DB_NAME,DB_USER,DB_PASSePORTdo arquivo.envemrapport-shortener/backend/(mantenha um.env.exampleversionado).
- Crie um
.envemrapport-shortener/frontend/com:REACT_APP_BACKEND_URL: URL pública da API Express (ex.:https://s.rapport.tec.br).REACT_APP_PORT: porta em que o React Dev Server escutará no modo desenvolvimento.PORT: repita a porta para o servidor de desenvolvimento, se necessário pelo provedor de hospedagem.- Arquive um
.env.examplecom os campos esperados para facilitar a replicação do ambiente.
- Backend
cd rapport-shortener/backend npm install - Frontend
cd rapport-shortener/frontend npm install
- Comando único:
cd rapport-shortener/backend npm run dev- O backend será iniciado no
PORTdefinido e, automaticamente, o React Dev Server executaránpm startusandosrc/loadFrontendEnv.tspara repassar variáveis do.envdo frontend.
- O backend será iniciado no
- Logs: acompanhe o terminal. Ajuste o logger conforme os padrões da organização (Pino com agrupamento
[setor/tema]).
- Build do backend:
cd rapport-shortener/backend npm run build - Start em produção (após build):
node dist/index.js
- O código compilado continua inicializando o servidor do frontend. Para hospedar o frontend como estático, execute
npm run buildemrapport-shortener/frontend/e sirva a pastabuild/em um servidor HTTP dedicado.
- O código compilado continua inicializando o servidor do frontend. Para hospedar o frontend como estático, execute
- Configurar banco (script em
backend/sql/). - Criar
.envno backend com credenciais e porta. - Criar
.envno frontend apontando para o domínio público da API. - Instalar dependências em
backend/efrontend/. - Executar
npm run buildem ambos os módulos. - Publicar
dist/index.js(API) em ambiente Node.js e servir ofrontend/build/via Nginx ou similar. - Monitorar logs seguindo o padrão
[setor/tema] Mensagemcom emoticons e estatísticas relevantes.
- Pull requests e issues são bem-vindos no repositório. Ajustes específicos podem seguir a política já descrita em
backend/README.md.