A Cazul é a primeira plataforma brasileira a reunir informação sobre o Carbono Azul e seus benefícios para as comunidades e os manguezais.
Este repositório contém o servidor/backend da plataforma Cazul, responsável por expor os dados via API para o site público (frontend) e para outros consumidores autorizados.
O frontend (site público) e o CMS (Sanity) ficam em repositórios separados.
- Nome: Plataforma Cazul
- Tema: Carbono Azul e manguezais no Brasil
- Realização: Guardiões do Mar
- Patrocínio: Fundação o Boticário
- Ano de criação: 2024
Este projeto implementa o servidor / API da Cazul, que tem como objetivo centralizar e servir dados relacionados a Carbono Azul, manguezais e conteúdos da plataforma. Ele é responsável por fornecer dados para o mapa interativo do site (estoques de carbono, extensão de manguezais, população, etc.).
O ecossistema da Cazul é organizado em três partes:
- Frontend (site público) — Aplicação web em Next.js, responsável pela interface com o usuário final (repositório separado).
- CMS (Sanity) — Painel de gestão de conteúdo, onde são cadastrados textos, novidades e outros conteúdos editoriais (repositório separado).
- Servidor / API (este repositório) — Camada de backend que centraliza a lógica de negócio e o acesso a dados, servindo informações para o frontend.
- Node.js (versão LTS recomendada)
- npm (ou outro gerenciador de pacotes compatível)
- PostgreSQL acessível a partir do servidor
Crie um arquivo .env na raiz do projeto (ou configure variáveis no ambiente) com, pelo menos, os seguintes valores:
DB_HOST: host do banco PostgreSQLDB_PORT: porta do banco (ex.:5432)DB_USER: usuário do bancoDB_PASSWORD: senha do bancoDB_DATABASE: nome do banco da CazulAPI_KEY: chave usada para autenticação via headerAuthorization: Bearer <API_KEY>port: porta HTTP em que a API será exposta (opcional, padrão3002)
Na raiz do projeto:
npm installPara subir o servidor em modo de desenvolvimento (com nodemon e ts-node):
npm run devPor padrão, a API ficará disponível em http://localhost:3002 (ou na porta definida na variável de ambiente port).
Para gerar o build em JavaScript a partir do código TypeScript:
npm run buildPara executar o servidor (usando ts-node diretamente):
npm startO modo exato de deploy em produção (uso do build, containers, orquestração etc.) depende da infraestrutura onde a Cazul está hospedada.
npm start: inicia o servidor usandots-node(src/index.ts).npm run dev: inicia o servidor em modo desenvolvimento comnodemon.npm run build: compila o código TypeScript para JavaScript (tsc).npm run prepare: instala hooks do Husky.
Este projeto é licenciado sob os termos da MIT License.