Sistema de visualização e gerenciamento de dados de obras da cidade de Pindamonhangaba, desenvolvido com Next.js 15, TypeScript, Drizzle ORM e PostgreSQL.
Antes de iniciar, certifique-se de ter instalado:
git clone [URL_DO_REPOSITORIO]
cd Pindamonhangaba.SISOBRA/srcnpm install-- Conecte ao PostgreSQL como superusuário
CREATE DATABASE sisobra_pref;
CREATE USER sisobra_user WITH PASSWORD 'sua_senha_segura';
GRANT ALL PRIVILEGES ON DATABASE sisobra_pref TO sisobra_user;Execute o arquivo database_structure/estrutura_postgresql.sql no seu banco:
# Usando psql
psql -U sisobra_user -d sisobra_pref -f database_structure/estrutura_postgresql.sql
# Ou através do pgAdmin, importando o arquivo SQL# Windows
copy .env.example .env.local
# Linux/Mac
cp .env.example .env.local# Configurações do Banco de Dados
DB_HOST=localhost
DB_PORT=5432
DB_NAME=sisobra_pref
DB_USER=sisobra_user
DB_PASSWORD=sua_senha_segura
DB_SSL=false
# Configurações da Aplicação
NEXT_PUBLIC_APP_NAME=SISOBRA - Visualização de Dados
NODE_ENV=development# Aplicar schemas do Drizzle ao banco existente
npm run db:pushnpm run devO projeto estará disponível em: http://localhost:3000
# Build da aplicação
npm run build
# Iniciar em produção
npm startsrc/
├── app/ # App Router do Next.js 15
│ ├── api/ # API Routes
│ │ └── prefeituras/ # Endpoints de prefeituras
│ ├── components/ # Componentes React
│ │ └── Navigation.tsx # Menu de navegação
│ ├── db/ # Configuração do banco
│ │ ├── config.ts # Configuração Drizzle
│ │ ├── queries/ # Queries do banco
│ │ └── schema/ # Schemas do Drizzle
│ ├── prefeituras/ # Página de prefeituras
│ └── globals.css # Estilos globais
├── database_structure/ # Scripts SQL do banco
├── .env.example # Exemplo de variáveis de ambiente
└── drizzle.config.ts # Configuração do Drizzle Kit
| Script | Descrição |
|---|---|
npm run dev |
Inicia o servidor de desenvolvimento |
npm run build |
Gera build de produção |
npm start |
Inicia servidor de produção |
npm run lint |
Executa o linter |
npm run db:generate |
Gera migrações do Drizzle |
npm run db:migrate |
Aplica migrações |
npm run db:push |
Sincroniza schema com banco |
npm run db:studio |
Abre Drizzle Studio |
- Visualização de prefeituras cadastradas
- Busca por nome de prefeitura
- Interface responsiva com Tailwind CSS
- Conexão com PostgreSQL via Drizzle ORM
- API REST para consultas
- Visualização de obras
- Relatórios de habite-se
- Consulta de responsáveis
- Dashboard com estatísticas
- Filtros avançados
O sistema utiliza as seguintes tabelas principais:
- prefeitura - Dados das prefeituras
- obra - Informações das obras
- habitese - Habite-se emitidos
- responsavel - Responsáveis técnicos
- usuarios - Usuários do sistema
- tab_* - Tabelas auxiliares (CEP, municípios, etc.)
Acesse: http://localhost:3000/api/test-config
- Verifica se as variáveis de ambiente estão corretas
Acesse: http://localhost:3000/api/check-tables
- Lista as tabelas disponíveis no banco
Acesse: http://localhost:3000/api/prefeituras
- Retorna dados das prefeituras em JSON
Acesse: http://localhost:3000/prefeituras
- Interface visual para consulta de prefeituras
- Verifique se o banco foi criado corretamente
- Execute o script SQL de criação das tabelas
- Confirme os nomes das tabelas no pgAdmin
- Verifique se
DB_PASSWORDestá definida no.env.local - Certifique-se de que a senha não contém caracteres especiais sem aspas
- Teste a conexão diretamente no PostgreSQL
- Confirme se o PostgreSQL está rodando
- Verifique host, porta e credenciais
- Teste conectividade:
psql -h localhost -U sisobra_user -d sisobra_pref
- Arquivo deve ser
.env.localna raiz do projeto (src/) - Reinicie o servidor após alterações
- Verifique sintaxe (sem espaços ao redor do =)
⚠️ Nunca commite arquivos.env.localou credenciais- Use senhas fortes em produção
- Configure SSL para ambiente de produção
- Mantenha dependências atualizadas
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Este projeto é propriedade da Prefeitura de Pindamonhangaba.
Para dúvidas ou problemas:
- Abra uma issue no repositório
- Entre em contato com a equipe de desenvolvimento
Desenvolvido para a Prefeitura de Pindamonhangaba 🏛️