witness-org / witness Goto Github PK
View Code? Open in Web Editor NEWYour fitness witness!
Your fitness witness!
In GitLab by @11775820 on Aug 4, 2021, 22:34
In GitLab by @11712616 on Aug 20, 2021, 19:44
This issue is meant to introduce localization for all language-related user interface strings introduced by the mockups (#33). In the future, strings will be added in a localized manner.
In GitLab by @11775820 on Aug 27, 2021, 23:16
In GitLab by @11712616 on Aug 20, 2021, 19:46
In GitLab by @11712616 on Aug 20, 2021, 19:34
In GitLab by @11712616 on Aug 20, 2021, 19:44
In GitLab by @11712616 on Sep 30, 2021, 13:29
In GitLab by @11712616 on Aug 20, 2021, 19:47
This feature only makes sense if the feature described in issue #11 is implemented. However, as explained in the respective issue description, we decided not to add the feature, making this issue obsolete.
In GitLab by @11712616 on Aug 20, 2021, 19:41
In GitLab by @11712616 on Aug 27, 2021, 19:43
all activities conducted in order to acquire expertise on Flutter
In GitLab by @11712616 on Aug 20, 2021, 19:44
In GitLab by @11712616 on Aug 20, 2021, 19:41
In GitLab by @11712616 on Aug 20, 2021, 19:34
For project management reasons, this issue has been split up into #57 and #58 halfway through. The accompanying merge request !16 has also been closed in favor of ones associated with the new issues. All changes from the branch initially corresponding to this issue - 8-log-workout-from-scratch
- have been moved to 57-api-for-logging-workout-from-scratch
and 58-log-workout-from-scratch
. The branch 8-log-workout-from-scratch
has since been removed.
see this comment for a brief description of the corresponding use cases and workflows
workflow sketches:
Log_Workout_From_Scratch_Workflow.pdf
In GitLab by @11775820 on Aug 27, 2021, 23:13
In GitLab by @11712616 on Aug 20, 2021, 19:37
After a discussion that arose while working on the UI mockups, we decided not to implement this feature since it is not very useful in practice. Furthermore, the main functionality that this issue would introduce is implicitly given by issue #40 which was added to the feature list instead.
In GitLab by @11775820 on Aug 23, 2021, 18:57
In GitLab by @11712616 on Aug 26, 2021, 15:41
should be completed before starting with the actual implementation of the features
In GitLab by @11712616 on Aug 20, 2021, 19:37
This feature only makes sense if the feature described in issue #11 is implemented. However, as explained in the respective issue description, we decided not to add the feature, making this issue obsolete.
if an unnamed workout was logged, a user should be able to create a (saved) workout from it
In GitLab by @11712616 on Sep 30, 2021, 12:06
In GitLab by @11712616 on Aug 26, 2021, 14:58
meetings for internal discussion of project details
In GitLab by @11712616 on Aug 26, 2021, 14:57
meetings with lecture team, e.g. status reports and external reviews
In GitLab by @11775820 on Aug 14, 2021, 10:31
After some consideration, the changes needed for this ticket were incorporated into #4, making this issue obsolete.
In order to execute Flutter intgeration tests via the GitLab CI, we rely on a chromedriver
executable. For the time being, it is checked into the repository, which is not desirable. Apart from that, chromedriver
itself relies on a chrome installation. A better solution would be to supply a custom Docker image (preferred alternative) that includes chrome
and chromedriver
.
The Docker image should use the cirrusci/flutter:2.2.3
as base image and additionally supply chromedriver
and chrome
executables on the PATH
. This image can then be pushed to a Docker registry so that is may be used in the gitlab-ci.yml
.
The chromedriver
download page provides information about the latest version via special file on their FTP/file server which can be queried using curl
. With this version number, the download link for the latest version can be constructed, which makes building and pushing a new docker image easily possible.
Example script that uses this strategy: https://gist.github.com/ziadoz/3e8ab7e944d02fe872c3454d17af31a5
In GitLab by @11712616 on Aug 20, 2021, 19:34
In GitLab by @11775820 on Sep 3, 2021, 20:06
Merges 37-static-code-analysis-for-dart -> develop
Closes #37
I have deliberately configured the static code analysis to be quite pedantic. I am a big fan of Dart's type system and sound null safety which I would like to leverage as much as possible. Of course, it may very well be possible that in practice some of the rules I have turned on are impracticable (e.g. when we find ourselves ignoring them in code files more often than not). If I have messed up, there could even be rules that contradict each other - but I was relatively considerate, so that should not be the case.
However, in general, that's the route I want to go: Right now, start with a quite strict set of rules and potentially slim it down along the way (so that we don't miss out on cool rules). There are some rules which we will always have to selectively suppress that I really don't want to miss out on. For example, library_private_types_in_public_api
is concerned with making sure that no "file-private" members are exposed via public APIs. This is quite a sensible approach I would like to have statically checked, but fails when using the StatefulWidget
pattern - in those cases, that's just how Flutter is designed, which leaves us no other choice than suppressing the createState
lines in StatefulWidget
derivations.
The CI job outputs files with analysis warnings/errors/hints. Furthermore, if you want to invoke the analysis locally, run flutter format
. As a side note, IntelliJ (the Dart plugin) should already do that by itself and provide the output in its own tool window Dart Analysis
.
By the way: Perhaps you have already seen it, but I think turning on the following two options in Settings -> Languages & Frameworks -> Flutter
(IntelliJ) greatly improves the experience:
In GitLab by @11712616 on Sep 24, 2021, 16:51
see this comment for a brief description of the corresponding use case and workflow
In GitLab by @11712616 on Sep 25, 2021, 10:56
In GitLab by @11775820 on Sep 3, 2021, 09:53
Flutter and Dart offer static code analysis and linting. These capabilities should be used in order to produce higher-quality code.
In GitLab by @11775820 on Aug 10, 2021, 19:04
In GitLab by @11712616 on Sep 30, 2021, 13:30
In GitLab by @11775820 on Sep 30, 2021, 10:54
see this comment for a brief description of the corresponding use cases and workflows
In GitLab by @11712616 on Aug 20, 2021, 19:46
In GitLab by @11712616 on Aug 20, 2021, 19:45
In GitLab by @11712616 on Aug 20, 2021, 19:39
In GitLab by @11712616 on Aug 20, 2021, 19:39
In GitLab by @11712616 on Aug 20, 2021, 19:39
In GitLab by @11712616 on Aug 20, 2021, 19:51
LoginCard
in separate widgets for sign up and sign in (not one widget with two "modes" like right now)"roles": ["ROLE_ADMIN", "ROLE_PREMIUM"]
instead of {..., "ROLE_ADMIN": true, "ROLE_PREMIUM": true, ...}
FirebaseService
better testable (e.g. return the new user record containing new roles or the like - something to assert that confirms the operation was successful)In GitLab by @11775820 on Aug 12, 2021, 21:53
Merges 4-basic-repository-setup -> develop
Closes #4
Set up checkstyle
conform auto-format in IntelliJ (CTRL+ALT+L
):
Checkstyle-IDEA
plugincheckstyle.xml
dartfmt
is configured to run automatically on CTRL+ALT+L
as soon as the Dart and Flutter extensions are installed into IntelliJ.
Set max line length in Dart to 150:
Note: The artifact with the flutter test coverage was just inserted as an example so that we have a working CI configuration with a job that produces artifacts. Later on we could extend that to publishing the correctly formatted dart files (if there have been changes during the check
phase) to the artifacts or, e.g. for a release build, attaching the build apk, jar and HTML files.
In GitLab by @11712616 on Aug 20, 2021, 19:24
all issues related to the project management
In GitLab by @11775820 on Sep 20, 2021, 11:11
Since we do not maintain our own docker image for integration tests anymore, we do not need active infrastructure maintenance anymore, making this ticket obsolete. We are currently running integration tests as widget tests in our CI which is not close to production yet.
There is a possibility that after #56, this ticket becomes relevant again, in which case it will be reopened.
This is an ongoing ticket related to periodic tasks that are relevant to the project's infrastructure. These may entail:
If one of the events described above ensues, a comment is added to this comment is added to this issue such that the related task is done at a later time. These comments may be marked with different reactions:
In GitLab by @11775820 on Sep 21, 2021, 16:00
Merges 33-client-mockups -> develop
Closes #33
In the real implementation, we need to put a little more thought into what data we want to receive with each request and how they are organized (right now, for the purpose of creating mockups as quickly as possible, it is very naive and objects that should e.g. be "local per training program" are reused in multiple programs for the sake of quickness).
If you get error regarding the localization (something with AppLocalization
and errors at package:flutter_gen/...
imports), be sure to do a flutter clean
, followed by a flutter pub get
. Then, unfortunately, it might still be necessary to restart IntelliJ to get rid of the error messages (they are no real errors, building and running would still work fine, but popups and squiggly lines are annoying). This is a more or less known (or recurring) error in the Flutter IDE integration plugins.
In GitLab by @11712616 on Aug 20, 2021, 19:46
This feature only makes sense if the feature described in issue #11 is implemented. However, as explained in the respective issue description, we decided not to add the feature, making this issue obsolete.
In GitLab by @11712616 on Aug 20, 2021, 19:40
In GitLab by @11775820 on Aug 4, 2021, 22:45
Outcome: Flutter
(see also https://reset.inso.tuwien.ac.at/repo/praktika/fitnessapp/-/wikis/Documents/2021_08_09_Frontend_Technology_Evaluation)
The two most likely candidates we want to use as frontend technology in our project are Flutter and React Native.
Analyze them according to the following aspects:
python3 -m http.server 8000
)After the deadline, we discuss the findings and decide on a winner that will serve as technology to build our (Android) app on.
In GitLab by @11712616 on Aug 20, 2021, 19:43
In GitLab by @11775820 on Sep 4, 2021, 22:34
Merges 6-flutter-ci-job-for-integration-tests-does-not-work -> develop
Closes #6
You will probably notice that, effectively, this MR does not introduce many changes. I have simply compacted the Dockerfile
and associated scripts and introduced a new naming scheme for the resulting image(s).
What really has changed is the manner in which integration test dependencies are installed into the container, google-chrome
and its chromedriver
. I have used some other dependencies of google-chrome
now and, in order to avoid potential permission problems with the old location, have moved chromedriver
to a neutral directory. To be frank: I am not exactly sure why it works this way and not also the other one.
Since it was already quite tricky to find out this working constellation, I hope it is okay for you that I did not dig any deeper. I have a strong suspicion that it came down to (silent) permission and/or dependency issues, but logs and verbose outputs could not undeniably prove it.
In GitLab by @11775820 on Aug 12, 2021, 20:11
Merges 4-basic-technology-setup -> develop
This MR was closed because it corresponds to a incorrectly named branch that does not exist anymore.
Closes #4
Set up checkstyle
conform auto-format in IntelliJ (CTRL+ALT+L
):
Checkstyle-IDEA
plugincheckstyle.xml
Set up the checkstyle
plugin to analyse your code files on the fly (real-time analysis) with the correct ruleset:
checkstyle.xml
dartfmt
is configured to run automatically on CTRL+ALT+L
as soon as the Dart and Flutter extensions are installed into IntelliJ.
Set max line length in Dart to 150:
Note: The artifact with the flutter test coverage was just inserted as an example so that we have a working CI configuration with a job that produces artifacts. Later on we could extend that to publishing the correctly formatted dart files (if there have been changes during the check
phase) to the artifacts or, e.g. for a release build, attaching the build apk, jar and HTML files.
In GitLab by @11775820 on Aug 14, 2021, 14:37
The .gitlab-ci.yml
already contains a command that starts the integration tests. However, after running the command, no tests are executed - the log stops at Application finished.
. When starting chromedriver
with the --verbose
flag, one can see that the output differs from when integration tests are executed locally. As executing the integration tests also does not work from within the Docker container when testing it locally (same behaviour), something seems to be amiss - so it should not be an issue with the GitLab CI.
Executing the very same commands (to start the chromedriver
and flutter drive
) locally, without a Docker container, works as expected. Some investigations are necessary.
Inspiration for the CI job: https://gitlab.com/nicolalandro/flutter_test_app/-/tree/master. Maybe we need to have a look at the Docker image used there.
In GitLab by @11712616 on Aug 20, 2021, 19:40
In GitLab by @11712616 on Sep 24, 2021, 20:45
At an interval of four weeks, we publish status reports containing a summary of what happened during the respective period of time as well as a short description of the problems that arose and the planned next steps.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.