Skip to content

Programie/TeamPlaner

Repository files navigation

Team Planer

A simple calendar allowing to plan recurring events in teams (e.g. shift planing).

DockerHub GitHub release

Requirements

  • Webserver (e.g. Apache)
  • PHP 7.0 or newer
  • MySQL

If you directly clone this repository (instead of downloading one of the pre-built releases), you will need those tools as well:

  • Composer (to download PHP dependencies)
  • bower (to download frontend JavaScript dependencies)

Installation from the pre-built release (recommended)

  • If not already done, download the latest release.
  • Execute php bin/update-config.php to create or update your configuration file
  • Edit the config.json file in the config folder (See section Configuration for details)
  • Import database.sql into your MySQL database
  • Configure your webserver so your document root points to the httpdocs folder
  • Create the users for your team (See section User management for details)
  • Use it

Installation using Docker

  • Use the Docker image programie/teamplaner from Docker Hub
  • Create a config.json file and mount it into the container at /app/config/config.json (See section Configuration for details)
  • Import database.sql into your MySQL database
  • Create the users for your team (See section User management for details)
  • Use it

Installation from the Git repository

  • Clone this repository: git clone https://github.com/Programie/TeamPlaner.git
  • Execute bin/build.sh to build the application
  • Execute php bin/update-config.php to create or update your configuration file
  • Edit the config.json file in the config folder (See section Configuration for details)
  • Import database.sql into your MySQL database
  • Configure your webserver so your document root points to the httpdocs folder
  • Create the users for your team (See section User management for details)
  • Use it

Configuration

The configuration is done in a simple JSON file config.json which is located in the config folder. You can create or update it by executing php bin/update-config.php.

User management

Currently, you have to manage users directly in the database. An easier user management is planed for one of the next releases.

Create a new user

  • Connect to your database
  • Create a new entry in the teams table
    • id: NULL or omit the field (Use next auto increment value)
    • name: An unique name not containing any special characters (especially NOT a slash "/")
    • title: The title for the team
  • Create an entry for each user in the users table
    • id: NULL or omit the field (Use next auto increment value)
    • username: The username you want to use
    • additionalInfo: Any additional information for the user (or NULL or omit the field)
    • token: Any 32 character string which can be used for authorization (set to NULL or omit the field to disable token authorization)
  • Create an entry for each team member in the teammembers table
    • id: NULL or omit the field (Use next auto increment value)
    • teamId: id from the teams table
    • userId: id from the users table
    • startDate: NULL or a date in format "YYYY-MM-DD" on which the user joins in the team
    • endDate: NULL or a date in format "YYYY-MM-DD" on which the user leaves the team

Remove an existing user

  • Connect to your database
  • Delete the entry of the user you want to remove from the users table

Extensions

It is possible to extend some parts of Team Planer using extensions.

Currently, the following features are supported to be customized/implemented:

  • Login/Authentication (e.g. to implement LDAP or something else)
  • Display holidays (shows country specific holidays in the calendar)
  • Reports (generates a report which can be sent automatically via mail)

Extensions are located in the extensions folder in the root of this application which is not created by default.

Testing with Docker

  • Build and start the containers using docker compose up --build
  • Import sample data into the MySQL database: docker compose exec -T mysql mariadb -u teamplaner -pteamplaner teamplaner < sample_data.sql
  • The frontend will be available on http://localhost:8080.