Skip to content

shankarpriyank/PettyPlanet

Repository files navigation

Petty Planet

Petty planet is an place where you can upload pics of abandoned pets so that the people interested to adopt pets can connect adopt the pets they wish to adopt.

  • Used Firebase to storage to store the Images uploaded by the users and then waited for the imageurl to come , after the imageurl is successfully generated , I used the imageurl along with the other information provided by the user to create a post in the Firebase Realtime Database

  • Implemented Standard Google Login to authenticate users of my app

  • Integrated Camera and Gallery acess in the app so that users can users can upload images using any medium they prefer

  • The app uses many fragments and it consumes the jetpack navigation components to navigate around different fragments

  • Used Firebase to store the user details online and used SharedPreferences to store the user information in the device itself

  • Used Room To store the posts user desires in the device itself

  • Used dependency injection to inject the required information at the desired places (for eg Injecting the instance of Room Db in different ViewModel)

  • Used ViewBinding and followed MVVM to make the data persistent even if the views are recreated

  • Used Lottie Animation to add some animations

  • Wrote tests to check that the Room Db is working Fine(used the truth library by google for making assertions)

Technologies Used

Kotlin

Firebase Storage

Firebase Realtime Database

Room

Dependency Injection

Coroutines

ViewBinding

MVVM

Lottie Animations

Motion Toast

Truth

Login Screen Main Feed Upload Fragment

Todo/Future Of The Project

  • The upload fragment can be improved in many ways , I can compress the image the before uploading to make the upload and retrieval faster , the upload can also be done using a background service
  • Also I wish to cache the posts using Room Db so that while the new posts are still being fetched the users has something to interact with
  • Write more tests
  • Implement other login methods such as Facebook Login
  • Make some improvements in the Ui

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages