A plataforma de empreededorismo EmpreendHer tem o objetivo de estimular o empreendedorismo feminino através da divulgação de serviços e vagas na área de tecnologia. Foi idealizado no HackingRio 2024, Hackathon exclusivo para mulheres.
O repositório completo com frontend e prototipação pode ser acessado aqui
Este projeto implementa o backend para EmpreendHer utilizando Node.js para o ambiente de execução, Express como framework web, TypeORM para mapeamento objeto-relacional com PostgreSQL como banco de dados e injeção de dependência para gerenciar componentes e serviços.
-
config: Contém configurações do projeto, incluindo definições de ambiente.
-
di: Implementação do container de injeção de dependência e tokens para centralizar a resolução de dependências.
-
domain: Núcleo da aplicação onde são definidas entidades, interfaces, repositórios e serviços.
- entities: Entidades de domínio, como Service, Job, Content e Promotion.
- interfaces: Interfaces utilizadas para definições contratuais entre diferentes partes da aplicação.
- repositories: Definições de repositórios que encapsulam operações de persistência.
- use-cases: Lógica de negócio da aplicação, incluindo serviços para manipulação de dados.
-
infrastructure: Implementações específicas para infraestrutura, como conexões com banco de dados e migrações.
- database/mysql/migrations: Migrações do TypeORM para controle de versão do banco de dados.
-
presentation: Camada de apresentação da aplicação, incluindo controladores, tratamento de erros e definição de rotas.
- controllers: Controladores que recebem requisições HTTP, interagem com serviços e retornam respostas.
- errors: Tratamento centralizado de erros para padronização de respostas de erro.
- routes: Definição de rotas da aplicação utilizando Express.
- Clone este repositório e navegue até o diretório raiz.
- Execute
npm install
para instalar todas as dependências necessárias. - Faça uma cópia do arquivo
.env.example
como.env
e configure as variáveis de ambiente conforme necessário.
- Instale PostgreSQL 12.19 e crie um banco de dados chamado
empreendHer
.
Para aplicar as migrações ao banco de dados:
npm run migrate
- Para criar novas migrations
npm run typeorm migration:create -n src/infrastructure/database/psql/migrations/
Você pode testar a API utilizando ferramentas como Insomnia ou Postman.
- Endpoint:
/local/post
Exemplo de JSON:
{
"name": "São Paulo, SP",
}
- Endpoint:
/local/list
- Endpoint:
/payment-methods/post
Exemplo de JSON:
{
"name": "Pix",
"description": "pagamento via app do banco"
}
- Endpoint:
/payment-methods/list
- Endpoint:
/service-type/post
Exemplo de JSON:
{
"name": "Desenvolvimento Web",
"description": "Serviços que envolvem a criação, manutenção e otimização de websites e aplicações web. Inclui design responsivo, desenvolvimento front-end e back-end, integração de APIs, e-commerce, blogs, portfólios."
}
- Endpoint:
/service-type/list
- Endpoint:
/publication-type/post
Exemplo de JSON:
{
"name": "Serviço",
}
- Endpoint:
/publication-type/list
- Endpoint:
/publications/post
Exemplo de JSON:
{
"title": "Serviço de Teste",
"serviceType": "coloque o id do service_type",
"paymentMethods": "coloque o id do payment_method",
"description": "Descrição do serviço de teste.",
"price": 100.50,
"deliveryTime": "2 dias úteis",
"local": "coloque o id do local",
"publicationType": "coloque o id do publication_type"
}
- Endpoint:
/publications/list