https://github.com/mathrb22/dsdeliver-sds2
Projeto desenvolvido durante a Semana DevSuperior 2.0. Aplicação que registra os pedidos realizados pelos clientes dos restaurantes e organiza as entregas para os endereços informados.
https://github.com/mathrb22/dsdeliver-sds2
api-rest backend devsuperior frontend heroku java-8 mobile mvc-architecture netlify postgresql springboot webapp
Last synced: about 2 months ago
JSON representation
Projeto desenvolvido durante a Semana DevSuperior 2.0. Aplicação que registra os pedidos realizados pelos clientes dos restaurantes e organiza as entregas para os endereços informados.
- Host: GitHub
- URL: https://github.com/mathrb22/dsdeliver-sds2
- Owner: mathrb22
- License: mit
- Created: 2021-01-06T15:44:00.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2021-01-12T13:36:20.000Z (over 4 years ago)
- Last Synced: 2023-05-23T02:36:28.049Z (almost 2 years ago)
- Topics: api-rest, backend, devsuperior, frontend, heroku, java-8, mobile, mvc-architecture, netlify, postgresql, springboot, webapp
- Language: Java
- Homepage: https://mathrb22-sds2.netlify.app/
- Size: 4.42 MB
- Stars: 8
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
DSDeliver - Semana DevSuperior 2.0
![]()
![]()
[**Sobre**](#-sobre) **|**
[**Features**](#-features) **|**
[**Netlify**](#-aplicação-web-no-netlify) **|**
[**Tecnologias utilizadas**](#-tecnologias-utilizadas) **|**
[**Layout**](#-layout) **|**
[**Instalação e execução**](#-instalação-e-execução) **|**
[**Como contribuir**](#-como-contribuir) **|**
[**Contato**](#-contato) **|**
[**Licença**](#-licença)## 📃 Sobre
**DSDeliver** é o projeto desenvolvido durante a **Semana DevSuperior 2.0**, um evento online produzido pela [**DevSuperior**](https://github.com/devsuperior) com duração de uma semana, onde serão desenvolvidos o back-end, front-end web, e o aplicativo mobile.
Esta é uma aplicação que registra os pedidos realizados pelos clientes dos restaurantes e organiza as entregas para os endereços informados.
## ✨ Features
✔ Listagem de produtos via API (backend), hospedada no Heroku
✔ Seleção de items do pedido
✔ Busca de endereços através de um mapa interativo e dinâmico
✔ Validação e finalização de pedidos
✔ Layout responsivo
✔ Página de erro 404 personalizada para rotas inexistentes
✔ Indicador de Loading durante o carregamento dos dados dos produtos pelo heroku
- [ ] Acompanhamento de pedidos pendentes pelo app mobile (em desenvolvimento)
- [ ] Criação de rotas de navegação GPS - app mobile (em desenvolvimento)
- [ ] Confirmação das entregas - app mobile (em desenvolvimento)## 🌎 Aplicação Web no Netlify
Link para acessar a aplicação hospedada no Netlify:
**https://mathrb22-sds2.netlify.app/**
> Obs.: na primeira vez que é executada, é possível que levem alguns segundos para que os produtos sejam carregados, devido ao tempo de inatividade do servidor do Heroku.
## 🚀 Tecnologias utilizadas
Este projeto foi desenvolvido com as seguintes tecnologias:
- [**JDK 11**](https://www.oracle.com/java/technologies/javase-jdk11-downloads.html): Java Development Kit 11 - um kit de desenvolvimento para construção de aplicações e componentes usando a linguagem de programação Java;
- [**STS (Spring Tool Suite)**](https://spring.io/tools): um ambiente de desenvolvimento baseado em Eclipse, personalizado para desenvolvimento de aplicações Spring;
- [**Postman**](https://www.postman.com/): uma ferramenta que tem como objetivo testar serviços RESTful (Web APIs) por meio do envio de requisições HTTP e da análise do seu retorno;
> A workspace do Postman com as requisições está disponível para download neste repositório. Baixe e importe o arquivo **`DSDeliver.postman_collection.json`** em seu Postman.
- [**Postgresql 12**](https://www.postgresql.org/download/): um sistema gerenciador de banco de dados objeto relacional (SGBD), desenvolvido como projeto de código aberto;
- [**pgAdmin**](https://www.pgadmin.org/): ferramenta para administração do Postgresql, permite fazer realizar as tarefas necessárias para administração do banco de dados;
- [**Heroku CLI**](https://devcenter.heroku.com/articles/heroku-cli): interface de linha de comando do Heroku que facilita a criação e gerenciamento de seus apps no Heroku diretamente de um terminal;
- [**Git**](https://git-scm.com/downloads): o sistema de controle de versão distribuído de código aberto mais utilizado;
- [**Visual Studio Code**](https://code.visualstudio.com/): um editor de código-fonte desenvolvido pela Microsoft para Windows, Linux e macOS, recomendado para o desenvolvimento de aplicações web;
- [**Node.js**](https://nodejs.org/en/): um interpretador de JavaScript assíncrono com código aberto orientado a eventos;
- [**TypeScript**](https://www.typescriptlang.org/): um super conjunto da linguagem JavaScript que fornece classes, interfaces e tipagem estática opcional. Utilizado em conjunto com React no frontend web;
- [**React**](https://reactjs.org): uma biblioteca JavaScript de código aberto com foco em criar interfaces de usuário (frontend) em páginas web. É mantido pelo Facebook, Instagram, outras empresas e uma comunidade de desenvolvedores individuais. É utilizado nos sites da Netflix, Imgur, Feedly, Airbnb, SeatGeek, HelloSign, Walmart e outros;
- [**React Native**](https://facebook.github.io/react-native/): uma biblioteca Javascript criada pelo Facebook. É usada para desenvolver aplicativos para os sistemas Android e IOS de forma nativa;
## 📟 Layout
O layout das telas da aplicação **DSDeliver** foi desenvolvido pela equipe da [**DevSuperior**](https://github.com/DevSuperior/) através da ferramenta online [**Figma**](https://www.figma.com), um software de prototipação voltado para **UI Design (design de interface)**.
Você pode acessar o layout através deste link: [**DSDeliver**](https://www.figma.com/file/LAIvIzyaJsSl2A9NMrnR7W/DSDeliver01).
![]()
Layout das telas da aplicação
![]()
Página inicial
![]()
Página de pedidos
![]()
Página de erro 404## 🔧 Instalação e execução
Para baixar o código-fonte do projeto em sua máquina, primeiramente terá que ter instalado o [**Git**](https://git-scm.com/).
Com o Git instalado, em seu terminal execute o seguinte comando:
```bash
$ git clone https://github.com/mathrb22/DSDeliver-sds2.git
```### Backend
- Com o projeto baixado, abra-o em sua IDE (Spring Tool Suite).
- Como será executado localmente em sua máquina, abra o arquivo **`application.properties`** e altere o perfil ativo de **`prod`** para **`test`**:
- Execute o arquivo **`DsdeliverApplication.java`**.
- A aplicação Spring Boot será executada no endereço: _**`http://localhost:8080/`**_.---
### Frontend web
Para instalar e executar o frontend-web do DSDeliver, terá que ter instalado em sua máquina também o [**Node.js**](https://nodejs.org/en/).
1. Vá até a pasta front-web do repositório:
```bash
$ cd front-web
```
2. Instale as dependências do projeto:
```bash
$ npm install
```
Atenção, antes de executar a aplicação React:> Para a busca de endereços no mapa, foi utilizado o [**Mapbox**](https://www.mapbox.com/), uma plataforma de mapeamento que permite que seus clientes criem soluções de mapeamento personalizadas.
- Então, se deseja carregar os endereços no mapa, você precisará [**criar uma conta gratuita na plataforma**](https://account.mapbox.com/auth/signup/) e utilizar seu token pessoal de acesso à API.
- Após a criação da sua conta, na página principal do MapBox, clique em “Account”. Em configurações, clique em **“API access tokens”** e depois em “Create a new token”;
- Copie o token gerado, e dentro da pasta **`front-web`**, crie um arquivo com a extensão **`.env`**, onde serão definidas as variáveis de ambiente do projeto.
- Adicione o seguinte conteúdo ao seu arquivo, substituindo **`token`** pelo seu token copiado:```
REACT_APP_ACCESS_TOKEN_MAP_BOX=token
REACT_APP_API_URL=http://localhost:8080
```- Inicie a aplicação React:
```bash
$ npm start
```
- Acesse a aplicação pelo endereço: _**`http://localhost:3000/`**_.---
### Mobile
🚧 Em desenvolvimento... 🚧
## 💡 Como contribuir
- Faça um **_fork_** desse repositório;
- Crie um **branch** para a sua feature: `git checkout -b minha-feature`;
- Faça um **commit** com suas alterações: `git commit -m 'feat: Minha nova feature'`;
- Faça um **push** para o seu branch: `git push origin minha-feature`;
- Faça um **pull request** com sua feature;Pull requests são sempre bem-vindos. Em caso de dúvidas ou sugestões, crie uma _**issue**_ ou entre em contato comigo.
## 📲 Contato
Entre em contato comigo por e-mail ou pelo meu LinkedIn:
## 📝 Licença
Esse projeto está sob a licença **MIT**. Veja o arquivo _**LICENSE**_ para mais detalhes.
---
©2021 - Matheus Ribeiro