Versão 2

Há páginas dedicadas tanto ao hardware quanto ao software da Feira.

Requisitos do sistema

Requisitos funcionais:

  1. O sistema deve possuir acesso a partir de qualquer endereço IPv4 ou IPv6.
  2. O sistema deve atender a requisições pela Internet via padrões REST API sobre HTTPS.
  3. O sistema deve prever uma interface de usuário para cadastro e manutenção da sua conta.
  4. A autenticação de usuário, incluindo o cadastro, deve ser feito via O Auth 2.0.
  5. O sistema deve possuir um banco de dados central para persistência dos dados.
  6. O sistema deve prever mecanismos de sincronização bidirecional para a sincronização dos dados do banco central e terminais.
  7. O banco de dados deve armazenar dados de usuário, dispositivos terminais e produtos para venda.

Requisitos não funcionais:

  1. O sistema deve ter suporte a escalabilidade para atender a picos momentâneos de demanda.

O acesso é padronizado para microprocessados (aplicações Web) e microcontrolados, baseado em REST API + JSON, uma vez que o sentido das mensagens é, basicamente, do cliente para o servidor.

As aplicações a serem desenvolvidas ao longo do projeto são:

Trocas de Mensagens e Fluxogramas

Implementação baseada em OAuth 2.0 e JWT.

Autenticação via OAuth 2.0

Entre as aplicações em rede:

Operação de crédito

Entre as aplicações em rede:

Fluxo de escolha do servidor Web na resposta à requisição do usuário:

Operação de débito

Fluxo de escolha do servidor Web na resposta à requisição do usuário:

Operação de transferência

Fluxo de escolha do servidor Web na resposta à requisição do usuário:

Interação com Máquina de Vendas

A máquina de vendas opera com máquina de estados:

APIs e estrutura do banco de dados relacional

A REST API está definida em formato OpenAPI 3.0 no arquivo rest-api.json. As operações entre máquinas e banco central são via WebSocket, estendendo a REST API em machine.json (formato AsyncAPI 3.0).

Já o banco está assim modelado (copiado do original):

Modelagem do banco de dados, versão 2.

Para PostgreSQL, os comandos DDL e DML estão no arquivo ddl.sql e dml.sql, respectivamente.

Exemplo de cenário: melhor caso em que usuário compra produto na máquina de vendas

Um exemplo de uso é o melhor cenário de compra de produto na máquina de vendas, onde o usuário faz a operação de débito e confirma com autenticação de dois fatores e, assim, a compra é concluída:

Exemplo de cenário: melhor caso em que usuário insere moeda no fliperama (arcade)

Um exemplo de uso é o melhor cenário de inserção de moeda no fliperama, onde o usuário faz a operação de débito e a máquina de fliperama atualiza o saldo: