wger Workout Manager is a free, open source web application that helps you manage your personal workouts, weight and diet plans and can also be used as a simple gym management utility.

Overview

wger

wger (ˈvɛɡɐ) Workout Manager is a free, open source web application that helps you manage your personal workouts, weight and diet plans and can also be used as a simple gym management utility. It offers a REST API as well, for easy integration with other projects and tools.

For a live system, refer to the project's site: https://wger.de/

Workout plan

Mobile app

Get it on Google Play

Installation

These are the basic steps to install and run the application locally on a Linux system. There are more detailed instructions, other deployment options as well as an administration guide available at https://wger.readthedocs.io or locally in your code repository in the docs folder.

Please consult the commands' help for further information and available parameters.

Production

If you want to host your own instance, take a look at the provided docker compose file. This config will persist your database and uploaded images:

https://github.com/wger-project/docker

Demo

If you just want to try it out:

    docker run -ti --name wger.demo --publish 8000:80 wger/demo

Then just open http://localhost:8000 and log in as admin, password adminadmin

Please note that this image will overwrite your data when you pull a new version, it is only intended as an easy to setup demo

Development version

We provide a docker compose file that sets everything up for development and persists the database on a volume. From the root folder just call

docker-compose -f extras/docker/compose/docker-compose.yml up

Log in as: admin, password adminadmin

For more info, check the README in wger/extras/docker/compose.

Local installation

If you prefer a local installation, consult the development documentation

Contact

Feel free to contact us if you found this useful or if there was something that didn't behave as you expected. We can't fix what we don't know about, so please report liberally. If you're not sure if something is a bug or not, feel free to file a bug anyway.

Sources

All the code and the content is available on github:

https://github.com/wger-project/wger

Translation

Translate the app to your language on Weblate.

translation status

License

The application is licensed under the Affero GNU General Public License 3 or later (AGPL 3+).

The initial exercise and ingredient data is licensed additionally under one of the Creative Commons licenses, see the individual exercises for more details.

The documentation is released under a CC-BY-SA: either version 4 of the License, or (at your option) any later version.

Some images were taken from Wikipedia, see the SOURCES file in their respective folders for more details.

Comments
  • Getting a

    Getting a "404 Page Not Found" error after attempting to save a workout on mobile - 'null' username?

    Hey guys,

    Hoping someone can assist me here...I followed the steps to install Wger from git, and most everything (so far) seemed to be working great. However, today when trying to use it for the first time after I had created some daily workouts with excercises, I get to the end of it and click the final "save" button and am then greeted with a "Page not found (404)" error. It says the following:

    Request Method: GET Request URL: http://[example.com]/en/workout/calendar/null/2017/7/26 Raised by: wger.manager.views.log.day

    No User matches the given query.

    You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.

    Any thoughts here? Oddly enough it does seem to save the workout, but the issue I'm seeing is the "null" part...however I'm not sure why that's there and I've tried deleted and re-registering a user but the issue still persists. Any advice would be greatly appreciated. Thanks!

    EDIT: So thinking maybe I just screwed something up I just tried fully wiping and reloading with a fresh copy of Ubuntu 16.04, and following the git install directions, and immediately after a fresh install using the default admin/admin creds I get the same error. I'm convinced it's got something to do with the "null" that's in the URL noted, but again I'm just not sure why or where that's getting pulled from. For what it's worth, the last few lines of the console log show the following:

    [26/Jul/2017 16:44:21] "POST /en/user/login HTTP/1.1" 302 0 [26/Jul/2017 16:44:21] "GET / HTTP/1.1" 302 0 [26/Jul/2017 16:44:21] "GET /en/ HTTP/1.1" 302 0 [26/Jul/2017 16:44:21] "GET /en/dashboard HTTP/1.1" 200 41406 [26/Jul/2017 16:44:25] "GET /en/workout/1/timer HTTP/1.1" 200 53681 [26/Jul/2017 16:44:28] "POST /api/v2/workoutlog/ HTTP/1.1" 400 42 [26/Jul/2017 16:44:29] "POST /en/workout/session/1/add/2017-7-26 HTTP/1.1" 302 0 [26/Jul/2017 16:44:30] "GET /en/workout/calendar HTTP/1.1" 200 41849 [26/Jul/2017 16:44:30] "GET /api/v2/userprofile/ HTTP/1.1" 200 546 Not Found: /api/v2/userprofile/null/username/ [26/Jul/2017 16:44:30] "GET /api/v2/userprofile/null/username/ HTTP/1.1" 404 23 Not Found: /en/workout/calendar/null/2017/7/26 [26/Jul/2017 16:44:31] "GET /en/workout/calendar/null/2017/7/26 HTTP/1.1" 404 1775 Not Found: /favicon.ico [26/Jul/2017 16:44:31] "GET /favicon.ico HTTP/1.1" 404 3098

    Thanks!

    opened by dohlin 25
  • Feature request: add possibility to (next to weight) also include RPE (rate of perceived exertion) to each set of weight lifting

    Feature request: add possibility to (next to weight) also include RPE (rate of perceived exertion) to each set of weight lifting

    This is because not only the performed sets x reps x weight is important, the RPE is very important in the sense that it tracks the difficulty of the performed set and serves the purpose of having a complete log of the session. If RPE is missing, then the log being incomplete isn't very useful.

    RPE is expressed in a number from 1 to 10; 1 being very easy and 10 being the most intense a movement could be without failing. RPE with halves is sometimes used, e.g. RPE of 7,5; 8,5; 9,5 to have slightly more values to add more nuance.

    Currently the following can be defined for a set: number of reps, weight and unit of weight. I would like RPE to be added to that, with the possibility to use a number from this set: [1; 2; 3; 4; 5; 6; 7; 7,5; 8; 8,5; 9; 9,5; 10]. I realise that the numbers 1 till 5 are not very useful, but I'd add them just for completeness' sake.

    effort: medium good first issue 
    opened by doodhout 20
  • Changed Layout of Feature Page

    Changed Layout of Feature Page

    The layout of the feature page made the view of the images small, cluttered, and hard to see. I've made changes that make the images easier to see on devices such as laptop/desktop computers.

    Old Layout:

    wgerlayoutoldbig

    New Layout:

    wgerlayoutnewbig

    opened by DeveloperMal 19
  • Wger on production docker doesn't use SITE_URL for images

    Wger on production docker doesn't use SITE_URL for images

    Steps to Reproduce

    In production deployment using Docker, The images are returning from http://localhost instead of SITE_URL. I tried to clear cache but it doesn't work.

    Expected results: The exercise images should be loaded.

    Actual results: No image.

    opened by mohammadrafigh 18
  • possible feature ? BMI on Graph

    possible feature ? BMI on Graph

    Although the BMI is not as good as other measurements it gives you a rough estimate where your weight should be located It would be cool to have a checkbox which enables the a transparent color of the bmi displayed in the background of the graph

    Graph_with_BMI

    opened by sinedo 18
  • Can't run appliction using info from README

    Can't run appliction using info from README

    I'm trying to install development version from Git under Ubuntu 15.10. Python 3.4 npm list shows "[email protected]"

    Commands I've used: sudo apt-get install python3-dev python-virtualenv nodejs nodejs-legacy npm libjpeg8-dev zlib1g-dev virtualenv --python python3 venv-django source venv-django/bin/activate git clone https://github.com/rolandgeider/wger.git cd wger pip install -r requirements_devel.txt sudo npm install -g bower npm install bower invoke --root wger bootstrap_wger After running the last command, I get an error:

    *** Creating settings file at /home/denis/.config/wger Traceback (most recent call last): File "/home/denis/Development/projects/venv-django/bin/invoke", line 11, in sys.exit(program.run()) File "/home/denis/Development/projects/venv-django/lib/python3.4/site-packages/invoke/program.py", line 270, in run self.execute() File "/home/denis/Development/projects/venv-django/lib/python3.4/site-packages/invoke/program.py", line 379, in execute executor.execute(_self.tasks) File "/home/denis/Development/projects/venv-django/lib/python3.4/site-packages/invoke/executor.py", line 114, in execute result = call.task(_args, *_call.kwargs) File "/home/denis/Development/projects/venv-django/lib/python3.4/site-packages/invoke/tasks.py", line 113, in call result = self.body(_args, **kwargs) File "/home/denis/Development/projects/wger/wger/tasks.py", line 101, in bootstrap_wger setup_django_environment(settings_path) File "/home/denis/Development/projects/wger/wger/tasks.py", line 385, in setup_django_environment django.setup() File "/home/denis/Development/projects/venv-django/lib/python3.4/site-packages/django/init.py", line 17, in setup configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) File "/home/denis/Development/projects/venv-django/lib/python3.4/site-packages/django/conf/init.py", line 48, in getattr self._setup(name) File "/home/denis/Development/projects/venv-django/lib/python3.4/site-packages/django/conf/init.py", line 44, in _setup self._wrapped = Settings(settings_module) File "/home/denis/Development/projects/venv-django/lib/python3.4/site-packages/django/conf/init.py", line 92, in init mod = importlib.import_module(self.SETTINGS_MODULE) File "/home/denis/Development/projects/venv-django/lib/python3.4/importlib/init.py", line 109, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "", line 2254, in _gcd_import File "", line 2237, in _find_and_load File "", line 2226, in _find_and_load_unlocked File "", line 1200, in _load_unlocked File "", line 1129, in _exec File "", line 1471, in exec_module File "", line 321, in _call_with_frames_removed File "/home/denis/.config/wger/settings.py", line 4, in from wger.settings_global import * ImportError: No module named 'wger'

    After this, I ran: python setup.py build python setup.py install invoke --root wger bootstrap_wger

    But seeing this error:

    djangobower.exceptions.BowerNotInstalled: Bower not installed, read instruction here - http://bower.io/

    Project structure is: wger --build --dist --docs --extras --node_modules ----bower ----.bin -------bower --wger --wger.egg-info --.git

    I'm new in Python and it's env, so maybe I'm doing something wrong.

    type: bug 
    opened by solar-vibez 17
  • Issue with installation

    Issue with installation

    Hi i have issue:

    Traceback (most recent call last): File "manage.py", line 4, in from django.core.management import execute_from_command_line ImportError: No module named django.core.management

    opened by buzzard10 16
  • 404 errors for static resources

    404 errors for static resources

    Hi,

    I get the following errors in case installing wger form Git or form PyPI:

    python manage.py runserver
    Performing system checks...
    
    System check identified some issues:
    
    WARNINGS:
    ?: (1_8.W001) The standalone TEMPLATE_* settings were deprecated in Django 1.8 and the TEMPLATES dictionary takes precedence. You must put the values of the following settings into your default TEMPLATES dict: TEMPLATE_LOADERS.
    
    System check identified 1 issue (0 silenced).
    February 24, 2018 - 14:42:11
    Django version 1.10.8, using settings 'settings'
    Starting development server at http://127.0.0.1:8000/
    Quit the server with CONTROL-C.
    [24/Feb/2018 14:42:30] "GET / HTTP/1.1" 302 0
    [24/Feb/2018 14:42:31] "GET /en/ HTTP/1.1" 302 0
    [24/Feb/2018 14:42:37] "GET /en/software/features HTTP/1.1" 200 14735
    [24/Feb/2018 14:42:38] "GET /static/css/agency.css HTTP/1.1" 200 17241
    [24/Feb/2018 14:42:39] "GET /static/bower_components/shariff/build/shariff.min.js HTTP/1.1" 404 1748
    [24/Feb/2018 14:42:39] "GET /static/bower_components/bootstrap/dist/css/bootstrap.min.css HTTP/1.1" 404 1772
    [24/Feb/2018 14:42:39] "GET /static/bower_components/jquery/dist/jquery.js HTTP/1.1" 404 1727
    [24/Feb/2018 14:42:39] "GET /static/bower_components/shariff/build/shariff.min.css HTTP/1.1" 404 1751
    [24/Feb/2018 14:42:39] "GET /static/bower_components/bootstrap/dist/js/bootstrap.min.js HTTP/1.1" 404 1766
    [24/Feb/2018 14:42:39] "GET /static/bower_components/components-font-awesome/css/font-awesome.min.css HTTP/1.1" 404 1808
    [24/Feb/2018 14:42:39] "GET /static/bower_components/bootstrap/dist/js/bootstrap.min.js HTTP/1.1" 404 1766
    [24/Feb/2018 14:42:39] "GET /static/bower_components/shariff/build/shariff.min.js HTTP/1.1" 404 1748
    [24/Feb/2018 14:42:39] "GET /static/images/calendar.png HTTP/1.1" 200 12434
    [24/Feb/2018 14:42:39] "GET /static/images/gym-management.png HTTP/1.1" 200 14519
    [24/Feb/2018 14:42:39] "GET /static/images/weight-chart.png HTTP/1.1" 200 26598
    [24/Feb/2018 14:42:39] "GET /static/images/rest-api.png HTTP/1.1" 200 41359
    [24/Feb/2018 14:42:39] "GET /static/images/muscle-overview.png HTTP/1.1" 200 26959
    [24/Feb/2018 14:42:40] "GET /static/fonts/OpenSans-Light.woff HTTP/1.1" 200 82956
    [24/Feb/2018 14:42:40] "GET /static/fonts/OpenSans-Bold.woff HTTP/1.1" 200 84696
    [24/Feb/2018 14:42:40] "GET /static/images/main.jpg HTTP/1.1" 200 1244461
    [24/Feb/2018 14:42:45] "GET /static/images/favicon.png HTTP/1.1" 200 429
    [24/Feb/2018 14:43:05] "GET /en/user/login HTTP/1.1" 200 18453
    [24/Feb/2018 14:43:05] "GET /static/bower_components/bootstrap/dist/css/bootstrap.min.css HTTP/1.1" 404 1772
    [24/Feb/2018 14:43:05] "GET /static/bower_components/components-font-awesome/css/font-awesome.min.css HTTP/1.1" 404 1808
    [24/Feb/2018 14:43:05] "GET /static/bower_components/shariff/build/shariff.min.css HTTP/1.1" 404 1751
    [24/Feb/2018 14:43:05] "GET /static/bower_components/jquery/dist/jquery.js HTTP/1.1" 404 1727
    [24/Feb/2018 14:43:05] "GET /static/bower_components/bootstrap/dist/js/bootstrap.min.js HTTP/1.1" 404 1766
    [24/Feb/2018 14:43:05] "GET /static/bower_components/shariff/build/shariff.min.js HTTP/1.1" 404 1748
    [24/Feb/2018 14:43:05] "GET /static/bower_components/metrics-graphics/dist/metricsgraphics.css HTTP/1.1" 404 1787
    [24/Feb/2018 14:43:05] "GET /static/bower_components/Sortable/Sortable.min.js HTTP/1.1" 404 1736
    [24/Feb/2018 14:43:05] "GET /static/bower_components/d3/d3.js HTTP/1.1" 404 1688
    [24/Feb/2018 14:43:05] "GET /static/css/workout-manager.css HTTP/1.1" 200 6426
    [24/Feb/2018 14:43:06] "GET /static/css/bootstrap-custom.css HTTP/1.1" 200 5642
    [24/Feb/2018 14:43:06] "GET /static/bower_components/metrics-graphics/dist/metricsgraphics.min.js HTTP/1.1" 404 1796
    [24/Feb/2018 14:43:06] "GET /static/bower_components/devbridge-autocomplete/dist/jquery.autocomplete.min.js HTTP/1.1" 404 1826
    [24/Feb/2018 14:43:06] "GET /static/css/workout-manager-common.css HTTP/1.1" 200 8174
    [24/Feb/2018 14:43:06] "GET /static/css/metricsgraphics-custom.css HTTP/1.1" 200 127
    [24/Feb/2018 14:43:06] "GET /static/js/wger-core.js HTTP/1.1" 200 21167
    [24/Feb/2018 14:43:06] "GET /static/js/exercises.js HTTP/1.1" 200 2511
    [24/Feb/2018 14:43:06] "GET /static/js/nutrition.js HTTP/1.1" 200 8492
    [24/Feb/2018 14:43:06] "GET /static/images/icons/flag-es.svg HTTP/1.1" 200 2974
    [24/Feb/2018 14:43:06] "GET /static/images/icons/flag-de.svg HTTP/1.1" 200 3176
    [24/Feb/2018 14:43:06] "GET /static/images/icons/flag-bg.svg HTTP/1.1" 200 3105
    [24/Feb/2018 14:43:06] "GET /static/images/icons/flag-en.svg HTTP/1.1" 200 5383
    [24/Feb/2018 14:43:06] "GET /static/images/icons/flag-ru.svg HTTP/1.1" 200 3092
    [24/Feb/2018 14:43:06] "GET /static/images/icons/flag-nl.svg HTTP/1.1" 200 3131
    [24/Feb/2018 14:43:06] "GET /static/images/icons/flag-pt.svg HTTP/1.1" 200 17896
    [24/Feb/2018 14:43:06] "GET /static/images/icons/flag-el.svg HTTP/1.1" 200 3240
    [24/Feb/2018 14:43:06] "GET /static/images/icons/flag-cs.svg HTTP/1.1" 200 3077
    [24/Feb/2018 14:43:06] "GET /static/images/icons/flag-sv.svg HTTP/1.1" 200 3072
    [24/Feb/2018 14:43:06] "GET /static/images/icons/flag-no.svg HTTP/1.1" 200 3386
    [24/Feb/2018 14:43:06] "GET /static/images/icons/flag-fr.svg HTTP/1.1" 200 3168
    [24/Feb/2018 14:43:06] "GET /static/images/agpl-v3.svg HTTP/1.1" 200 22285
    [24/Feb/2018 14:43:06] "GET /static/bower_components/devbridge-autocomplete/dist/jquery.autocomplete.min.js HTTP/1.1" 404 1826
    [24/Feb/2018 14:43:06] "GET /static/bower_components/shariff/build/shariff.min.js HTTP/1.1" 404 1748
    

    How can I run wger correctly?

    NOTE: I exactly followed the instructions from: https://wger.readthedocs.io/en/latest /development.html but I always get same problem!

    opened by mbnoimi 15
  • Video reference -- feature request

    Video reference -- feature request

    Hi, I propose a section for video references for each exercise. So everyone can get a better understanding how the workout should be in motion.

    A user rated collection of links might be better then just one link to one video.

    Example video: https://www.youtube.com/watch?v=6MzpiWqKhmg

    effort: medium good first issue 
    opened by plus13 15
  • Authors should not be a single field

    Authors should not be a single field

    At the moment, the author field for exercises, etc. is a single text field. It would be better if each new author would get an entry to a new authors table or such. Another advantage would be that other information such as the datetime could be saved as well.

    opened by rolandgeider 15
  • Missing CSRF_TRUSTED_ORIGINS parameter in Django settings.py

    Missing CSRF_TRUSTED_ORIGINS parameter in Django settings.py

    Since Django 4 it is necessary to define trusted origins to prevent 403/CSRF errors.

    Steps to repo:

    • Deploy Docker image
    • Access via http://IP:PORT
    • Try to login - POST will fail

    Proposed solution: Add CSRF_TRUSTED_ORIGINS = ['https://*.mydomain.com','https://*.127.0.0.1'] in settings.py and make it configurable via environment variable.

    Tested on my end and works fine.

    Source for solution: https://stackoverflow.com/questions/70285834/forbidden-403-csrf-verification-failed-request-aborted-reason-given-for-fail

    opened by TheFitzZZ 14
  • replace psycopg2-binary with psycopg2

    replace psycopg2-binary with psycopg2

    Proposed Changes

    • Although the arm64 image builds, django will crash because the psycopg2-binary is buggy (linked to the wrong library)
    • To be able to fix this compiling psycopg2 during image build will do

    Please check that the PR fulfills these requirements

    • [ ] Tests for the changes have been added (for bug fixes / features) -> not in django
    • [ ] Added yourself to AUTHORS.rst -> no changes in django code

    Other questions

    • Do users need to run some commmands in their local instances due to this PR (e.g. database migration)? -> No
    opened by bbkz 4
  • Bump icalendar from 4.1.0 to 5.0.4

    Bump icalendar from 4.1.0 to 5.0.4

    Bumps icalendar from 4.1.0 to 5.0.4.

    Changelog

    Sourced from icalendar's changelog.

    5.0.4 (2022-12-29)

    Minor changes:

    • Improved documentation Ref: #503, #504

    Bug fixes:

    • vBoolean can now be used as an parameter Ref: #501 Fixes: #500 [jacadzaca]

    5.0.3 (2022-11-23)

    New features:

    • vDDDTypes is hashable #487 #492 [niccokunzmann]

    Bug fixes:

    • vDDDTypes' equality also checks the dt attribute #497 #492 [niccokunzmann]

    5.0.2 (2022-11-03)

    Minor changes:

    • Refactored cal.py, tools.py and completed remaining minimal refactoring in parser.py. Ref: #481 [pronoym99]
    • Calendar.from_ical no longer throws long errors Ref: #473 Fixes: #472 [jacadzaca]
    • Make datetime value shorter by removing the value parameter where possible. Fixes: #318 [jacadzaca], [niccokunzmann]

    New features:

    • source code in documentation is tested using doctest #445 [niccokunzmann]

    Bug fixes:

    • broken properties are not added to the parent component Ref: #471 Fixes: #464

    ... (truncated)

    Commits
    • c461459 Merge pull request #505 from niccokunzmann/release
    • a6ee303 version 5.0.4
    • cf9c6c8 Merge pull request #501 from collective/fix-500
    • 62a0edf Merge pull request #504 from abe-101/abes-patch
    • 4c998ed print content of example
    • f1f82e9 Merge pull request #503 from abe-101/patch-2
    • c32edb0 add missing import pytz in example
    • d8b5e34 Fixed plone tox environment when using latest tox 4.
    • 230c466 add changelog entry for #501
    • b47aba5 alaways pass string representation of calendar object to dquote
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 0
  • Find a solution for CSRF verification failed

    Find a solution for CSRF verification failed

    When running this behind a reverse proxy, e.g. when using the docker compose setup we need to set the CSRF_TRUSTED_ORIGINS setting since the connection between the nginx in the docker compose and the application is not encrypted.

    This can probably be solved with a better configured proxy but we first need a setup so this can be more easily reproduced, etc. etc.

    See https://github.com/wger-project/wger/issues/1203

    https://stackoverflow.com/questions/70679571/how-do-i-set-a-wildcard-for-csrf-trusted-origins-in-django https://docs.djangoproject.com/en/4.1/ref/settings/#secure-proxy-ssl-header

    opened by rolandgeider 0
  • Make sure entrypoint is chown'ed as well

    Make sure entrypoint is chown'ed as well

    Was looking something unrelated, and noticed this. With the . you only chown the WORKDIR

    Proposed Changes

    Please check that the PR fulfills these requirements

    • [ ] Tests for the changes have been added (for bug fixes / features)
    • [ ] Added yourself to AUTHORS.rst

    Other questions

    • Do users need to run some commmands in their local instances due to this PR (e.g. database migration)?
    opened by stavros-k 9
  • Ability to browse exercises? Especially when creating a routine

    Ability to browse exercises? Especially when creating a routine

    Use case

    I don't know what exercises are available, so it's hard to create a routine when the only option is to already know the exercise or to type in various words and hope something that sounds interesting comes up.

    This is especially hard to work with as I have ADHD, which has working memory impairments, so things can be forgotten just seconds later without on-screen persistence of much if not all content.

    Proposal

    Show all exercises on the create routine page, or allow to see all exercises in one category of exercises after just one tap.

    opened by mxmilkiib 1
  • Contribution Guide changes on README (Steps for beginners with links).

    Contribution Guide changes on README (Steps for beginners with links).

    Proposed Changes

    Please check that the PR fulfills these requirements

    • [ ] Tests for the changes have been added (for bug fixes / features)
    • [ ] Added yourself to AUTHORS.rst

    Other questions

    • Do users need to run some commmands in their local instances due to this PR (e.g. database migration)?
    opened by MattHuson08 0
Releases(2.1)
  • 2.1(Oct 11, 2022)

    What's Changed

    • UUID rename by @jackmulligan-ire in https://github.com/wger-project/wger/pull/675
    • Fix generator for workouts for comment to name rename. by @sysadmin75 in https://github.com/wger-project/wger/pull/696
    • Fix API call to save total calories for userprofile by @sysadmin75 in https://github.com/wger-project/wger/pull/697
    • Solved bug in download-exercise-images.py task by @RedRudeBoy in https://github.com/wger-project/wger/pull/725
    • Fix response for Daily calories calculator by @Gr8ayu in https://github.com/wger-project/wger/pull/772
    • Allow user to give meals a description by @Gr8ayu in https://github.com/wger-project/wger/pull/774
    • Fixed typos by @gorkemarslan in https://github.com/wger-project/wger/pull/800
    • Add style field to ExerciseImage by @LucasSD in https://github.com/wger-project/wger/pull/822
    • Correct typo in local docker demo by @ChemiKyle in https://github.com/wger-project/wger/pull/847
    • Add foreign key to meals on log by @Alig1493 in https://github.com/wger-project/wger/pull/842
    • Fix/export weight csv by @absolutely-not-bot in https://github.com/wger-project/wger/pull/881
    • Update gym.rst documentation by @jaspreetsd902 in https://github.com/wger-project/wger/pull/910
    • Feature/exercise videos by @rolandgeider in https://github.com/wger-project/wger/pull/970
    • Replace force_text with force_str to avoid ImportError by @sophiamartelli in https://github.com/wger-project/wger/pull/986
    • Swap headers by @ImTheTom in https://github.com/wger-project/wger/pull/1029
    • Cache exercise responses by @ImTheTom in https://github.com/wger-project/wger/pull/1033
    • Improve muscle recognition by @ImTheTom in https://github.com/wger-project/wger/pull/1041
    • fix no bare urls in locales README.md by @ImTheTom in https://github.com/wger-project/wger/pull/1046
    • Plan nutritional entries for other dates by @ImTheTom in https://github.com/wger-project/wger/pull/1045
    • Fix add workout modal by @ImTheTom in https://github.com/wger-project/wger/pull/1049
    • Show author changes in exercise objects by @ImTheTom in https://github.com/wger-project/wger/pull/1052
    • Make URL for media, static and login redirect configurable by @novalis111 in https://github.com/wger-project/wger/pull/1020
    • Feature/556 prettify the autocompleter by @kp5431 in https://github.com/wger-project/wger/pull/993
    • Draft: Show indepth exercise history changes by @ImTheTom in https://github.com/wger-project/wger/pull/1082
    • Issue/rework user preferences page by @RohanKaran in https://github.com/wger-project/wger/pull/1133
    • Exercise crowdsourcing by @rolandgeider in https://github.com/wger-project/wger/pull/1120

    New Contributors

    • @jackmulligan-ire made their first contribution in https://github.com/wger-project/wger/pull/675
    • @sysadmin75 made their first contribution in https://github.com/wger-project/wger/pull/696
    • @RedRudeBoy made their first contribution in https://github.com/wger-project/wger/pull/725
    • @Gr8ayu made their first contribution in https://github.com/wger-project/wger/pull/772
    • @gorkemarslan made their first contribution in https://github.com/wger-project/wger/pull/800
    • @LucasSD made their first contribution in https://github.com/wger-project/wger/pull/822
    • @ChemiKyle made their first contribution in https://github.com/wger-project/wger/pull/847
    • @Alig1493 made their first contribution in https://github.com/wger-project/wger/pull/842
    • @absolutely-not-bot made their first contribution in https://github.com/wger-project/wger/pull/881
    • @jaspreetsd902 made their first contribution in https://github.com/wger-project/wger/pull/910
    • @sophiamartelli made their first contribution in https://github.com/wger-project/wger/pull/986
    • @novalis111 made their first contribution in https://github.com/wger-project/wger/pull/1020
    • @kp5431 made their first contribution in https://github.com/wger-project/wger/pull/993
    • @RohanKaran made their first contribution in https://github.com/wger-project/wger/pull/1133

    Full Changelog: https://github.com/wger-project/wger/compare/2.0...2.1

    Source code(tar.gz)
    Source code(zip)
  • 2.0(May 1, 2021)

    Upgrade steps from 1.9:

    • Update python libraries pip3 install -r requirements.txt
    • Install yarn and sass (e.g. sudo npm install -g yarn sass)
    • Update CSS and JS libraries yarn install
    • Compile the CSS yarn build:css:sass
    • Run migrations python3 manage.py migrate
    • Update data python3 manage.py loaddata licenses.json languages.json language_config.json
    • Load new ingredients (note that this will overwrite any ingredients that you might have added) wger load-online-fixtures
    • Update static files (only production): python3 manage.py collectstatic
    • Subcommands for wger now use dashes in their names (i.e. create-settings instead of create_settings)

    🚀 Features:

    • Add nutrition diary to log the daily calories actually taken #284, #501 and #506 (thanks @WalkingPizza and @oconnelc)
    • Support for reps-in-reserve (RiR) in workout plans and logs #479 (thanks @SkyNetIndustry)
    • Improved user experience, on desktop and mobile #337
    • Around 70000 new ingredients with Open Food Facts import with more to come #422 (thanks @harlenesamra, @nikithamurikinati and @jcho1)
    • Group common exercise information such as muscles, etc. for more easy translations, data management, etc. #448 (thanks @nikithamurikinati, @harlenesamra, @jcho17, @vaheeshta and @jeevikaghosh)
    • Group similar exercises such as wide grip, reverse, etc. #555 (thanks @ryowright)
    • Improved info endpoints for exercises and ingredients, this saves additional API calls #411
    • Show BMI on weight graph #462 (thanks @Svn-Sp)
    • Allow user to edit and delete body weight entries #478 (thanks @beingbiplov)
    • Show kJoules as well as kcal in nutritional plan #568 (thanks @nopinter and @derekli17)
    • Check name similarity when adding exercises to avoid duplicates #551 (thanks @lydiaxing, @eq8913, @Hita-K)
    • Return the muscle background images in the REST API #547 (thanks @gengkev)

    🐛 Bug Fixes:

    #368, #379, #426 (thanks @austin-leung), #499, #505, #504, #511, #516, #522, #554 and #560 (thanks @sandilsranasinghe), #564, #565, #615, #560 (thanks @bradsk88), #617 (thanks @Sidrah-Madiha), #636, #640, #642, #648, #650

    🧰 Maintenance:

    • Moved translations to weblate #266
    • Improved docker and docker-compose images #340
    • Updated many libraries to last version (bootstrap, font awesome, etc.)
    • Use yarn to download CSS/JS libraries
    • Improvements to documentation (e.g. #494)
    • Improved cache handling #246 (thanks @louiCoder)
    • Others: #450 (thanks @Rkamath2), #631 (thanks @harlenesamra), #664 (thanks @calvinrw),
    Source code(tar.gz)
    Source code(zip)
  • 1.9(Jun 29, 2020)

    New features:

    • Allow users to enter their birthdate instead of just the age (thanks @dtopal) #332
    • Work to ensure that mobile templates are used when appropriate
    • Added optional S3 static asset hosting.
    • Drop Python 2 support.
    • Replaced django-mobile with django-user_agent (and some custom code) This isn't as slick as django-mobile was, but it unblocks possible * * Django 2.x support.
    • Update many dependencies to current versions.

    Improvements:

    • Improve look of weight graph (thanks @alokhan) #381
    • Added password validation rules for more security
    • Exercise image downloader checks only accepted exercises (thanks @gmmoraes) #363
    • Use a native data type for the exercises' UUID (thanks @gmmoraes) #364
    • Increase speed of testsuite by performing the tests in parallel (thanks @Mbarak-Mbigo) wger_vulcan/#6
    • Update screen when adding an exercise to the workout while using set slider (thanks @gmmoraes) #374
    • Work to slim docker image * Download images at startup - If DOWNLOAD_IMGS environmental variable is set to TRUE * Uninstall dev packages
    • Update Ubuntu version used in docker container.
    • Fixed a handful of hard coded static path references to use static taglib
    • Updated tinymce theme for v5.
    • Other improvements and bugfixes: #336, #359,#386_, #443
    Source code(tar.gz)
    Source code(zip)
  • 1.8(Apr 5, 2017)

    New languages:

    • Norwegian (many thanks to Kjetil Elde @w00p #304)
    • French (many thanks to all translators)

    New features:

    • Big ingredient list in Dutch, many thanks to alphafitness.club!
    • Add repetition (minutes, kilometer, etc.) and weight options (kg, lb, plates, until failure) to sets #216 and #217
    • Allow administrators to deactivate the guest user account #330
    • Add option to show the gym name in the header instead of the application name, part of #214
    • Exercise names are now capitalized, making them more consistent #232
    • Much improved landing page (thanks @DeveloperMal) #307
    • Add extended PDF options to schedules as well (thanks @alelevinas ) #272
    • Show trained secondary muscles in workout view (thanks @alokhan ) #282
    • Use the metricsgraphics library to more easily draw charts #188
    • Removed persona (browserID) as a login option, the service is being discontinued #331

    Improvements:

    • Check and enforce style guide for JS files #317 (@petervanderdoes)
    • BMI calculator now works with pounds as well (thanks @petervanderdoes) #318
    • Give feedback when autocompleter didn’t find any results #293
    • Make exercise names links to their detail page in training log pages #350
    • Better GUI consistency in modal dialogs (thanks @jstoebel ) #274
    • Cache is cleared when editing muscles (thanks @RyanSept @pythonGeek ) #260
    • Fields in workout log form are no longer required, making it possible to only log weight for certain exercises #334
    • New, more verbose, API endpoint for exercises, (thanks @andela-bmwenda)
    • The dashboard page was improved and made more user friendly #201 (partly)
    • Replace jquery UI’s autocompleter and sortable this reduces size of JS and CSS #78 and #79
    • Update to D3js v4 #314, #302
    • Remove hard-coded CC licence from documentation and website #247

    Other improvements and bugfixes: #25, #243, #279, #275, #270, #258, #257, #263, #269, #296, #297, #303, #311, #312, #313, #322, #324, #325

    Please check the changelog for information on upgrading

    Source code(tar.gz)
    Source code(zip)
  • 1.7(Feb 28, 2016)

    • New translations
      • Czech (many thanks to Tomáš Z.!)
      • Swedish (many thanks to ywecur!)
    • Workout PDF can now print the exercises' images and comments #261
    • Allow login with username or email #164
    • Correctly use user weight when calculating nutrional plans' calories #210
    • Fix problem with datepicker #192
    • Order of exercises in supersets is not reverted anymore #229
    • Improvements to the gym management:
      • Allow to add contracts to members
      • Vastly reduce the number of database queries in gym member list #144
      • Global list of users for installation #212
      • Allow administrators to restrict user registration #220
      • Allow gym managers to reset a member's password #186
    • Visual consistency for lists and actions
    • Refactored and improved code, among others #208
    • Better rendering of some form elements #244
    • Improved GUI consistencyn #149
    • Docker images for easier installation #181
    • Use hostname for submitted exercises #159
    • Download js libraries with bowerjs #126
    • Improved and more flexible management commands #184
    • Fixed error when importin weight entries from CSV #204
    • Fixed problems when building and installing the application on Windows #197
    • Fixed potential Denial Of Service attack #238
    • Dummy data generator can not create nutrition plans #241
    • Other improvements and bugfixes #267 #264 #256 #242 #238 #236 #206 #202 #195 #190 #194 #185 #182 #179 #150
    Source code(tar.gz)
    Source code(zip)
  • 1.6(Jul 25, 2015)

    • New translation: Greek (many thanks to Mark Nicolaou!)
    • Save planed weight along with the repetitions #119
    • Improvements to the workout calendar #98
    • Allow external access to workouts and other pages to allow for sharing #102 #124
    • Email reminder to regularly enter (body) weight entries #115
    • Allow users to submit corrections to exercises
    • Add day detail view in workout calendar #103
    • Fix bug where the exercises added to a superset did not remain sorted #89
    • Reduce size of generated html code #125
    • Allow users to copy shared workouts from others #127
    • Added breadbrumbs, to make navigation easier #101
    • Add option to delete workout sessions and their logs #156
    • Improve installation, development and maintenance documentation #114
    • Other improvements and bugfixes #99 #100 #106 #108 #110 #117 #118 #128 #131 #135 #145 #155
    Source code(tar.gz)
    Source code(zip)
    wger-1.6.tar.gz(5.44 MB)
    wger-1.6.tar.gz.asc(819 bytes)
  • 1.5(Dec 16, 2014)

    • New Translations:
      • Dutch (many thanks to David Machiels!)
      • Portuguese (many thanks to Jefferson Campos!) #97
    • Add support for gym management #85
      • Gym managers can create and manage gyms
      • Trainers can see the gym's users and their routines
    • Reduce amount of CSS and JS libraries by using bootstrap as much as possible #73
    • Improvements to the REST API #75
      • Add read-write access
      • Add live browsing of the API with django rest framework
      • Improve documentation
      • /api/v1 is marked deprecated
    • Show exercise pictures in workout as well
    • Detailed view of exercises and workouts in schedule #86
    • Support for both metric (kg) and imperial (lb) weight units #70
    • Allow the user to delete his account and data #84
    • Add contact field to feedback form
    • Cleanup translation strings #94
    • Python 3 compatibility! #68
    • Other improvements and bugfixes #51 #76 #80 #81 #82 #91 #92 #95 #96

    https://pypi.python.org/pypi/wger

    Source code(tar.gz)
    Source code(zip)
    wger-1.5.tar.gz(4.54 MB)
    wger-1.5.tar.gz.asc(819 bytes)
  • 1.4(Mar 8, 2014)

    • Calendar view to more easily check workout logs
    • Add "gym mode" with timer to log the workout while at the gym
    • Add automatic email remainders for new workouts
    • New iCal export to add workouts and schedules e.g. to google calendar
    • New exercise overview, grouped by equipment
    • Add possibility to write comments and rate the workout
    • Simplify form for new exercises
    • Alternative PDF export of workout without table for entering logs
    • Unified way of specifying license of submitted content (exercises, etc.)

    https://pypi.python.org/pypi/wger

    Source code(tar.gz)
    Source code(zip)
    wger-1.4.tar.gz(4.14 MB)
    wger-1.4.tar.gz.asc(198 bytes)
  • 1.3(Nov 27, 2013)

    • New translations
      • Bulgarian (many thanks to Lyuboslav Petrov!)
      • Russian (many thanks to Inna!)
      • Spanish
    • Mobile version of website
    • Exercises can have images/pictures
    • Exercises now can list needed equipment (barbell, etc.)
    • BMI calculator
    • Daily calories calculator
    • New management utility for languages
    • Improved performance
    • RESTful API for easier integration with other projects

    https://pypi.python.org/pypi/wger

    Source code(tar.gz)
    Source code(zip)
  • 1.2(Jul 12, 2013)

    • Added scheduling option for workouts.
    • Open all parts of website to all users, this is done by a custom middleware
    • Regular users can submit exercises and ingredients to be included in the general list
    • Add more 'human' units to ingredients like '1 cup' or '1 slice'
    • Add nutritional values calculator on the ingredient detail page
    • Several bugfixes
    • Usability improvements
    Source code(tar.gz)
    Source code(zip)
Owner
wger Project
Self hosted FLOSS fitness/workout, nutrition and weight tracker
wger Project
A course management web application

umber a course management web app built with python Flask, sqlite3, and git. installation Tested on Ubuntu 18 with python 3.5. # -- Install the system

Jim Mahoney 6 Jun 3, 2022
Simple yet powerful and really extendable application for managing a blog within your Django Web site.

Django Blog Zinnia Simple yet powerful and really extendable application for managing a blog within your Django Web site. Zinnia has been made for pub

Julien Fache 2.1k Dec 24, 2022
Indico - A feature-rich event management system, made @ CERN, the place where the Web was born.

Indico Indico is: ? a general-purpose event management tool; ? fully web-based; ? feature-rich but also extensible through the use of plugins; ⚖️ O

Indico 1.4k Dec 31, 2022
A self-hosted application that lets you create podcast RSS feeds from YouTube playlists

Playlist2Podcast A self-hosted application that lets you create podcast RSS feeds from YouTube playlists. What Does This Do? Takes a list of YouTube p

Simon 12 Nov 14, 2022
An open source CMS, in python and integrable in Django

Python CMS based on the Django Framework

Titouan Bénard 0 Sep 10, 2021
ConnectLearn is an easy to use and deploy Open-Source Project meant to make it easier for the right students to find the right teachers online.

ConnectLearn ConnectLearn is an easy to use and deploy Open-Source Project meant to make it easier for the right students to find the right teachers o

Aditya 5 Oct 24, 2021
Open Source CRM based on Django

Django-CRM Django CRM is opensource CRM developed on django framework. It has all the basic features of CRM to start with. We welcome code contributio

MicroPyramid 1.4k Dec 31, 2022
A python open source CMS scanner that automates the process of detecting security flaws of the most popular CMSs

CMSmap CMSmap is a python open source CMS scanner that automates the process of detecting security flaws of the most popular CMSs. The main purpose of

RazzorBack 1 Oct 31, 2021
A Django content management system focused on flexibility and user experience

Wagtail is an open source content management system built on Django, with a strong community and commercial support. It's focused on user experience,

Wagtail 13.8k Jan 1, 2023
Library Management system designed for managing and operating various aspects of a library

Proposal This proposal is written to clarify the project work of Information Systems, assigned to us as an individual task in order to tackle the case

Prawal 1 Oct 27, 2021
LOOKING FOR NEW MAINTAINER - Quokka is a Content Management System - `docker run --rm -it -p 5000:5000 quokka/quokka`

Quokka The Happiest CMS in the world Quokka is a Content Management Framework written in Python. A lightweight framework to build CMS (Content Managem

Quokka Project 2.2k Jan 1, 2023
The lektor static file content management system

Lektor Lektor is a static website generator. It builds out an entire project from static files into many individual HTML pages and has a built-in admi

Lektor CMS 3.6k Dec 29, 2022
VaporCMS - The greatest content management system that will never exist

The greatest content management system that will never exist Overview WordPress is a huge success but could it be done better? Maybe being mo

Andrew Dailey 4 Jan 6, 2022
CSM: Construction Safety Management system

CSM: Construction Safety Management system 1. 서비스 소개 개요: 공사현장에서의 최적의 안전진단기술을 통한 고도화된 시스템으로 개선하고자 함 목표: 안전 관련 주요 시각데이터를 Cross-Domain으로 활용하여 통합 안전 관리기술의

null 5 Jul 29, 2022
Oppia a free, online learning platform to make quality education accessible for all.

Oppia is an online learning tool that enables anyone to easily create and share interactive activities (called 'explorations'). These activities simulate a one-on-one conversation with a tutor, making it possible for students to learn by doing while getting feedback.

Oppia 4.8k Dec 28, 2022
A full stack e-learning application, this is the backend using django restframework and docker.

DevsPrime API API Service backing client interfaces Technologies Python 3.9 : Base programming language for development Bash Scripting : Create conven

Nnabue Favour Chukwuemeka 1 Oct 21, 2021
Ticket shop application for conferences, festivals, concerts, tech events, shows, exhibitions, workshops, barcamps, etc.

pretix Reinventing ticket presales, one ticket at a time. Project status & release cycle While there is always a lot to do and improve on, pretix by n

pretix 1.3k Jan 1, 2023
Ella is a CMS based on Python web framework Django with a main focus on high-traffic news websites and Internet magazines.

Ella CMS Ella is opensource CMS based on Django framework, designed for flexibility. It is composed from several modules: Ella core is the main module

null 295 Oct 16, 2022
Journey is a journaling app where users can create their own journal and entries in it!

Journey is a journaling app where users can create their own journal and entries in it!

Hieu Ma 8 Dec 12, 2021