Mercato é um sistema de vendas desenvolvido em TypeScript utilizando o framework NestJS e o banco de dados SQLite.
- Cadastro de produtos.
- Exibição dos produtos.
- Utilização de um banco de dados SQLite para armazenamento de dados.
- Arquitetura modular utilizando controllers, services e repositories.
- NestJS - Framework backend.
- Bun - Runtime JavaScript de alto desempenho.
- TypeORM - ORM para integração com banco de dados.
- SQLite - Banco de dados relacional.
- TypeScript - Superconjunto do JavaScript com tipagem estática.
- Argon2 - Biblioteca de criptografia para hash e verificação de senhas.
- Bun instalado. Para instalar, execute:
curl -fsSL https://bun.sh/install | bash
- Clone o repositório:
git clone https://github.com/seu-usuario/mercato.git
cd mercato-backend
- Instale as dependências:
bun install
- Configurações do banco de dados: O projeto usa SQLite por padrão. O arquivo do banco de dados será gerado automaticamente no diretório raiz do projeto com o nome
mercato.sqlite
. Caso queira alterar o nome do arquivo, edite a configuração do TypeORM emsrc/ormconfig.ts
.
export const typeOrmConfig: TypeOrmModuleOptions = {
type: 'sqlite',
database: 'mercato.sqlite', // Ou o caminho desejado
entities: [__dirname + '/**/*.entity{.ts,.js}'],
synchronize: true,
};
- Rodar a aplicação: Para iniciar o servidor NestJS utilizando bun:
bun run start
A aplicação será executada em http://localhost:3000
├── src
│ ├── app.module.ts # Módulo principal da aplicação
│ ├── ormconfig.ts # Configurações do TypeORM
│ ├── user # Módulo de usuários
│ │ ├── entities
│ │ │ ├── user.entity.ts # Entidade de usuário
│ │ ├── user.module.ts # Módulo de usuários
│ │ ├── user.service.ts # Serviço de usuários
│ │ ├── user.controller.ts # Controlador de usuários
│ └── main.ts # Ponto de entrada da aplicação
├── mercato.sqlite # Arquivo do banco de dados (gerado automaticamente)
├── README.md # Documentação do projeto
└── package.json # Scripts e dependências do projeto
- Cadastrar usuário (POST):
- URL:
http://localhost:3000/user
{ "email": "johndoe@example.com", "password": "abobrinha" }
- URL:
- Obter todos os usuários (GET):
- URL:
http://localhost:3000/user
- URL: