Stock v1.0.1

Documentação para Desenvolvedores

Bem-vindo à documentação técnica do Stock. Este documento serve como um guia centralizado para desenvolvedores que desejam entender a arquitetura, manter e contribuir para este projeto de gerenciamento de estoque de medicamentos.


Download da Aplicação

Faça o download da versão estável mais recente do Stock para testar as funcionalidades em seu dispositivo antes de começar a desenvolver.

Windows

Instalador .exe

Baixar para Windows

Android

Instalador .apk

Baixar para Android

Galeria do Projeto

Uma visão rápida da interface do usuário do Stock em ação. As imagens abaixo mostram as principais telas e funcionalidades da aplicação.

Tela Principal do App Stock

Dashboard com Gráfico de Estoque

Tela Principal do App Stock

Dashboard com Drawer

Tela de Adicionar Medicamento

Formulário de Cadastro de Medicamentos

Tela de Estoque de Medicamentos

Lisgatem de medicamentos no estoque

Tela de Detalhes do Medicamento

Detalhes e Histórico de Uso

Relatório em PDF

Exportação de Relatório em PDF


Primeiros Passos

Para configurar o ambiente e executar o projeto, siga os passos abaixo. Certifique-se de ter o Flutter SDK instalado.

  1. Clone o repositório:
    git clone https://github.com/ezequielvieira/Stock.git
    cd Stock
  2. Instale as dependências:
    flutter pub get
  3. Execute os geradores de código:

    Este comando é crucial para gerar os adaptadores do Hive a partir dos modelos.

    flutter pub run build_runner build --delete-conflicting-outputs
  4. Execute o aplicativo:

    Selecione o dispositivo desejado e execute o comando:

    flutter run

Arquitetura e Estrutura do Projeto

O projeto adota uma arquitetura limpa com separação de responsabilidades para facilitar a manutenção. A estrutura de diretórios em lib/ é organizada da seguinte forma:

models/

Define as classes de dados, como `Medicamento` e `Utilizacao`.

provider/

Gerencia o estado da aplicação com a lógica de negócio.

screens/

Contém os widgets que representam as telas da UI.

services/

Abstrai lógicas de baixo nível como persistência e geração de PDF.

widgets/

Componentes de UI reutilizáveis, como cards e botões.

main.dart

Ponto de entrada que inicializa os serviços e a aplicação.


Gerenciamento de Estado com Provider

Utilizamos o pacote provider para o gerenciamento de estado. A classe MedicamentoProvider (`lib/provider/medicamento_provider.dart`) é o coração dessa arquitetura, centralizando a lógica e notificando a UI sobre as alterações.

// Exemplo simplificado: lib/provider/medicamento_provider.dart
import 'package:flutter/material.dart';
import '../models/medicamento.dart';
import '../services/hive/hive_manager.dart';

class MedicamentoProvider with ChangeNotifier {
  final HiveManager _hiveManager = HiveManager();
  List _medicamentos = [];

  List get medicamentos => _medicamentos;

  Future loadMedicamentos() async {
    _medicamentos = await _hiveManager.getMedicamentos();
    notifyListeners();
  }

  Future addMedicamento(Medicamento medicamento) async {
    await _hiveManager.addMedicamento(medicamento);
    await loadMedicamentos(); // Recarrega para garantir consistência
  }
}

Persistência de Dados com Hive

Para armazenamento local, o projeto utiliza o hive. A interação com o banco é abstraída na camada de serviços para desacoplar a lógica de negócio da implementação do banco de dados.

// Anotações no modelo para geração do adapter
import 'package:hive/hive.dart';

part 'medicamento.g.dart'; // Arquivo gerado pelo build_runner

@HiveType(typeId: 0) // Identificador único para o tipo
class Medicamento extends HiveObject {
  @HiveField(0) // Identificador único para o campo
  late String id;

  @HiveField(1)
  late String nome;
  
  // ... outros campos anotados
}

Dependências Principais

Uma visão geral das dependências mais importantes do projeto, definidas em pubspec.yaml.

Pacote Propósito
provider Gerenciamento de estado reativo.
hive / hive_flutter Banco de dados NoSQL local de alta performance.
path_provider Localiza caminhos no sistema de arquivos para o Hive.
pdf / printing Criação e impressão de relatórios em PDF.
fl_chart Renderização de gráficos para visualização de dados.
Desenvolvimento (dev_dependencies)
hive_generator / build_runner Geração de código para TypeAdapters do Hive.
flutter_launcher_icons Automação da criação de ícones do app.

Licença e Termos de Contribuição

Ao contribuir com o projeto Stock, você concorda que suas contribuições estarão licenciadas sob os termos descritos abaixo. É fundamental ler e entender este acordo antes de submeter qualquer código.

Licença de Uso de Software - Stock

Este contrato legal é celebrado entre você (indivíduo ou entidade) e Ezequiel Vieira, o desenvolvedor do software Stock.

1. Concessão da Licença: É concedida uma licença pessoal, não exclusiva, intransferível e revogável para usar o Software para fins pessoais ou comerciais internos.

2. Propriedade Intelectual: O Software é de propriedade de Ezequiel Vieira e protegido por leis de direitos autorais. Ezequiel Vieira retém todos os direitos não expressamente concedidos.

3. Restrições: Você não pode (a) fazer engenharia reversa, descompilar ou tentar descobrir o código-fonte; (b) modificar, adaptar ou criar trabalhos derivados; (c) vender, alugar, sublicenciar ou transferir direitos sobre o Software; (d) remover avisos de propriedade.

4. Isenção de Garantias: O Software é fornecido "COMO ESTÁ", sem garantias de qualquer tipo, incluindo comercialização ou adequação a um propósito específico.

5. Limitação de Responsabilidade: Em nenhum caso Ezequiel Vieira será responsável por quaisquer danos decorrentes do uso ou da incapacidade de usar o Software.

6. Lei Aplicável: Esta Licença é regida pelas leis do Brasil.

Ao usar ou contribuir com o Software, você reconhece que leu, entendeu e concorda em ficar vinculado por estes termos e condições.


Como Contribuir

Interessado em fazer parte do projeto? Sua contribuição é muito bem-vinda! Como o repositório no GitHub é privado, o primeiro passo é solicitar o acesso para que possamos te adicionar como colaborador.

Processo de Desenvolvimento

Após ter seu acesso liberado, siga estas diretrizes:

1

Fork e Branch

Crie uma branch descritiva para sua feature ou correção a partir da `main`.

2

Desenvolva e Teste

Siga o estilo de código do projeto e adicione testes para suas alterações.

3

Abra um Pull Request

Quando finalizar, abra um PR detalhado para revisão pela equipe.

4

Aguarde a Revisão

Participe da discussão do PR e realize os ajustes solicitados.


Apoie o Projeto

Se você gosta do Stock e ele é útil para você, considere apoiar o projeto com uma doação. Sua ajuda é fundamental para cobrir os custos de desenvolvimento e nos motiva a continuar evoluindo a aplicação. Toda contribuição, de qualquer valor, é muito bem-vinda!

Doação via PIX

Use o QR Code ou a chave abaixo para uma doação direta e instantânea.

Chave copiada!

Apoio Recorrente

Apoie o desenvolvimento contínuo do Stock com uma assinatura mensal através do Mercado Pago.

Apoie Mensalmente