Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/geovaneborba/ignite-pizzashop-web


https://github.com/geovaneborba/ignite-pizzashop-web

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        

Imagem do mockup da aplicação Pizza Shop


Repo size
GitHub top language GitHub language count


Sobre   |  
Aprendizado   |  
Tecnologias   |  
Pré requisitos   |  
Começando   |  
Autor


## :dart: Sobre


Um dashboard para gestão de estabelecimentos e controle de pedidos inspirado no estilo do iFood. Esse projeto tem como foco exercitar a comunicação da aplicação front-end com API (back-end) via requisições HTTP.

O projeto contém as seguintes funcionalidades:

- Cadastro de estabelecimento;
- Login de estabelecimento (magic link);
- Cadastro como cliente;
- Gestão de pedidos;
- Paginação da lista de pedidos;
- Filtros da lista de pedidos;
- Gestão do perfil do estabelecimento;
- Métricas p/ dashboard
- Média de receita total mês
- Média de pedidos por mês;
- Média de pedidos por dia;
- Média de cancelamento de pedidos por mês;
- Gráfico de receitas nos últimos 7 dias;
- Gráfico de produtos populares;

(Voltar para o topo)

## :books: Aprendizado

Com a construção desta aplicação eu pude aprimorar ainda mais meus conhecimentos em:

- Autenticação JWT
- Caching e revalidação
- Conexão com back-end (API)
- Testes unitários
- Testes end-to-end
- Interface Otimista
- Mocking da API para facilitar o desenvolvimento e testes da aplicação

(Voltar para o topo)

## :rocket: Tecnologias

As seguintes tecnologias foram usadas na construção do projeto:

- React
- React Router DOM
- Tailwind
- shadcn/ui
- React Query
- Radix
- Recharts

(Voltar para o topo)

## :warning: Pré-requisitos

Antes de começar, você precisa ter o [Git](https://git-scm.com) e o [Node](https://nodejs.org/en/) instalados em sua maquina. E também você irá precisar de um PostgreSQL rodando em sua máquina

(Voltar para o topo)

## :checkered_flag: Começando

O projeto pode ser inicializado utilizando os mocks de dados simulados ou caso queira e possível consumir os dados reais através da API.

### Utilizando Mocks

```bash
# Clone o repositório
$ git clone https://github.com/geovaneborba/ignite-pizzashop-web.git

# Entre na pasta
$ cd ignite-pizzashop-web

# Instale as dependências
$ npm install

# Para iniciar o projeto com a api mocked
$ npm run dev:mock

# O app vai inicializar e será informado no terminal o endereço e porta onde estará rodando a aplicação.
```

### Utilizando API

```bash
# Clone os repositórios abaixo
$ git clone https://github.com/geovaneborba/ignite-pizzashop-web.git
$ git clone https://github.com/geovaneborba/ignite-pizzashop-api.git

# Entre na pasta e instale as dependências
$ cd ignite-pizzashop-api && npm install

# Abra o arquivo .env.local e insira as configurações necessárias, como credenciais do banco de dados e chaves JWT

# Execute as migrações do banco de dados
$ npm run migrate

# Preencha o banco de dados com dados de amostra
$ npm run seed

# Inicie o servidor da API
$ npm run dev

# Em outra janela do terminal, entre na pasta do projeto web, instale as dependências e inicie o projeto
$ cd ../pizzashop-web && npm install
$ npm run dev

# O aplicativo será iniciado e você receberá informações no terminal sobre o endereço e a porta onde ele estará disponível

```

(Voltar para o topo)

Feito com ❤️ por Geovane Borba