Giter Club home page Giter Club logo

loop's Introduction

Loop

App for tracking male heat-based contraception

loop's People

Contributors

juansero29 avatar

Watchers

James Cloos avatar  avatar

loop's Issues

[CODE RESET] Loop

Since I started coding this, react framework has changed a lot, an gone through some breaking changes.

I should recreate an app by using the step by step guide of typeorm:

Then I can add again translations, and the pages and code I had done before. It will be simpler than upgrading and fixing all dependecy shit code I have now.

[INIT] Choose Framework for app

A framework is needed to build the app.
The app should be able to run at least on:

  • Android
  • iOS
  • Windows 10/11

Basic APIs / features needed:

  • Offline storage for relational data that gives access to CRUD
  • Access to a background service that doesn't get killed by the system (stopwatch)
  • Toast notifications for messages within the app
  • Possibility to store key-value pairs easily in settings.
  • Having a tabbed view similar to the image below
  • Possibility to localize the app in multiple languages
  • System-wide notifications to alert when the wear session needs to start and when the session can end
  • Basic navigation to go from tab to tab, and to click on an item to see its detail.
  • Ability to migrate database versions easily if data model changes without data loss (cf EF Migrations)

BONUS APIs / features:

  • App theming that can be dynamically changed by the user from the app's settings: changing accent and primary colors
  • Possibility to have a customizable calendar control capable of doing something like this: image
  • Possibility to include animations: in the future Today page will show also a loop getting filled as the stopwatch goes by, can be stylized in different ways to make cool stuff if there's animations available.

The potential candidates for the moment are:

  1. Ionic
  2. NET MAUI
  3. Uno Platform
  4. Full Native (swift/kotlin-jetpack)
  5. Uno Platform
  6. Xamarin Forms

[TODAY PAGE] Be able to start and end a wear session via a button in "Today" page

Today page

When the user arrives to the page:

  • A "stopwatch-like" label is in the center of the screen. It shows hours, minutes and seconds in the following format: HHh MMm SSs
  • Above the stopwatch label, there is another label "Worn Time"
  • A FAB button should allow to end and start a ring wear session. The fab button should contain a "Play" icon when the user first arrives to this screen.

When the user clicks on the "Play" FAB button:

  • The internal stopwatch starts counting, updating the label at each second that goes by.
  • The icon on the FAB button becomes a red square, indicating it now stops the current session.
  • The session is created with the start date timestamp (day, month, year, hour, minute, and seconds) and saved into the application's offline storage.

While the timer is running:

  • If the user closes the app or puts the app in the background, they should be still able to return to the app and see the timer at the correct value. Closing or putting the app in the background should invalidate the stopwatch's current value.
  • While the total hours have not reached the goal set in the settings within the field "Goal Worn Time", the stopwatch label text color should be the app's accent color.
  • When the total hours reach the "Session Length Goal" the text becomes green.

When the user clicks on the "Stop" FAB button:

  • The counter stops counting and displays everything at zero again.
  • The session that was saved with the start date timestamp is recovered from the offline storage, and assigned an end date to the end date timestamp when the user clicked on the Stop button.
  • The session is saved updated in the offline storage and should be now visible inside the "History" page
  • The button becomes the "Play" button again

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.