Skip to content

Waiter é um sistema de atendimento delivery proposto como desafio pessoal para aperfeiçoar conceitos relacionados ao Desenvolvimento Mobile 💚

Notifications You must be signed in to change notification settings

jp-prud/WaiterApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

logo

WaiterApp

Um app de delivery alternativo Open-Source
Desenvolvido com React Native e Expo.

Banner

Anteriormente a pandemia, os aplicativos de delivery já demonstravam um características que poderia alterar o comportamento do consumidor: a flexíbilidade de solicitar comida para os restaurantes gerou um movimento ainda maior e cada vez mais frequentes de deliverys. E isso provocou um novo perfil de consumo para o segmento gastronômico, especialmente para os estabelecimentos físicos.

A principal visão acerca de aplicações de delivery entorno do mercado de software é bem vasta, visto que possue inúmeros aplicativos que tem como objetivo auxiliar, de alguma forma, a compra de produtos alimentíceos.

Contudo, para estar investindo em plataformas de delivery, é necessário que o dono do estabelecimento possua um "capital de giro" considerável, para não sofrer prejuízos, pois, em alguns aplicativos que criaram um grande monopólio no setor, como o "Ifood" e o "Rappi", possuem taxas de utilização que podem variar em até 25% do preço do produto (Abrasel - 2022).

Conclui-se que a necessidade da criação de um sistema que integre o consumidor-final com o restaurante é de alta valia, já que permitirá que o consumidor esteja solicitando um produto rapidamente.

A partir disto, a fomentação de outras soluções para aplicativos de delivery tornou-se cada vez maior. A resoluçãp de tal problemática é apresentada através do desenvolvimento do aplicativo "WaiterApp”, cujo objetivo principal é facilitar a integração entre o consumidor final, que terá a possibilidade de estar solicitando o seu produto através da plataforma "Mobile" e, em tempo real, as informações que dizem respeito ao pedido serem visualizadas dentro do sistema interno do restaurante, tal sistema será uma aplicação "WEB".

Dentre as O sistema irá possuir diversas funcionalidades, dentre elas a possibilidade do cliente final estar realizando a compra de comida a partir do App Mobile, a visualização do histórico de pedios e a integração em tempo real dos pedidos dentro do Dashboard do Restaurante.

Tecnologias Utilizadas

Mobile: React, React Native, Typescript, Expo, Styled-Components

Client: React, Vite, Styled-Components, Web-Sockets.

Server: Node, Express.

Database: PostgreSQL.

Funcionalidades

  • Solicitação de Pedidos
  • CRUD de Produtos
  • Cross platform

API Reference

Categorias

Listar categorias

  GET /categories

Criar categoria

  POST /categories
Parameter Type Description
icon string Obrigatório. Ícone para a categoria
name string Obrigatório. Nome para a categoria

Excluir categoria

  DELETE /categories/:categoryId
Parameter Type Description
id string Obrigatório. Id para encontrar o item

Produtos

Listar produtos

  GET /products

Criar produto

  POST /products
Parameter Type Description
imagePath string Obrigatório. Arquivo de imagem
name string Obrigatório. Nome do Produto
description string Obrigatório. Descrição do Produto
price string Obrigatório. Preço do Produto
category string Obrigatório. Id da Categoria para o Produto
ingredients string Obrigatório. Ingredientes do Produto

Obter produto por categoria

  GET /categories/:categoryId/products
Parameter Type Description
id string Obrigatório. Id da Categoria para encontrar o item

Deletar produto

  DELETE /products/:productId
Parameter Type Description
id string Obrigatório. Id do item

Pedidos

Listar pedidos

  GET /orders

Criar pedido

  POST /orders
Parameter Type Description
table number Obrigatório. Número da mesa ou pedido
products string Obrigatório. ID e quantidade do produto

Alterar status do pedido

  PATCH /orders/:orderId'
Parameter Type Description
orderId number Obrigatório. ID do pedido
status enum Obrigatório. Status do Pedido - 'WAITING', 'IN_PRODUCTION', 'DONE

Deletar ou Alterar Status do Pedido

  DELETE /orders/:orderId
Parameter Type Description
id string Obrigatório. Id do pedido

Rodando localmente

Clone o projeto

  git clone https://github.com/jp-prud/Waiter-App-Relacional

Entre no diretório do projeto

  cd waiter-app-relacional

Acesse o diretório do back-end do projeto

 cd back-end

Baixe o Docker e instale através deste link

https://docs.docker.com/desktop/install/windows-install/

Instale e Rode os schemas do BD - Schema dentro do repositório

docker run --name pg -e POSTGRES_USER=root -e POSTGRES_PASSWORD=root -p 5432:5432 -d postgres

Após estes comandos, siga o processo abaixo para criar o Banco de Dados

docker exec -it pg bash

psql -U root root

CREATE DATABASE waiterapp;

Rode as criações de tabela presente dentro do arquivo de Schema.sql prasente dentro da pasta chamada database.

Instale as dependências e inicie o projeto.

  yarn start

Para rodar o Mobile, acesse a pasta "App" a partir do diretório raiz do projeto

 cd app

Após isto, faça o download do aplicativo do Expo através da loja de aplicativos e rode o comando abaixo e aponte seu dispositivo para o QrCode gerado.

 yarn expo

Autores

About

Waiter é um sistema de atendimento delivery proposto como desafio pessoal para aperfeiçoar conceitos relacionados ao Desenvolvimento Mobile 💚

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published