Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Gym Organizer

Vagrant machine with silex + propel + materialize web app for the creation and management of gym workouts. The entire application is in italian - sorry dudes, I was newbie when I first wrote this app :-P

Simple Vagrant box including

  • apache2
  • php (including Xdebug)
  • mysql
  • gym - a silex project

Project Structure

  • configure your silex app: src/app.php
  • add further pages: src/controllers.php
  • set up your database: sql/datadefinition.sql
  • prefill your database: sql/datamanipulation.sql
  • add twig templates: web/templates/

Quick Start

First, make sure your development machine has VirtualBox installed. After this, download and install the appropriate Vagrant package for your OS. To setup a vagrant box, clone or download this repository and run vagrant up:

git clone
cd gym
vagrant up

Note: the above vagrant up command will also trigger Vagrant to download the trusty32 box via the URL specified in Vagrant file. Vagrant only does this, if it detects that the box doesn't already exist on your system (for instance, the first time). After this, you can login in Vagrant machine using ssh:

vagrant ssh

The first time you run the application you need to create the DB for the very first time. To do that,

  • Log-in mysql - using command line type mysql -u root -p root - and return. Then you will be asked the root password. If you don't know it, just search on Google how to setup the password (see note for suggestion);
  • When you correctly logged in mysql type CREATE DATABASE gym in command line and return;
  • Type exit;

Note: in my experience, if something's wrong with a fresh mysql setup, you can easly fix the it by purging the entire mysql-server package using sudo apt-get purge mysql-* and re-install it with sudo apt-get purge mysql-*

The entire application is under /var/www/ folder: to see silex and propel files go to that folder:

cd /var/www

The application should be already able to respond at:


Note: I wrote a route - under /fixture - that you can find in the controller: it provides a quick way to load lot of example exercises and a bunch of workouts (always in italian, sorry XD).


You can use shell script to drop and rebuild databases

How do I use it?


The homepage is reachable pointing to root app url and looks like this:


The page is divided in four section. In order from left to right:

  • The first card (link in the title) let you insert a new exercise;
  • The second card will let you insert a new muscle group;
  • The third card will let you insert a new workout;
  • The fourth card will let you create a random workout (eventually using some tuning parameters);

Create a new workout

Insert a new line in workout

The exercise insertion page looks like this:

Insert an exercise

When you filled all required fields, you can click in the middle button to temporarily add exercise to workout table. You can drag and drop element in the table and change order before saving workout (right button).

Note: in this page and many others, if you first run the /fitxure, you can correctly choose bewtween several different muscle group and setup difficulty and type of series (pyramidal series, super series).

Create a new exercise

The exercise insertion modal is available clicking on first button from left in insert exercise page:

Insert an exercise

A modal appears and let you:

  • Define the name of exercise;
  • Choose which kind of muscles are involved in exercise;

Workout view

Finally, the workout view let you see the workout you defined before:

Insert an exercise