Skip to content

Gabriel-Baroni/The_Collector

Repository files navigation

THE COLLECTOR

Um trabalho para a disciplina de DESENVOLVIMENTO DE APLICAÇÕES PARA DISPOSITIVOS MÓVEIS - 4º Informática do IFSP-Jacareí


🧑‍🏫 Professor responsável

  • Carlos Eduardo Duque Polito

🎯 Objetivo do projeto

O objetivo do projeto é a construção de um aplicativo funcional, que permita colecionadores acessarem suas coleções de qualquer lugar do mundo e a qualquer momento, facilitando, também, a organização das coleções.

✖️ O que não é o objetivo do projeto

  • Sistema de venda de artigos colecionáveis.
  • Transações monetárias.

👥 Público-alvo

O público-alvo do aplicativo é qualquer tipo de colecionador, desde os colecionadores profissionais até os amadores, os colecionadores de vídeo games até colecionadores de selos.

🔨 Requisitos funcionais do projeto

  • Registro de usuários: Um sistema de cadastro e login que permita a criação e autenticação dos usuários através do email.
  • CRUD de novas coleções: Criação, deleção, atualização e leitura de coleções personalizadas ao molde do usuário.
  • CRUD de itens: Criação, deleção, atualização e leitura de itens dentro de uma coleção.
  • Text-To-Speech: O sistema de possuir um modo onde uma voz sintetizada consiga ler os textos da tela.

☑️ Requisitos não funcionais para o site

  • Desempenho: O software deve funcionar sem travamentos e com agilidade de resposta.
  • Segurança: O software deve garantir que os dados do cliente estejam em segurança e que sejam acessados só pelo mesmo.
  • Ser desenvolvido para mobile: O software deve ser desenvolvido para Android e IOS.

📑 Matrizes de Requisitos

Matriz de Requisitos Gerais


- Observação: C.T significa Criação de Tela. É um requisito tanto de back-end quanto de Front-end, pois no Flutterflow o desenvolvimento de ambas das partes são mais unidas por ser low-code.

Matriz de Requisitos Funcionais

Matriz de Requisitos de Sistema

📱Mockup do APP

Pré-Mockup da Interface: Mockup do App: The Collector.pdf

📊 Modelagem do Banco de Dados

📖 Dicionário de dados

Coleção users

Essa coleção é necessária para cadastrar o usuário e seus dados, possuindo os campos: created_time, email, uid, diplay_name, photo_url, age, reason.

  • created_time: É um campo do tipo timestamp. É usado para armazenar a data de criação do perfil, ou seja, a data de cadastro.
  • email: É um campo do tipo string. É usado para armazenar o email da conta.
  • uid: É um campo do tipo string. É usado para armazenar o identificador único do usuário (Firebase Auth).
  • display_name: É um campo do tipo string. É usado para armazenar o nome do usuário, respondido através do formulário.
  • photo_url: É um campo do tipo string. É usado para armazenar a url da foto de perfil do usuário.
  • age: É um campo do tipo integer. É usado para armazenar a idade do usuário, respondida através do formulário.
  • reason: É um campo do tipo string. É usado para armazenar o motivo pelo qual o usuário utiiza do aplicativo.

Subcoleção Collections

Essa é uma subcoleção dentro da coleção users. Seu papel é armazenar as coleções de cada usuário, possuindo os campos: collection_name, category, start_date, photo_url.

  • collection_name: É um campo do tipo string. É usado para armazenar o nome da coleção.
  • category: É um campo do tipo string. É usado para armazenar a categoria da coleção (sobre o que ela é. Exemplo: Cartas, Moedas...).
  • start_date: É um campo do tipo timestamp. É usado para armazenar a data de início da coleção.
  • photo_url: É um campo do tipo string. É usado para armazenar a url da foto de capa da coleção.

Subcoleção Item

Essa é uma subcoleção dentro da subcoleção Collections. Seu papel é armezenar os dados de cada item da coleção do usuário, possuindo os campos: item_name, item_status, item_value, item_code, photo_url, amount.

  • item_name: É um campo do tipo string. É usado para armazenar o nome do item.
  • item_status: É um campo do tipo string. É usado para armazenar o estado do item (Exemplo: Bom, ruim, lacrado...).
  • item_value: É um campo do tipo string. É usado para armazenar o valor monetário do item.
  • item_code: É um campo do tipo string. É usado para armazenar o código do item, caso houver (Exemplo: em cada carta pokemon existe um código específico).
  • photo_url: É um campo do tipo string. É usado para armazenar a url da foto do item.
  • amount: É um campo do tipo string. É usado para armazenar a quantidade do item. (Se a pessoa tiver repetido).

🧍Diagramas UML

Diagrama de Componenetes

Diagrama de Classes

Diagrama de Caso de uso

Os casos de uso podem ser dividios em:

  • Fazer cadastro: Quando acessado pela primeira vez, o aplicativo permite ao usuário criar uma conta. Essa criação de conta envolve o preenchimento de um formulário, onde o usuário deve fornecer o email, senha e confirmar a senha. Após isso, o mesmo será redirecionado para a tela de questionário, onde irá fornecer: Nome, idade, motivo de utilizar o aplicativo e uma foto de perfil.
  • Fazer login: Quando o usuário já possui uma conta, ele pode acessá-la através de um login. Para isso, é necessário responder um formulário com o email e senha da conta já criada.
  • Logout: Quando já logado em uma conta, o usuário pode sair dela facilmente. Ele pode fazer essa ação para entar em outra conta, por exemplo.
  • Coleções: O usuário pode fazer o CRUD (Create, Read, Update, Delete) das coleções, ou seja, o usuário é capaz de criar, visualizar, atualizar e deletar coleções. Seja características da coleção em si, ou os componentes daquela coleção. Além disso, o usuário consegue (por meio de uma barra de pesquisa) buscar, pelo nome, alguma coleção já criada por ele antes.
  • Itens: O usuário pode fazer o CRUD (Create, Read, Update, Delete) dos itens, ou seja, o usuário é capaz de criar, visualizar, atualizar e deletar os itens das coleções. Além disso, o usuário consegue (por meio de uma barra de pesquisa) buscar, pelo nome, algum item de uma coleção específica.

Diagramas de Sequência

Tela de Login e Cadastro

Tela principal, criação de coleção e criação de item

Diagramas de Atividade

Tela de Login e Cadastro

Tela principal, criação de coleção e criação de item

Diagrama de Objetos

Diagrama de Pacotes

Diagrama de Implantação

Diagrama de Estrutura Composta

Diagrama de Perfil

Diagrama de Comunicação

Diagrama de Estados

Diagrama de Tempo

Documentação do Usuário - The Collector

Introdução

The Collector é um aplicativo projetado para colecionadores organizarem e gerenciarem suas coleções de maneira intuitiva. Este guia fornecerá instruções detalhadas sobre como utilizar todas as funcionalidades do aplicativo.

Objetivos da Documentação

  • Auxiliar os usuários a navegar e utilizar o aplicativo com eficiência.
  • Proporcionar uma experiência fluida e satisfatória.
  • Capacitar os usuários a resolver problemas de forma independente.

Guia de Uso

1. Acessando o Aplicativo

Tela de Login

Opções:

  • Entrar com usuário e senha.
  • Continuar com Google ou Apple.
  • Opção de redefinir senha.
Criar Conta
  • Preencha os campos obrigatórios: nome de usuário, senha e confirmação de senha.
  • Alternativamente, cadastre-se com Google ou Apple.

2. Criando um Perfil

Formulário de Cadastro
  • Nome completo.
  • Idade (menores de 18 anos são permitidos).
  • Motivo para utilizar The Collector.

3. Criando uma Coleção

Passos
  • Acessar "Criar Coleção"
  • Preencher os campos:
    • Nome da coleção (ex: "Cartas Pokémon").
    • Tipo da coleção (ex: "Relógios").
    • Data de início da coleção.
    • Enviar foto representativa.

4. Adicionando Itens à Coleção

Passos
  • Selecione uma coleção existente.
  • Clique em "Adicionar Novo Item".
  • Informe os detalhes:
    • Nome do item.
    • Status (novo, usado, raro, etc.).
    • Valor estimado (ex: R$ 400,00).
    • Código do item (se aplicável, ex: 150/200).
    • Quantidade do item.
    • Foto do item.
  • Salve as informações.

5. Gerenciando a Coleção

Recursos Disponíveis
  • Visualizar todas as coleções criadas.
  • Editar informações de uma coleção ou item.
  • Excluir coleções ou itens indesejados.

6. Configurações da Conta

Opções Disponíveis
  • Alterar nome de usuário.
  • Mudar foto de perfil.
  • Modificar senha.
  • Ativar/desativar o modo de "Texto para Fala".

7. Resolvendo Problemas Comuns

Problema: Não consigo fazer login
  • Verifique se o nome de usuário e senha estão corretos.
  • Utilize a opção "Esqueci minha senha" para redefinir.
Problema: Não consigo adicionar um item
  • Certifique-se de preencher todos os campos obrigatórios.
  • Verifique se a foto está no formato suportado.
Problema: O aplicativo está lento ou travando
  • Tente reiniciar o aplicativo.
  • Certifique-se de que sua conexão com a internet está estável.
  • Atualize o aplicativo para a versão mais recente.

Conclusão

Com este guia, você tem todas as informações necessárias para aproveitar ao máximo The Collector. Caso precise de mais assistência, entre em contato com o suporte dentro do aplicativo.

Plano de capacidade (baseado em 1.000 usuários/mês).

🛢️ Armazenamento (Firestore)

  • Componente Estimativa/Mês Observações
  • Coleção users 5 MB/mê. Estimativa: 5 KB por usuário (email, UID, etc.)
  • Coleção collections + items 500 MB. Estimativa: 50 coleções/usuário, 10 KB cada
  • Total 505 MB Sem mídia (fotos/vídeos)

🔐 Autenticação (Firebase Auth)

  • 2.100 operações/mês (logins + cadastros).

⚙️ Processamento (Back-end FlutterFlow)

  • 30.000 requisições (CRUD básico).

📸 Armazenamento de Mídia (Firebase Storage)

  • 2 GB/mês (10.000 itens com fotos de 200 KB cada).

⚠️ Limites do Plano Gratuito

  • Firestore: 50K leituras/dia e 20K escritas/dia.
  • Auth: 10K usuários/mês.
  • Storage: 5GB

🛡️ Estratégia de Backup e Recuperação

1. Objetivo

  • Garantir a integridade e disponibilidade dos dados do sistema, permitindo a recuperação eficiente em caso de falhas, exclusões acidentais ou erros técnicos.

2. Dados que serão incluídos nos backups

  • Informações dos usuários
  • Dados das coleções e itens cadastrados
  • Imagens associadas aos itens
  • Configurações essenciais do sistema

3. Ferramentas utilizadas

  • Banco de dados: Firebase Firestore
  • Armazenamento de imagens: Firebase Storage

🧰 Tecnologias Utilizadas

Front-end e back-end:

Banco de Dados:

Diagramas e Mockups:

💻 Desenvolvedores


Gabriel de Paula Baroni

Luís Henrique dos Santos Abrantes

About

Um trabalho para a disciplina de Desenvolvimento de Aplicações para Dispositivos Móveis

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •