GSOC 2022 - Offline Smoothie

From Open Food Facts wiki
Revision as of 10:47, 8 June 2022 by Teolemon (talk | contribs) (→‎Timeline)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Offline Smoothie

Summary

Description

Status: planning

People:

  • Aman Raj / Open Food Facts user-name: ashaman / Slack: @Aman Raj / Github: AshAman999
  • Edouard
  • Marvin
  • (PM support: Pierre)

Impact (why)

Expected outcomes (what)

Timeline

  • Community Bonding Duration ( May 20 - June 12) :
    • Explore the documentation and codebase thoroughly
    • Discuss a roadmap with the mentors for a long-lasting solution
    • Discuss the general working of how the offline mode is going to work that might include some design patterns as well.
  • Week 1 ( June 13 - June 18 ) :
    • Discuss with the mentors about the making if using any SQL-based local DB or go with some JSON-like ones.
    • Making UI changes to the app so as to highlight the users if they are using the app in the offline mode through snack bars.
    • Start plotting the schema of the data to be stored for the scanned/searched items.
  • Week 2 ( June 21 - June 26 ) :
    • Start plotting the schema of the data to be stored for the scanned/searched items.
    • Take into consideration all the attributes to be stored.
    • Adding a menu for the users to control/delete the cached items from the stored data, the user might want to get rid of the data so as to make the app lightweight again.
  • Week 3-4 ( June 29 - July 10 ) :
    • Start the changes to make a lookup of data in the local database.
    • Search for the results on the scan and search page in the local database.
    • Store the image path into the local DB.
    • Use cached Network Image to keep the images stored in the local DB or take inspiration from PR 1600
  • Week-5 ( July 12 - July 17) :
    • Start storing the scanned product barcodes in the local DB
    • Start with mapping a search of the barcodes scan in the scan page to look into the local database and if not found show an appropriate msg through snack bars.
  • Week 6 ( July 19 - July 24) :
    • Work on leftover over and improve the design aspects to the UI changes
    • Clean up the code and maintain the documentation.
    • Prepare the work for the first evaluation.
  • Week 7 ( July 26 - July 31) :
    • Discuss with mentors about the possible implementation of how to store the changes to sync them later.
    • A possible solution can be to use a work manager to schedule the task until an internet connection is available to get the syncing process done.
  • Week 8-9 ( Aug 3 - Aug15 ) :
    • Start working on the best possible solution for the task
    • Record the changes in a place where the task of submitting the data is done, instead of making an API call, store the same task in a local DB in case of no network.
    • When a connection becomes available, upload the local images changes to the DB and
  • Week 10 ( Aug 18 - June 23) :
    • Check into the implementation and make it robust and spread it to all the pages of the app so as to track the changes everywhere in the app in case of offline network status.
  • Week 11 ( Aug 25 - Aug 30 ) :
    • Clean up and refactor the code.
    • Test the implementation throughout the whole app for a smooth experience.
  • Week 12 ( Sept 1 - Sept 5) :
    • Work on populating the app with preloaded data for a certain country with the help of implementation done in the first half of the summer work.
    • Test, refactor and clean up the code for a smooth experience

Resources / Contributing

Archives