Giter Site home page Giter Site logo

sdresselmann / herculade Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 537 KB

A fitness planner where users can add and configure their own training plans.

License: MIT License

Kotlin 0.17% Swift 1.85% Objective-C 0.05% Dart 44.73% CMake 22.91% C++ 26.19% C 1.74% HTML 2.24% Shell 0.12%
android dart dart-platform desktop fitness-app fitness-tracker ios learning learning-exercise material-design mobile web windows

herculade's People

Contributors

sdresselmann avatar

Stargazers

 avatar  avatar

Watchers

 avatar

herculade's Issues

overhaul test cases

The currently existing test cases do not cover all necessary and important functions. Thus the unit and integration tests should be expanded one, allowing further TDD for upcoming features.

i18n

Inform yourself about ways to properly use localisation and i18n in flutter.

  • possible packages
  • required architecture
  • dependencies on other operating systems
  • focus mostly on english/german for now

don't show context switch on app page navigation

Either don't use the navigator to switch between pages or use a different animation when the page is changed. This way, every time the user is navigating between pages, there is no animation shown to hint different activities are used.

restructure project architecture

The structure of the architecture is all over the place. For improved oversight and cleaner seperation a "package by feature" architecture should be implemented.

create simple smoke test that navigates through all pages

Test class:
Navigate and check current page. If it is the expected outcome, navigate further.
Once each page has been explored and no exception occurred, mark the test result as success.

Test case Arrange Act Assert
home page start app / current page is home page
statistics page start app go > statistics page current page: statistics page
calendar page start app go > calendar page current page: calendar page
training day page start app go > calendar > training day current page: training day page
training period page start app go > calendar > training period current page: training period page
training plan list page start app go > training plan list current page: training plan list page
training plan page start app go > training plan list > training plan current page: training plan page
exercise page start app go > training plan list > training plan > exercise current page: exercise page

add training plan list to page

Add a List that fetches training plan data from firebase and loads them into the page.
When clicking on a plan the corresponding data is fetched inside the workout table.

update pipeline setting to trigger on certain branch names

The pipelines for running tests and formatting code should be triggered when branches are pushed to, not just when pull requests are opened. This ensures that errors are detected immediately upon pushing changes, rather than waiting until a pull request is opened.

Trigger on branch names:

  • feature/
  • task/
  • bugfix/
  • hotfix/

user specific views base

Currently, each user has the same views and training plans.
This makes the individual management of training schedules impossible and should be fixed immediatly.

Acceptance Criteria:

  • The firestore knows the two users: herculade-admin and herculade-user
  • Each username/uuid is mapped to a specific id used for identifcation of schedules, plans etc.
  • Both users recieve their own greeting message: welcome <username>!, how are you doing today?
  • Both users have their own list of training plans which are updated by removing or adding entries
  • There is no log-in required yet; The user used, is set via code environmental variables

create contribute ruleset for branching and commit guidelines

This would be helpful for contributing, but also for myself in case I need to check up later.

Branches

The < > notation indicates that there is a placeholder for an actual value or expression.

{ feature | bugfix | hotfix | task }/#<Issue Number>_<TICKET_NAME>

examples:

feature/#35_create_user_service

bugfix/#190_remove_faulty_header

task/#333_expand_statistics_service_tests

Commits

#<Issue Number> - <type>(optional scope): <description>

<commit details> Explain why, something was done

examples:

#99 - refactor(dependencies): update insecure libraries

Updated project dependencies to the latest versions to address security vulnerabilities and improve performance.

create page classes

Create the page classes that are needed for the application similar to FitHub project structure:

  • Main/Home: #3
  • Statistics #6
  • CalendarOverview #8
  • TrainingDay #17
  • TrainingPeriod #17
  • TrainingPlanList #7
  • TrainingPlan #17
  • Exercise #17

fithub_architektur drawio

create training plan list page

The user has its own list of training plans as implemented in #60.

Now the list of training plans should be displayed on the training schedules page
Not all plans should be displayed at once, instead only the first one is shown. The user can then navigate between those plans by clicking on the name above, opening a selection with all avialable plans.

The plan itself contains four columns:
Exercise | Weight | Repeats | Comments

Each of this colums is freely editable and changes are stored in the firebase collection.

To delete and add entries buttons exist for each corresponding row.
When clicking on the delte button, a dialog is opened to ensure the deletion.
This aims to prevent accidental touches/clicks that would delete data.

In case an entry of the table gets to long, it is shortened and only a preview is shown.

Image

create start page

Create a start page class and make sure it is loaded into the flutter app as an entry point.

refactor firestore service

The current usage of the firestore service was never intended to be final, just function as a simple proof of concept.
Instead a reusable service should be implemented, which is able to store/load different types of data.

The service itself is getting used by their respective interface, describing what type of data should be handled (for example trainin plans, user data, etc.)

implement firebase backend as solution to #23

As mentioned in #23 using Firebase is not an option at the moment. A basic database must be set up and included into the project dependencies, while test cases also should proceed smoothly. However, as a last possible approach, I would like to try the firedart package that supports desktop connections to Firebase from flutter apps.

Image

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.