KImóveis é uma API RESTful desenvolvida em TypeScript utilizando Node.js, Express e TypeORM para gerenciar imóveis, categorias, usuários, sessões e agendamentos. O projeto segue boas práticas de arquitetura, separando responsabilidades em controllers, services, middlewares e repositórios.
- Cadastro, listagem, atualização e remoção de usuários
- Autenticação de usuários (login)
- Cadastro e listagem de categorias de imóveis
- Cadastro e listagem de imóveis
- Agendamento de visitas a imóveis
- Controle de acesso por níveis de permissão (admin e usuário comum)
- Node.js
- TypeScript
- Express
- TypeORM
- PostgreSQL
- Jest (testes automatizados)
├── src/
│ ├── __tests__/ # Testes automatizados
│ ├── controllers/ # Lógica dos endpoints
│ ├── entities/ # Entidades do banco de dados
│ ├── interfaces/ # Tipagens e interfaces
│ ├── middlewares/ # Middlewares de validação e autenticação
│ ├── migrations/ # Migrations do banco de dados
│ ├── repositories/ # Repositórios customizados
│ ├── routers/ # Rotas da aplicação
│ ├── schemas/ # Schemas de validação
│ ├── services/ # Regras de negócio
│ ├── app.ts # Configuração principal do Express
│ ├── data-source.ts # Configuração do TypeORM
│ ├── server.ts # Inicialização do servidor
│ └── error.ts # Tratamento global de erros
├── package.json
├── tsconfig.json
├── jest.config.ts
└── README.md
- Clone o repositório:
git clone https://github.com/pedromarcusso09/kimoveis cd kimoveis - Instale as dependências:
npm install
- Configure o banco de dados:
- Crie um banco PostgreSQL e configure as variáveis de ambiente conforme necessário.
- Rode as migrations:
npm run typeorm migration:run
- Inicie o servidor:
npm run dev
- Execute os testes:
npm test
Crie um arquivo .env na raiz do projeto com as seguintes variáveis:
DB_HOST=localhost
DB_PORT=5432
DB_USER=seu_usuario
DB_PASSWORD=sua_senha
DB_NAME=nome_do_banco
JWT_SECRET=sua_secret
Os testes estão localizados na pasta src/__tests__. Utilize o comando npm test para executá-los.