https://github.com/flplima/bossabox-vuttr-fullstack
Desafio feito para Bossabox
https://github.com/flplima/bossabox-vuttr-fullstack
bossabox docker docker-compose framer-motion nestjs nodejs postgresql react reactjs styled-components typeorm typescript vuttr
Last synced: about 1 month ago
JSON representation
Desafio feito para Bossabox
- Host: GitHub
- URL: https://github.com/flplima/bossabox-vuttr-fullstack
- Owner: flplima
- Created: 2020-08-29T17:50:50.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-09-12T22:47:51.000Z (almost 6 years ago)
- Last Synced: 2023-10-19T23:22:56.654Z (over 2 years ago)
- Topics: bossabox, docker, docker-compose, framer-motion, nestjs, nodejs, postgresql, react, reactjs, styled-components, typeorm, typescript, vuttr
- Language: TypeScript
- Homepage: https://vuttr-bossabox.felipelima.xyz/
- Size: 3.06 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# VUTTR
VUTTR (Very Useful Tools to Remember) é um simples repositório para gerenciar ferramentas com seus respectivos nomes, links, descrições e tags.
**Este projeto é um desafio feito para a BossaBox.**

## Table of Contents
- [Como acessar](#como-acessar)
- [Instruções para executar localmente](#instruções-para-executar-localmente)
- [Este repositório contém](#este-repositório-contém)
- [Front-end](#front-end)
- [Back-end](#back-end)
- [Testes](#testes)
- [ORM](#orm)
- [Autor](#autor)
## Como acessar
Este projeto está publicado em ambiente de produção na AWS e você pode acessá-lo pelo link abaixo:
https://vuttr-bossabox.felipelima.xyz/
## Instruções para executar localmente
Este repositório é um **monorepo** contendo o **Back-end** e o **Front-end** do VUTTR, tudo conteinerizado no Docker, inclusive o banco de dados.
Para executá-lo localmente tudo o que você precisa fazer é clonar este repositório, instalar as dependências com o yarn e iniciar o ambiente com o Docker Compose. Basta executar os comandos abaixo:
```bash
git clone https://github.com/flplima/bossabox-vuttr-fullstack
cd bossabox-vuttr-fullstack
yarn install
docker-compose up
```
Ao executar o `docker-compose up`, automaticamente serão montados um container para o banco de dados Postgres, um container para o Back-end (NestJS) e um para o front-end (React). A criação do banco de dados e as migrações serão executadas automaticamente também.
O Back-end estará na porta 3000, o Front-end na porta 3001 e o banco de dados na porta 5432.
Depois do ambiente ser iniciado, acesse um dos endereços abaixo no seu navegador:
Front-end (React): http://localhost:3001/
Back-end (API docs): http://localhost:3000/
## Este repositório contém
### Front-end
- **React + Typescript**
- **UseSWR** e **Axios** para comunicação com a API REST
- **Styled Components** para estilização, de acordo com os wireframes e style guide da BossaBox
- **Redux** para gerenciamento de estado global
- **React Hook Form** para os formulários
- **Framer Motion** para animações
### Back-end
- **NestJs + Typescript**
- **TypeORM + PostgreSQL** para persistência dos dados
- **JWT** para tokens de autenticação
- **Jest + Supertest** para testes automatizados
- **Swagger (OpenAPI)** para documentação da API
- **Sentry** para monitoramento de erros
## Testes
No diretório **server** você pode executar os testes automatizados com os comandos abaixo:
```bash
# entre no diretório server
cd server
# executa os testes unitários para cada service
yarn test
# executa os testes e2e para cada rota, com mock dos services
yarn test:e2e
```
## ORM
No diretório **server** você pode usar a [CLI do TypeORM](https://github.com/typeorm/typeorm/blob/master/docs/using-cli.md) para manutenção do banco de dados. Antes, é necessário que você tenha iniciado o ambiente com o docker-compose para que a CLI possa identificar o banco de dados corretamente.
```bash
# entre no diretório server
cd server
# (exemplo) gerando uma nova migration
yarn typeorm migration:generate -n MyMigration
```
## Autor
Meu nome é **Felipe Lima** e você pode entrar em contato comigo pelo meu [LinkedIn](https://www.linkedin.com/in/felipelimadasilva/).