Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Agrega codigo necesario por mongoDB setup y spawn en Windows #1353

Merged
merged 55 commits into from
May 17, 2023
Merged
Show file tree
Hide file tree
Changes from 48 commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
6e28b43
trabajo necesario por mongoDB setup y spawn en Windows
unjust Apr 3, 2023
8c8ca07
Merge branch 'Laboratoria:main' into bq_api_mongodb_e2e_1293
unjust Apr 12, 2023
cc5b37b
cambios a README
unjust Apr 20, 2023
3eeac05
ideas para adiciones GETTING_STARTED
unjust Apr 20, 2023
772d3da
comentando config y e2e tests mejor
unjust Apr 20, 2023
6b1b691
Merge branch 'bq_api_mongodb_e2e_1293' of github.com:unjust/bootcamp …
unjust Apr 20, 2023
1458f91
Merge branch 'main' of github.com:Laboratoria/bootcamp into bq_api_mo…
unjust Apr 20, 2023
801a18c
mdlint fixes
unjust Apr 20, 2023
1eeef56
separating docker and mongo guides
unjust Apr 21, 2023
683640e
remove mongo deps from package.json
unjust Apr 21, 2023
f354113
clean mongoDB references de proyecto
unjust Apr 21, 2023
c63ac2c
patch for Mongo
unjust Apr 21, 2023
9da33ec
Update projects/04-burger-queen-api/README.md
Apr 21, 2023
945b216
cambios al readme y guia
unjust Apr 21, 2023
12e048a
Merge branch 'bq_api_mongodb_e2e_1293' of github.com:unjust/bootcamp …
unjust Apr 21, 2023
abe4552
mdlint fixes
unjust Apr 21, 2023
c728593
readd jsonwebtoken dep
unjust Apr 21, 2023
98c0bcb
remove ws from patch
unjust Apr 21, 2023
c6b01ab
patch in the wrong place
unjust Apr 21, 2023
065010d
patch mongoDB created from project not from bootcamp
unjust Apr 21, 2023
8136213
actualizar table of contents
unjust Apr 21, 2023
f8aa6d3
Merge branch 'main' into bq_api_mongodb_e2e_1293
May 2, 2023
dc6a2a8
update guia and remove mongoose refs
unjust May 5, 2023
d55f2d3
Merge branch 'bq_api_mongodb_e2e_1293' of github.com:unjust/bootcamp …
unjust May 5, 2023
54dd2f4
minor corrections
unjust May 5, 2023
13ee973
rehacer el patch
unjust May 5, 2023
0d44482
corrections
unjust May 5, 2023
c9b0fd1
remove redundant checklist, node driver resource
unjust May 8, 2023
cd0bde9
Update TODO projects/04-burger-queen-api/controller/users.js
May 8, 2023
0832013
mas detalle en TODO comentarios
unjust May 8, 2023
c3308fa
quitar mysql postgres de readme inicial, hacker edition docker
unjust May 8, 2023
7fa2193
apply and remove patch for e2e tests
unjust May 8, 2023
59943a4
Merge branch 'bq_api_mongodb_e2e_1293' of github.com:unjust/bootcamp …
unjust May 8, 2023
bf4c67c
linter and section for hacker edition
unjust May 8, 2023
fce3433
Apply grammar and spelling suggestions from code review
May 9, 2023
e9fd40b
remove MySQL and add code link for snippet
unjust May 9, 2023
1b9d260
mas correciones de spelling, con uso de extension
unjust May 9, 2023
b3e99e3
Update auth.js
May 9, 2023
692b210
Apply suggestions from code review
May 10, 2023
c2512d8
update pt README
unjust May 10, 2023
07487b4
translations in pt, editions of docker readme
unjust May 10, 2023
63c38bf
Merge branch 'bq_api_mongodb_e2e_1293' of github.com:unjust/bootcamp …
unjust May 10, 2023
3c6997b
Merge branch 'main' into bq_api_mongodb_e2e_1293
May 10, 2023
298d952
borra parte 1 de docker, es redundante
unjust May 10, 2023
8f7116c
Merge branch 'bq_api_mongodb_e2e_1293' of github.com:unjust/bootcamp …
unjust May 10, 2023
44a0c78
mdlint fixes
unjust May 11, 2023
6ede552
cambios de connect y TODOs
unjust May 16, 2023
2e9010e
agregamos status de resp en globalSetup errors
unjust May 16, 2023
2795911
Update projects/04-burger-queen-api/guides/GETTING-STARTED-MONGODB.md
May 16, 2023
002d441
Apply suggestions from code review
May 16, 2023
cdf2202
espanol no pt, error response
unjust May 16, 2023
4266076
Merge branch 'bq_api_mongodb_e2e_1293' of github.com:unjust/bootcamp …
unjust May 16, 2023
ecff913
Merge branch 'main' into bq_api_mongodb_e2e_1293
May 17, 2023
a6a78da
Update README.md guides url
unjust May 17, 2023
e5cb2f8
Update README.pt.md url guides y texto duplicado
unjust May 17, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
132 changes: 47 additions & 85 deletions projects/04-burger-queen-api/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
* [3. Objetivos de aprendizaje](#3-objetivos-de-aprendizaje)
* [4. Consideraciones generales](#4-consideraciones-generales)
* [5. Criterios de aceptación mínimos del proyecto](#5-criterios-de-aceptaci%C3%B3n-m%C3%ADnimos-del-proyecto)
* [6. Pistas, tips y lecturas complementarias](#6-pistas-tips-y-lecturas-complementarias)
* [7 HTTP API Checklist](#7-http-api-checklist)
* [6. Hacker (Devops) Edition con Docker](#6-hacker-%28devops%29-edition-con-docker)
* [7. Pistas, tips y lecturas complementarias](#6-pistas-tips-y-lecturas-complementarias)

## 1. Preámbulo

Expand Down Expand Up @@ -44,8 +44,8 @@ _endpoints_ (puntos de conexión o URLs) y nos piden completar la aplicación.
Esto implica que tendremos que partir por leer la implementación existente, y
familiarizarnos con el _stack_ elegido ([Node.js](https://nodejs.org/) y
[Express](https://expressjs.com/)) y complementarlo con un motor de bases de
datos, el cual tu deberás elegir entre [MongoDB](https://www.mongodb.com/),
[PostgreSQL](https://www.postgresql.org/) y [MySQL](https://www.mysql.com/).
datos. Recomendamos el uso de [MongoDB](https://www.mongodb.com/) y tenemos una
[guía para empezar con MongoDB](./GETTING-STARTED-MONGO-DB.md).

La clienta nos ha dado un [link a la documentación](https://app.swaggerhub.com/apis-docs/ssinuco/BurgerQueenAPI/2.0.0)
que especifica el comportamiento esperado de la API que expondremos por
Expand All @@ -55,21 +55,20 @@ implementar la aplicación, qué parámetros esperan, qué deben responder, etc.
El objetivo principal de aprendizaje es adquirir experiencia con **Node.js**
como herramienta para desarrollar _aplicaciones de servidor_, junto con una
serie de herramientas comunes usadas en este tipo de contexto (Express como
framework, MongoDB, PostgreSQL o MySQL como base datos, contenedores de docker,
etc).
framework, MongoDB como base datos, etc).

En este proyecto tendrás que construir un servidor web que debe _servir_ `JSON`
sobre `HTTP`, y desplegarlo en un servidor en la nube.

Para completar el proyecto tendrás que familiarizarte con conceptos como
**rutas** (_routes_), **URLs**, **HTTP** y **REST** (verbs, request, response,
headers, body, status codes...), **JSON**, **JWT** (_JSON Web Tokens_),
**conexión con una base datos** (`MongoDB`, `PostgreSQL`, o `MySQL`),
**variables de entorno**, **deployment**, **contenedores de `docker`**, etc.
**conexión con una base datos** (`MongoDB`),
**variables de entorno**, **deployment**, etc.

## 3. Objetivos de aprendizaje

> ℹ️ Esta sección será auomáticamente generada en el idioma pertinente, a partir
> ℹ️ Esta sección será automáticamente generada en el idioma pertinente, a partir
> de los objetivos de aprendizaje declarados en [`project.yml`](./project.yml),
> al crear el repo del proyecto para un cohort en particular usando
> [`./scripts/create-cohort-project.js`](../../scripts#create-cohort-project-coaches).
Expand Down Expand Up @@ -182,10 +181,10 @@ npm start 8888

Nuestra aplicación usa las siguientes variables de entorno:

* `PORT`: Si no se ha especificado un puerto como argumento de lína de comando,
* `PORT`: Si no se ha especificado un puerto como argumento de línea de comando,
podemos usar la variable de entorno `PORT` para especificar el puerto. Valor
por defecto `8080`.
* `DB_URL`: El _string_ de conexión de _MongoDB_ o _MySQL_. Cuando ejecutemos la
* `DB_URL`: El _string_ de conexión de _MongoDB_. Cuando ejecutemos la
aplicación en nuestra computadora (en entorno de desarrollo), podemos usar el
una base de datos local, pero en producción deberemos utilizar las instancias
configuradas con `docker-compose` (mas sobre esto en la siguiente sección de
Expand All @@ -204,107 +203,70 @@ Nuestra aplicación usa las siguientes variables de entorno:

### 5.3 Despliegue (Deployment)

Puedes elegir el proveedor (o proveedores) que prefieras junto
con el mecanismo de despliegue y estrategia de alojamiento. Te recomendamos
explorar las siguientes opciones:

* [Vercel](https://vercel.com/) es una opción enfocada
a aplicaciones web estáticas (como las que se construyen con React). Sin embargo,
Vercel también nos permite desplegar aplicaciones node usando [Serverless
Functions](https://vercel.com/docs/serverless-functions/introduction).
* [MongoDB Atlas](https://www.mongodb.com/cloud/atlas)
es una muy buena opción para alojar nuestra base datos de producción, la cuál
podemos usar en conjunción con cualquiera de las opciones mencionadas arriba.

Si tienes dudas sobre las diferentes (y múltiples) opciones de despliegue no
dudes en consultar con tus pares y tus coaches.

### 6. Hacker (Devops) Edition con Docker

Nuestra clienta nos ha manifestado que su equipo de _devops_ está siempre con
muchas tareas, por por lo que nos pide como requerimiento que la aplicación esté
muchas tareas, por lo que nos pide como requerimiento que la aplicación esté
configurada con `docker-compose` para que pueda ser desplegada sin dificultades
en cualquier entorno.

El _boilerplate_ ya cuenta con una configuración incial de `docker-compose` para
la aplicación de node, tu tarea será extender esa configuración para incluir la
configuración de base de datos que hayas elegido. Ten en cuenta que como vas a
tener dos servidores corriendo sobre una misma configuración, deberás exponer
El _boilerplate_ ya cuenta con una configuración inicial de `docker-compose` para
la aplicación de node, tu tarea será extender esa configuración para incluir
la configuración de base de datos. Ten en cuenta que como vas a tener dos
servidores corriendo sobre una misma configuración, deberás exponer
los servicios en diferentes puertos.

Para este proyecto te recomendamos usar `docker-compose` localmente (en tu
computadora) para ejecutar la aplicación junto con la base de datos
seleccionada. Por otro lado, con respecto al despliegue, no es obligatorio usar
`docker-compose`, puedes elegir el proveedor (o proveedores) que prefieras junto
con el mecanismo de despligue y estrategia de alojamiento. Te recomendamos
explorar las siguientes opciones:
Lee la [**guía para docker**] (./GETTING-STARTED-DOCKER.md)
incluido en el proyecto para mas información.

Para probar tu configuración de docker, te recomendamos usar `docker-compose`
localmente (en tu computadora) para ejecutar la aplicación junto
con la base de datos.

Con respecto al despliegue, puedes elegir el proveedor (o proveedores)
que prefieras junto con el mecanismo de despliegue y estrategia de alojamiento.
Te recomendamos explorar las siguientes opciones:

* [Glitch](https://glitch.com) es
probablemente la opción más _sencilla_ (la que requiere menos configuración) y
nos permite alojar el servidor web Express
importando nuestro repositorio desde GitHub.
* [Vercel](https://vercel.com/) es una opción similar a Glitch, pero enfocada
a aplicaciones web estáticas (como las que se construyen con React). Sin embargo,
Vercel también nos permite desplegar aplicaciones node usando [Serverless
Functions](https://vercel.com/docs/serverless-functions/introduction).
* Si quieres explorar opciones más personalizadas y ver docker del lado del
servidor puedes cosiderar proveedores como
servidor puedes considerar proveedores como
[AWS (Amazon Web Services)](https://aws.amazon.com/) o
[GCP (Google Cloud Platform)](https://cloud.google.com/), ambos tienen algún
tipo de _free tier_ así como tanto _instancias_ de _servidores virtuales_
(VPS) donde configurar nuestro propio Docker o servicios para desplegar
aplicaciones en contenedores (por ejemplo [Compute Engine](https://cloud.google.com/compute/docs/containers)
de GCP o [Elastic Container Service](https://aws.amazon.com/ecs/) de AWS).
* Si quieres trabajar con MongoDB, [MongoDB Atlas](https://www.mongodb.com/cloud/atlas)
es una muy buena opción para alojar nuestra base datos de producción, la cuál
podemos usar en conjunción con cualquiera de las opciones mencionadas arriba.
* Si quieres trabajar con PostgreSql, [ElephantSQL](https://www.elephantsql.com/plans.html)
es una muy buena opción para alojar nuestra base datos de producción, la cuál
podemos usar en conjunción con cualquiera de las opciones mencionadas arriba.
* Si quieres trabajar con MySQL, [ClearDB](https://www.cleardb.com/) es una
muy buena opción para alojar nuestra base datos de producción, la cuál podemos
usar en conjunción con cualquiera de las opciones mencionadas arriba.

Si tienes dudas sobre las diferentes (y múltiples) opciones de despliegue no
dudes en consultar con tus pares y tus coaches.

## 6. Pistas, tips y lecturas complementarias
## 7. Pistas, tips y lecturas complementarias

### Primeros pasos

> :information_source: Antes de comenzar a programar te recomendamos leer y
> seguir con detenimiento la [**guía de _primeros pasos_**](./GETTING-STARTED.md)
> para ayudarte a elegir tu stack (base de datos, módulo para conectar a la base
> de datos desde Node.js, etc) y configurar tu entorno de desarrollo.
> seguir con detenimiento la [**guía de _primeros pasos_**](./GETTING-STARTED-MONGODB.md)
> para ayudarte con el stack recomendado y configurar tu entorno de desarrollo.

### Otros recursos

* [Express](https://expressjs.com/)
* [MongoDB](https://www.mongodb.com/)
* [PostgreSQL](https://www.postgresql.org/)
* [MySQL](https://www.mysql.com/)
* [MongoDB Node Driver](https://www.mongodb.com/docs/drivers/node/current/)
* [docker](https://docs.docker.com/)
* [docker compose](https://docs.docker.com/compose/)
* [¿Qué es Docker? | Curso de Docker | Platzi Cursos](https://youtu.be/hQgvt-s-AHQ)
* [Postman](https://www.getpostman.com)
* [Variable de entorno - Wikipedia](https://es.wikipedia.org/wiki/Variable_de_entorno)
* [`process.env` - Node.js docs](https://nodejs.org/api/process.html#process_process_env)

---

## 7 HTTP API Checklist

### 7.1 `/`

* [ ] `GET /`

### 7.2 `/auth`

* [ ] `POST /auth`

### 7.3 `/users`

* [ ] `GET /users`
* [ ] `GET /users/:uid`
* [ ] `POST /users`
* [ ] `PATCH /users/:uid`
* [ ] `DELETE /users/:uid`

### 7.4 `/products`

* [ ] `GET /products`
* [ ] `GET /products/:productid`
* [ ] `POST /products`
* [ ] `PATCH /products/:productid`
* [ ] `DELETE /products/:productid`

### 7.5 `/orders`

* [ ] `GET /orders`
* [ ] `GET /orders/:orderId`
* [ ] `POST /orders`
* [ ] `PATCH /orders/:orderId`
* [ ] `DELETE /orders/:orderId`
142 changes: 60 additions & 82 deletions projects/04-burger-queen-api/README.pt.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
* [3. Objetivos de aprendizagem](#3-objetivos-de-aprendizagem)
* [4. Considerações gerais](#4-considerações-gerais)
* [5. Critérios de aceitação mínimos do projeto](#5-critérios-de-aceitação-mínimos-do-projeto)
* [6. Pistas, tips e leituras complementares](#6-pistas-tips-e-leituras-complementares)
* [7 HTTP API Checklist](#7-http-api-checklist)
* [6. Hacker (Devops) Edition con Docker](#6-edição-hacker-devops-com-docker)
* [7. Pistas, tips e leituras complementares](#7-pistas-tips-e-leituras-complementares)

## 1. Prefácio

Expand Down Expand Up @@ -41,10 +41,13 @@ de maneira relativamente simples, tudo isso usando JavaScript!

Neste projeto partimos de um _boilerplate_ que já contém uma série de
_endpoints_ (pontos de conexão ou URLs) e nos pedem para completar a aplicação.
Isto implica que teremos que começar a ler a implementação existente, e
familiarizar-nos com a _stack_ escolhida ([Node.js](https://nodejs.org/) e
[Express](https://expressjs.com/)) e complementá-la com um motor de banco de dados,
no qual você deverá escolher entre [MongoDB](https://www.mongodb.com/),
Isso implica que teremos que começar lendo a implementação existente e nos
familiarizar com o _stack_ escolhido ([Node.js](https://nodejs.org/) e
[Express](https://expressjs.com/)), além de complementá-lo com um motor de
banco de dados. Recomendamos o uso do [MongoDB](https://www.mongodb.com/)
e temos [um guia para começar com o MongoDB.](./GETTING-STARTED-MONGO-DB.pt.md)

[MongoDB](https://www.mongodb.com/),
[PostgreSQL](https://www.postgresql.org/) e [MySQL](https://www.mysql.com/).

O cliente nos deu um
Expand All @@ -56,17 +59,16 @@ implementar na aplicação, que parâmetros esperam, o que devem responder, etc.

O objetivo de aprendizagem principal é adquirir experiência com o **Node.js**
como ferramenta para desenvolvimento de _aplicações de servidor_, junto com uma série
de outras ferramentas comumente utilizadas nesse contexto (Express como framework,
MongoDB, PostgreSQL ou MySQL como base de dados, containers de docker, etc).
de outras ferramentas comumente utilizadas nesse contexto (Express como
framework, MongoDB como base de dados, etc.).

Neste projeto, você desenvolverá um servidor web que deverá _servir_ `JSON`
através de uma conexão `HTTP`, e implantá-lo em um servidor na nuvem.

Ao final do projeto, você deverá estar familiarizada com conceitos como **rotas**
(_routes_), **URLs**, **HTTP** (verbos, request, response, headers, body, status
codes, etc), **JSON**, **JWT** (_JSON Web Tokens_), **conexão com uma base de dados**
(`MongoDB`, `PostgreSQL` ou `MySQL`), **variables de ambiente**, **deployment**,
**containers de `docker`**, etc.
(`MongoDB`), **variables de ambiente**, **deployment**, etc.

## 3. Objetivos de aprendizagem

Expand Down Expand Up @@ -205,31 +207,53 @@ Nossa aplicação usa as seguintes variáveis de ambiente:

### 5.3 Implantação (Deployment)

Nosso cliente nos informou que a sua equipe de _devops_ está sempre com muitas
tarefas, portanto, pediu como requesito que a aplicação esteja configurada
com `docker-compose` para que possa ser implantada sem dificuldades em qualquer
ambiente.

O _boilerplate_ já conta com uma configuração incial de `docker-compose` para
a aplicação de node, sua tarefa será estender essa configuração para incluir a
configuração do banco de dados escolhido.
Leve em consideração que como terá dois servidores rodando sobre uma mesma
configuração, deverá colocar os serviços em diferentes portas.

Para este projeto te recomendamos a usar `docker-compose` localmente (em seu
computador) para executar a aplicação junto com a base de dados
selecionada. Por outro lado, em relação a implantação, não é obrigatório usar
`docker-compose`, você pode escolher o provedor (ou provedores) que preferir junto
com o mecanismo de implantação e estratégia de hospedagem. Te recomendamos
explorar as seguintes opcões:

* [Glitch](https://glitch.com) é provavelmente a opção mais _simples_
(requer menos configuração) e nos permite hospedar o servidor web Express
importando nosso repositório do GitHub.
* [Vercel](https://vercel.com/) é uma opção semelhante ao Glitch, mas
focada em aplicativos web estáticos (como os construídos com React).
No entanto, o Vercel também nos permite implantar aplicativos node usando
Você pode escolher o provedor (ou provedores) que preferir,
juntamente com o mecanismo de implantação e estratégia de hospedagem.
Recomendamos que você explore as seguintes opções:

Vercel é uma opção focada em aplicativos da web estáticos
(como os construídos com React). No entanto, o Vercel também nos permite
implantar aplicativos node usando Serverless Functions.
MongoDB Atlas é uma ótima opção para hospedar nosso banco de dados de produção,
que pode ser usado em conjunto com qualquer uma das opções mencionadas acima.
Se você tiver dúvidas sobre as diferentes opções de implantação
(que são várias), não hesite em consultar seus colegas e seus coaches.

* [Vercel](https://vercel.com/) é uma opção focada em aplicativos
da web estáticos (como os construídos com React). No entanto,
o Vercel também nos permite implantar aplicativos node usando
[Serverless Functions](https://vercel.com/docs/serverless-functions/introduction)
[MongoDB Atlas](https://www.mongodb.com/cloud/atlas)
é uma ótima opção para hospedar nosso banco de dados de produção,
que pode ser usado em conjunto com qualquer uma das opções mencionadas acima.

Se tiver dúvidas sobre as diferentes opções de implantação (que são várias),
não hesite em consultar seus colegas e seus coaches.

## 6. Edição Hacker (DevOps) com Docker

Nossa cliente nos informou que sua equipe de DevOps está sempre
ocupada com muitas tarefas, portanto, ela nos pede como requisito que
o aplicativo seja configurado com `docker-compose` para que possa ser
implantado facilmente em qualquer ambiente.

O boilerplate já possui uma configuração inicial de `docker-compose`
para o aplicativo Node.js, sua tarefa será estender essa configuração para
incluir a configuração do banco de dados. Tenha em mente que,
como você terá dois servidores sendo executados na mesma configuração,
você precisará expor os serviços em portas diferentes.

Leia o [guia para docker](./GETTING-STARTED-DOCKER.pt.md) incluído
no projeto para mais informações.

Para testar sua configuração do Docker, recomendamos que você use o
`docker-compose` localmente (em seu computador) para executar o
aplicativo junto com o banco de dados.

Quanto à implantação, você pode escolher o provedor (ou provedores)
que preferir, juntamente com o mecanismo de implantação e estratégia
de hospedagem. Recomendamos que você explore as seguintes opções:

* Se quiser explorar opções mais personalizadas e ver o docker do lado do
servidor, pode considerar provedores como
[AWS (Amazon Web Services)](https://aws.amazon.com/) ou
Expand All @@ -238,60 +262,14 @@ de serviço experimental gratuito (_free tier_) assim como instâncias de servid
virtuais (VPS), onde configuramos nosso próprio Docker ou serviços para implantar
aplicações em contêineres (por exemplo [Compute Engine](https://cloud.google.com/compute/docs/containers)
de GCP ou [Elastic Container Service](https://aws.amazon.com/ecs/) de AWS).
* Se quiser trabalhar com MongoDB, [MongoDB Atlas](https://www.mongodb.com/cloud/atlas)
é uma opção muito boa para hospedar a base dados de produção, que
podemos usar em conjunto com qualquer uma das opções mencionadas acima.
* Se quiser trabalhar com MySQL, [ClearDB](https://www.cleardb.com/) é uma
boa opção para hospedar a base de dados de produção, que podemos usar em
conjunto com qualquer uma das opções mencionadas acima.

Se tiver dúvidas sobre as diferentes (e múltiplas) opções de implantação,
não hesite em consultar seus colegas e mentores.

## 6. Pistas, tips e leituras complementares
## 7. Pistas, tips e leituras complementares

* [Express](https://expressjs.com/)
* [MongoDB](https://www.mongodb.com/)
* [PostgreSQL](https://www.postgresql.org/)
* [MySQL](https://www.mysql.com/)
* [MongoDB Node Driver](https://www.mongodb.com/docs/drivers/node/current/)
* [docker](https://docs.docker.com/)
* [docker compose](https://docs.docker.com/compose/)
* [Postman](https://www.getpostman.com)
* [Variável de ambiente - Wikipedia](https://pt.wikipedia.org/wiki/Variável_de_ambiente)
* [`process.env` - Node.js docs](https://nodejs.org/api/process.html#process_process_env)

***

## 7 HTTP API Checklist

### 7.1 `/`

* [ ] `GET /`

### 7.2 `/auth`

* [ ] `POST /auth`

### 7.3 `/users`

* [ ] `GET /users`
* [ ] `GET /users/:uid`
* [ ] `POST /users`
* [ ] `PATCH /users/:uid`
* [ ] `DELETE /users/:uid`

### 7.4 `/products`

* [ ] `GET /products`
* [ ] `GET /products/:productid`
* [ ] `POST /products`
* [ ] `PATCH /products/:productid`
* [ ] `DELETE /products/:productid`

### 7.5 `/orders`

* [ ] `GET /orders`
* [ ] `GET /orders/:orderId`
* [ ] `POST /orders`
* [ ] `PATCH /orders/:orderId`
* [ ] `DELETE /orders/:orderId`
Loading