BioCycle é um aplicativo móvel focado no descarte correto de lixo orgânico, incentivando sua reutilização por meio de compostagem para evitar a poluição do lençol freático e rios. Desenvolvido como parte do Hackathon InovaUni – HackÁgua, o projeto segue rigorosamente as exigências do edital: é entregue como um MVP funcional, com código-fonte completo e documentação técnica, conforme os itens 6.4 (MVP obrigatório) e 11.2 (entrega de código e documentação) do edital. Todo o código está hospedado em repositório GitHub, conforme previsto no item 3.17 do edital. A seguir apresentamos uma visão geral do sistema, suas funcionalidades, instruções de instalação e uso, tecnologias empregadas e créditos.
-
Autenticação de Usuário: Cadastro e login de usuários com perfis Produtor ou Coletor, usando e-mail e senha. Os dados de usuário são armazenados localmente em banco SQLite, garantindo a persistência das informações e tipo de usuário (Produtor/Coletor). O aplicativo usa SharedPreferences para manter a sessão do usuário logado.
-
Perfil do Produtor: Após o login, o Produtor visualiza um dashboard com seu nome, pontos acumulados e histórico de coletas realizadas. Este perfil também dá acesso ao marketplace de benefícios, onde os pontos podem ser trocados por recompensas (ver Seção “Creditos” abaixo). Exemplo de implementação no código: cartela de pontos e histórico estático mostrado em tela.
-
Perfil do Coletor: O Coletor vê seu nome, pontos e selos de mérito em seu perfil, além de ações rápidas em grade: “Solicitar coleta” e “Minhas coletas” de resíduos orgânicos. A opção de “Solicitar coleta” permite registrar um novo pedido de coleta, enquanto “Minhas coletas” lista coletas já realizadas (ambas navegando para as rotas correspondentes). Há também opção para definir “Endereço/Área” (mapa) e editar dados pessoais (implementações futuras). As ações rápidas usam cartões de ícones, como ilustrado no código-fonte.
-
Sistema de Pontos e Benefícios: A cada coleta confirmada, o usuário ganha pontos (mostrados no perfil do Produtor). Estes pontos podem ser resgatados por itens no marketplace de benefícios. A tela inicial do Produtor mostra os pontos acumulados (ex.: “1200 pts”) e um botão para “Benefícios”. Os detalhes do marketplace (lista de produtos/benefícios) também são armazenados em SQLite (tabela produtos).
-
Armazenamento Local: Todo o banco de dados do aplicativo é local (SQLite). O helper de banco (
DBHelper) cria as tabelas produtos e usuarios no arquivobiocycle.db. As operações de CRUD usam o pacote sqflite. Por exemplo, a tabelausuariostem campos id, nome, email, senha e tipo, o que permite associar cada login a um perfil e tipo de usuário. Há métodos dedicados emUsuarioDaopara inserir e consultar usuários. Esse armazenamento local garante que o aplicativo funcione offline. -
Funcionalidades de Navegação: O app usa rotas nomeadas para navegar entre telas (login, cadastro, perfis, marketplace, solicitações de coleta etc.). Há suporte a modo convidado (pular login) que leva diretamente ao marketplace. O layout geral segue o padrão Material Design do Flutter, com barras de navegação personalizadas e temas de cores.
-
Flutter (Dart): framework principal do aplicativo, garantindo código nativo compilado para Android e iOS.
-
SQLite (sqflite + path): gerenciamento de banco de dados local. O pacote sqflite é usado para criar e acessar o banco SQLite (
DBHelper). O pacote path determina o caminho do arquivo de banco de dados. -
SharedPreferences: usado para armazenar localmente os dados da sessão do usuário (ID, nome, email, tipo).
-
Outros pacotes: Flutter Material (widgets e tema), Shared Preferences (gerenciamento de sessão), e quaisquer plugins necessários para funcionalidades adicionais (ex.: biblioteca de mapas).
-
Equipe: Desenvolvimento por Higor Valuar Bailona, Hugo Valuar Bailona, Bárbara Mydiã Matos Silva, Letícia Espindola Marques e Ariane Santos da Silva.
-
Plataforma: Qualquer dispositivo com Flutter compatível (Android ou iOS).
-
Flutter SDK: É necessário o Flutter instalado (recomendado versão 3.x ou superior) e ambiente de desenvolvimento configurado (ex.: Android Studio ou VSCode com SDKs Android/iOS).
-
Dependências: As dependências especificadas no
pubspec.yaml(como sqflite, shared_preferences, path). -
Armazenamento: Espaço interno para criar o banco de dados local (pouco espaço; o app é leve).
-
Internet: Apenas para instalar dependências. O funcionamento principal é offline.
-
Git/GitHub: O código está versionado em um repositório GitHub público (
https://github.com/HugoValuar03/Hackathon_hackagua.git), atendendo ao item 3.17 do edital.
-
Clonar o repositório: Execute
git clone https://github.com/HugoValuar03/Hackathon_hackagua.gitpara obter o código-fonte completo. -
Obter dependências: No diretório do projeto, rode
flutter pub getpara baixar pacotes necessários. -
Compilar e rodar: Conecte um dispositivo Android/iOS ou inicie um emulador, então execute
flutter run. O aplicativo compilará e será instalado automaticamente. -
Banco de dados: Ao rodar, o aplicativo criará o arquivo
biocycle.dbno armazenamento local, sem ações adicionais do usuário. -
Ambiente de Teste: Para testes sem dispositivo físico, use emulador Android, Navegador Web (Chrome) ou simulador iOS.
-
Registro e Login: Na primeira execução, cadastre-se informando nome, e-mail, senha e tipo de usuário. Depois, faça login usando essas credenciais. Em caso de falha, uma mensagem de erro será exibida. Há opção de navegar como “Convidado” direto para o marketplace.
-
Fluxo Produtor: Após login como Produtor, você verá sua página de perfil. Ela mostra seus pontos acumulados e um botão para acessar Benefícios (marketplace). Também é exibido um histórico de coletas, listando coletas passadas e pontos ganhos (pontos simulados no exemplo).
-
Fluxo Coletor: Após login como Coletor, na tela de perfil você pode tocar em “Solicitar coleta” para agendar a coleta de resíduos orgânicos, e em “Minhas coletas” para ver coletas anteriores. Outros botões permitem editar perfil ou alterar área de coleta (não implementados).
-
Marketplace e Benefícios: Navegue até a seção Marketplace para ver itens disponíveis em troca de pontos, ou Benefícios para ver recompensas resgatadas. Use os pontos mostrados no perfil do Produtor para efetuar trocas.
-
Configurações: Nas telas de perfil há opções de notificação e uso de localização (atualizações futuras). Para logout, toque em Sair para retornar à tela de login.
-
Documentação Adicional: Comentários no código explicam métodos principais. Consulte as classes
DBHelper(configuração do SQLite) eUsuarioDao(operações de usuário) para detalhes de implementação.
-
Autores: Higor Valuar, Hugo Valuar, Bárbara Mydiã, Letícia Marques e Ariane Silva.
-
Bibliotecas usadas: sqflite (banco SQLite), path (caminhos de arquivo), shared_preferences (storage), flutter/material.dart e outras bibliotecas padrão do Flutter. Cada biblioteca foi utilizada conforme seus termos de uso.
-
Base de Dados: Inspirado no exemplo oficial de uso do sqflite em Flutter. As tabelas criadas estão em
db_helper.dart. -
Licença: O código deste projeto é aberto sob licença MIT (ou outra, se aplicável), permitindo estudo e uso conforme as diretrizes do hackathon (todo o material é original da equipe).
Referências: Esta documentação atende às diretrizes do Edital NIT/Unitins Nº 03/2025 para o Hackathon InovaUni – HackÁgua e FAPTGulhas. Em especial, entregamos todo o código-fonte e documentação solicitados, incluindo este README com instruções e requisitos, conforme exigido. O repositório público no GitHub garante o acesso ao projeto completo, e o sistema foi desenvolvido como um MVP funcional. Todas as funcionalidades descritas acima foram implementadas pela equipe e testadas.