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.
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.
Dashboard com Gráfico de Estoque
Dashboard com Drawer
Formulário de Cadastro de Medicamentos
Lisgatem de medicamentos no estoque
Detalhes e Histórico de Uso
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.
- Clone o repositório:
git clone https://github.com/ezequielvieira/Stock.git cd Stock - Instale as dependências:
flutter pub get - 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 - 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:
Fork e Branch
Crie uma branch descritiva para sua feature ou correção a partir da `main`.
Desenvolva e Teste
Siga o estilo de código do projeto e adicione testes para suas alterações.
Abra um Pull Request
Quando finalizar, abra um PR detalhado para revisão pela equipe.
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.
Apoio Recorrente
Apoie o desenvolvimento contínuo do Stock com uma assinatura mensal através do Mercado Pago.
Apoie Mensalmente