- Apresentação
- Resumo do Projeto
- Endpoints da API Divino Burger
- Estrutura do Banco de Dados
- Tecnologias Utilizadas
- Estrutura dos Principais Arquivos
- Sobre a Desenvolvedora
Um pequeno restaurante de hambúrgueres, em crescimento, necessitava de um sistema para realizar pedidos usando um tablet, e que os enviem à cozinha para que sejam preparados de forma ordenada e eficiente.
A interface front-end da aplicação Divino Burger já foi criada, acesse aqui para conhecer.
E agora foi criado o back-end para manejar os dados dessa aplicação. Feito através de uma API rest que é compatível com as requisições vindas do front. Aqui você consegue acessar API.
Como back-end, nesse caso nos referimos a um servidor web, que é basicamente um programa que ouve o que acontece na aplicação através de uma porta de rede, pela qual podemos enviar requisições (requests) e obter respostas (responses). Um servidor web deve manejar as requisições que chegam e devolver respostas a elas, que serão enviadas de volta ao cliente. Quando falamos de aplicações de servidor, isso implica uma arquitetura de cliente/servidor, onde o cliente é um programa que faz requisições através de uma rede (por exemplo o navegador, o cURL, etc) e o servidor é o programa que recebe essas requisições e as responde.
Você pode utilizar esse exemplo do login para ter acesso a um token de autenticação:
# | Login |
---|---|
🆔 | [email protected] |
🔑 | 123456 |
POST /auth
GET /users
GET /users/:user_id
POST /users
PUT /users/:user_id
DELETE /users/:user_id
GET /products
GET /products/:product_id
POST /products
PUT /products/:product_id
DELETE /products/:product_id
GET /orders
GET /orders/:order_id
POST /orders
PUT /orders/:order_id
DELETE /orders/:order_id
Para este sistema foram criados três modelos básicos de usuários (Users), produtos (Products) e pedidos (Orders). No entanto, como a tabela de produtos e a tabela de pedidos têm uma relação muitos-para-muitos, foi necessária a criação de uma quarta tabela, ProductsOrders, para que possamos listar todos os produtos que foram escolhidos para um pedido.
Ferramenta | Descrição |
---|---|
Node.js |
Software de execução de códigos JavaScript |
Express |
Framework para Node.js que fornece recursos mínimos para construção de servidores web |
Sequelize |
Sequelize é um ORM(Object-Relational Mapper) para Node.js baseado em promise, utilizado para bancos de dados, como Postgres, entre outros |
PostgreSQL |
Sistema gerenciador de banco de dados objeto relacional (SGBD), desenvolvido como projeto de código aberto |
Heroku |
Plataforma de serviço (PaaS) que permite a contrução, execução e operação de aplicativos inteiramente na nuvem |
Dbeaver |
Aplicativo de software cliente SQL e uma ferramenta de administração de banco de dados |
Postman |
API Client que facilita a criação, compartilhamento, testes e documentação de APIs |
Swagger |
Linguagem de descrição de interface para descrever APIs RESTful expressas usando JSON |
Git e GitHub |
Sistemas de controle de versões distribuídos |
.
├── 📁images
|
├── 📁server
| ├── 📁controller
| | ├── 📄authController.js
| | ├── 📄ordersController.js
| | ├── 📄productsController.js
| | └── 📄usersController.js
| |
| ├── 📁db
| | ├── 📁config
| | ├── 📁migrations
| | ├── 📁models
| | | ├── 📄index.js
| | | ├── 📄orders.js
| | | ├── 📄products.js
| | | ├── 📄productsorders.js
| | | └── 📄users.js
| | ├── 📁seeders
| | └── 📄sequelize.js
| |
| └── 📁routes
| ├── 📄authRouter.js
| ├── 📄index.js
| ├── 📄ordersRouter.js
| ├── 📄productsRouter.js
| └── 📄usersRouter.js
|
├── 📄.env
├── 📄index.js
├── 📄Procfile
├── 📄package.json
└── 📄README.md
- E-mail: [email protected]