https://github.com/laisrmacedo/usavings-challenges
Desafios para candidatos(as) para vagas do time uSavings (Ustore/Claro Brasil)
https://github.com/laisrmacedo/usavings-challenges
angular css docker mysql nestjs nodejs typeorm typescript
Last synced: 8 days ago
JSON representation
Desafios para candidatos(as) para vagas do time uSavings (Ustore/Claro Brasil)
- Host: GitHub
- URL: https://github.com/laisrmacedo/usavings-challenges
- Owner: laisrmacedo
- Created: 2024-09-06T13:03:16.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-04-14T14:48:17.000Z (about 1 year ago)
- Last Synced: 2025-04-14T15:46:26.011Z (about 1 year ago)
- Topics: angular, css, docker, mysql, nestjs, nodejs, typeorm, typescript
- Language: TypeScript
- Homepage: https://vitalatte.onrender.com/
- Size: 358 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# uSavings Challenges
Desafios para candidatos(as) para vagas do time uSavings (Ustore/Claro Brasil)
## 📝 Contexto Personalizado
Lucas é um jovem empreendedor e decidiu abrir sua própria empresa, a Vitalatte, com foco na produção de produtos derivados do leite. Ele observou que o processo de gerenciamento de inventário de sua empresa, especialmente no que diz respeito ao monitoramento das datas de validade dos produtos, é frequentemente manual e suscetível a erros. Ele decidiu que seria benéfico desenvolver uma aplicação web que simplificasse essa tarefa, permitindo-o controlar seus produtos de forma mais eficiente e evitar prejuízos decorrentes de produtos vencidos.
## 📌 Solução Proposta
Criei uma aplicação web full stack para atender às necessidades de Lucas, com foco no gerenciamento eficiente de produtos e estoque. As principais funcionalidades incluem:
1. Catalogação de Produtos:
- Cadastro único de produtos no catálogo;
- Edição e exclusão de informações dos produtos;
- Garantia de que um produto não pode ser cadastrado mais de uma vez.
2. Gerenciamento de Estoque:
- Registro de entradas de produtos no estoque;
- Controle de edição e exclusão dos registros;
- Restrições que impedem o registro de produtos não catalogados ou vencidos;
- Preenchimento automático da data de fabricação (data atual) e cálculo da data de vencimento com base no tempo de vida útil do produto. A data de fabricação também pode ser preenchida manualmente.
3. Monitoramento de Prazo de Validade:
- Visualização completa do estoque, com alertas visuais:
- Produtos vencidos destacados em vermelho;
- Produtos próximos ao vencimento (até 3 dias) destacados em amarelo.
## 📋 Pré-requisitos
- [Node.js](https://nodejs.org/)
- [npm](https://www.npmjs.com/)
- [Docker](https://www.docker.com/) (opcional, para uso com containers)
## 🧩 Backend
#### DEPLOY
[Web Service](https://render.com/)
#### CONSTRUÍDO COM
- [NestJS](https://docs.nestjs.com/)
- [Typescript](https://www.typescriptlang.org/docs/)
- [MySQL](https://dev.mysql.com/doc/)
- [TypeORM](https://typeorm.io/)
- [Render](https://render.com/)
- [Aiven](https://aiven.io/)
#### CONFIGURAÇÕES
1. Navegue até o diretório backend:
```
cd inventory-backend
````
2. Instale as dependências:
```
npm install
````
3. Crie um arquivo .env na raiz do diretório backend com as seguintes variáveis (ajuste conforme necessário):
```
DB_HOST=localhost
DB_PORT=3306
DB_USERNAME=root
DB_PASSWORD=senha
DB_DATABASE=nome-do-db
````
5. Em desenvolvimento, inicie o servidor backend com:
```
npm run start:dev
```
#### DOCUMENTAÇÃO
[REST API: Inventory Management](https://documenter.getpostman.com/view/24460805/2sAXjRXA7g)
## 🖼️ Frontend
#### DEPLOY
[Live Full Stack App](https://vitalatte.onrender.com/)
#### CONSTRUÍDO COM
- [Angular](https://v17.angular.io/docs)
- [Typescript](https://www.typescriptlang.org/docs/)
- [CSS](https://devdocs.io/css/)
- [Render](https://render.com/)
#### INSTALAÇÃ0
1. Navegue até o diretório frontend:
```
cd inventory-frontend
```
2. Instale as dependências:
```
npm install
```
3. Inicie o servidor frontend:
- Em desenvolvimento:
```
npm run start
```
- Em produção:
```
npm run build:prd
npm run serve:ssr:inventory-frontend
```
## 🐳 DOCKER
Tanto o inventory-backend quando o inventory-frontend possuem Dockerfiles que descrevem a imagem do container e podem ser executadas individualmente.
#### CONFIGURAÇÕES DO BACKEND
1. Navegue até o diretório:
```
cd inventory-backend
````
2. Execulte os comandos:
```
docker build -t inventory-backend:latest .
docker run -p 3000:3000 --env-file ./.env inventory-backend:latest
```
Lembre de ter o arquivo `.env` na pasta `inventory-backend`.
#### CONFIGURAÇÕES DO FRONTEND
1. Navegue até o diretório:
```
cd inventory-frontend
````
2. Execulte os comandos:
```
docker build -t inventory-frontend:latest .
docker run -p 4200:4200 inventory-frontend:latest
```
#### CONFIGURAÇÕES DO DOCKER-COMPOSE
1. Navegue até a raiz do repositório e crie um arquivo `.env`:
```
DB_HOST=host.docker.internal
DB_PORT=3306
DB_USERNAME=root
DB_PASSWORD=senha
DB_DATABASE=nome-do-db
````
2. Execulte o comando:
```
docker-compose up
```
Pronto! Agora ambas as aplicações estão sendo executadas.
## ✒️ Autora
Laís Rodrigues Macedo
📧 laisrodriguesmacedo@gmail.com
WhatsApp: (+49) 174 7781517