Um sistema completo de scanner de código de barras para cotação de produtos, simulando a funcionalidade de um caixa de supermercado. O projeto é dividido em uma API robusta em Spring Boot (backend) e um aplicativo mobile intuitivo em Flutter (frontend), permitindo a leitura de códigos de barras, consulta de preços em um banco de dados e totalização da cotação em tempo real.
- Scanner de Código de Barras: Utiliza a câmera do dispositivo mobile para escanear códigos de barras (EAN-13, UPC, etc.).
- Consulta de Preços: Envia o código de barras escaneado para a API para obter o nome e o preço do produto.
- Lista de Compras Temporária: Exibe os produtos escaneados em uma lista na mesma tela do scanner, com suas respectivas quantidades e subtotais.
- Ajuste de Quantidade: Permite ao usuário ajustar a quantidade de um item na lista.
- Remoção de Itens: Permite remover um item da lista de compras.
- Totalização da Cotação: Calcula e exibe o valor total da lista de produtos em tempo real.
- API Integrada: Backend desenvolvido em Spring Boot para gerenciamento de produtos e cálculo de totais.
- Conexão Inicial com PostgreSQL: A API se conecta a um banco de dados PostgreSQL para consulta de produtos.
- Fase 2: Adaptação a Múltiplos Bancos de Dados (Backend)
- API capaz de se conectar a diferentes tipos de bancos de dados relacionais (SQL Server, MySQL, etc.) através de perfis Spring Boot ou configurações no
application.properties. - Demonstração da adaptabilidade da API a diferentes ambientes de mercado.
- API capaz de se conectar a diferentes tipos de bancos de dados relacionais (SQL Server, MySQL, etc.) através de perfis Spring Boot ou configurações no
- Fase 3: Interface de Configuração para Admin (App/Web)
- Desenvolvimento de uma interface intuitiva (no próprio aplicativo ou uma pequena interface web separada) para que o administrador do mercado possa configurar o tipo de banco de dados, credenciais de acesso e mapeamento de tabelas/colunas sem necessidade de alteração de código.
- Armazenamento seguro das credenciais do banco de dados na API.
O projeto segue uma arquitetura modular, dividida em duas camadas principais:
-
Backend (API - Spring Boot):
- Responsável pela lógica de negócio, acesso ao banco de dados de produtos (simulando o banco de dados de um mercado) e cálculo da cotação.
- Expõe endpoints RESTful para o aplicativo Flutter.
- Tecnologias: Java, Spring Boot, Spring Data JPA, PostgreSQL (inicialmente).
-
Frontend (App Mobile - Flutter):
- Desenvolvido para Android.
- Responsável pela interface do usuário, interação com a câmera para leitura de códigos de barras, e comunicação com a API para obter dados e resultados.
- Tecnologias: Dart, Flutter,
mobile_scanner(para leitura de códigos de barras),http(para requisições à API).
Backend (API - Spring Boot):
- Linguagem: Java 17+
- Framework: Spring Boot 3+
- Gerenciador de Dependências: Maven
- Banco de Dados: PostgreSQL (inicialmente)
- ORM/Persistência: Spring Data JPA / Hibernate
- APIs Web: Spring Web (RESTful APIs)
Frontend (App Mobile - Flutter):
- Linguagem: Dart
- Framework: Flutter 3+
- Leitor de Código de Barras:
mobile_scanner - Requisições HTTP:
http