Coder Social home page Coder Social logo

muritg25 / mundo-bola Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 15.06 MB

É um projeto que simula um sistema de cadastro de produtos de uma loja de bolas

android jetpack-compose kotlin kotlin-android sports-store store-management store-management-system hilt hilt-android junit4

mundo-bola's Introduction

Mundo-Bola

É um projeto que simula um sistema de cadastro de produtos e genrenciamento de estoque de uma loja de bolas
Ele foi desenvolvido no sistema Android em Kotlin e conta com o sistema do Jetpack Compose para implementação de telas
O aplicativo roda em aparelhos android a partir da versão 7.0 (SDK 24) até a versão mais atual (até o momento), a 14 (SDK 34)
Ele usa principios de arquitetura android e utiliza o modelo MVVM
Além do aplicativo, farei um modelo físico do banco de dados, e também farei um banco de dados no MySQL para simular o funcionamento do mesmo.
O projeto está dividido em 4 fases

Fase atual

Alpha

Nesta fase haverá um foco em implementar o banco de dados no projeto, com o Room. Além disso, temos o acréscimo de outras features, como:

  • Barra de pesquisa para encontrar a bola pelo nome
  • Icones que ordenam a lista por nome, preco ou data de criação
  • Tela de detalhes da marca
  • Navigation Drawer que mostra as marcas
  • Tela de Cadastro e alteração das marcas

Plugin utilizados:

  • Hilt
  • Navigation
  • Jetpack Compose
  • Material 3
  • Coil Compose
  • Room
  • Junit
  • Kluent
  • Mockk
  • Ui Automator
  • Hilt Android Testing
  • Espresso
  • Leakcanary

Fases futuras

Beta

Nesta fase faremos um sistema de login de usuários, com sistema de limitação de acesso para algumas features apenas para aqueles que tem permissão de adm.
Com o acréscimo do sistema de usuários, teremos o acrescimo de migrations para a persistência de dados, mesmo com alterações em sua estrutura.
As imagens não serão mais salvas apenas em url, mas como também num sistema de armazenamento interno do app, com possiblidade de buscar imagens dentro do aparelho android.
Dentro da classe bola, haverá outra subclasse que adiciona mais detalhes da bola.
Terá um uma redesign maior na parte de UX/UI do aplicativo.
Faremos um reformulações nas transições de telas do Navigation.
Substituição do toast pelo Snackbar para mostrar avisos.

Plugin utilizados:

  • Hilt
  • Navigation
  • Jetpack Compose
  • Material 3
  • Coil Compose
  • Room
  • DataStore
  • Documentfile
  • Junit
  • Kluent
  • Mockk
  • Ui Automator
  • Hilt Android Testing
  • Espresso
  • Leakcanary

Lançamento (1.0)

Na fase final focaremos em aplicar um sistema online-first para o aplicativo, tendo um sistema de conversa com o servidor através de requisições Json com o Ktor (pode ser o Retrofit).
Pode ser que criemos ou não um servidor local bem simples para armazenar o banco de dados em um sistema bem simples de back-end.
Se houver futuras atualizações neste aplicativo, serão apenas correções de bug e/ou pequenas implementações.

Plugin utilizados (aplicativo):

  • Hilt
  • Navigation
  • Jetpack Compose
  • Material 3
  • Coil Compose
  • Room
  • DataStore
  • Ktor (pode ser Retrofit)
  • Junit
  • Kluent
  • Mockk
  • Navigation Test
  • Ui Automator
  • Hilt Android Testing
  • Espresso

Plugin utilizados(servidor em Kotlin):

  • Spring boot
  • Retrofit
  • Não defini o resto

Mundo Bola Armazém

Anteriormente na fase beta, percebi que essa implementação seria mais complexa e teria que crescer muito o projeto de uma maneira abrupta.
A implementação em questão era do sistema de estoque, onde criariamos um sistema de gerenciamento de quantidade de produtos em estoque para cada bola.
Decidi então criar um aplicativo novo, separando em 2. Um deles, é o que já foi implementado, o Mundo Bola cadastro, focado em cadastro de bolas e marcas.
E esse novo aplicativo, o Mundo Bola Armazem, que será um aplicativo focado em gerenciamento de quantidade de itens de uma loja.

Nesta fase teremos 2 módulos no mesmo projeto. Ou seja, teremos um projeto multimodular, onde teremos reaproveitamento de implemetações do primeiro aplicativo no outro.
E além disso, alteramentos a versão do build.gradle para a versão Catalog, que é melhor para projetos multimodulares.

Fases anteriores

Pré Alpha

Nesta fase farei uma implementação mais simples, onde vou apenas fazer um sistema de cadastro de bolas.
Ele se constiste em 3 telas diferentes:

  • Tela de produtos: é a tela principal, onde serão mostrados todos os modelos de bolas. Nesta tela será possivel ir para o cadastro de bola e a descrição da bola
  • Tela de cadastro e edição: tela onde será feita o cadastro de produtos e edição dos produtos já existentes. Mas para ser salvos, terão que passar por uma série de validações
  • Tela de detalhes do produto: tela onde veremos mais detalhes do produto, e onde poderemos editar e deletar o produto.

Ele conta com sistema de navegação entre telas com o navigation, sistema de gerenciamento de estados com View Model e Ui State, injeção de dependências com o Hilt.
Serão feitos testes de unidade, testes de Mock e testes de UI.
O sistema de armazenamento ainda vai ser em lista, na próxima fase será implementada o banco de dados.

Plugin utilizados:

  • Hilt
  • Navigation
  • Jetpack Compose
  • Material 3
  • Coil Compose
  • Junit
  • Kluent
  • Navigation Test
  • Mockk
  • Ui Automator
  • Hilt Android Testing
  • Espresso

mundo-bola's People

Contributors

muritg25 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.