A simple calendar allowing to plan recurring events in teams (e.g. shift planing).
- 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:
- If not already done, download the latest release.
- Execute
php bin/update-config.phpto create or update your configuration file - Edit the
config.jsonfile in theconfigfolder (See section Configuration for details) - Import database.sql into your MySQL database
- Configure your webserver so your document root points to the
httpdocsfolder - Create the users for your team (See section User management for details)
- Use it
- Use the Docker image
programie/teamplanerfrom Docker Hub - Create a
config.jsonfile 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
- Clone this repository:
git clone https://github.com/Programie/TeamPlaner.git - Execute
bin/build.shto build the application - Execute
php bin/update-config.phpto create or update your configuration file - Edit the
config.jsonfile in theconfigfolder (See section Configuration for details) - Import
database.sqlinto your MySQL database - Configure your webserver so your document root points to the
httpdocsfolder - Create the users for your team (See section User management for details)
- Use it
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.
Currently, you have to manage users directly in the database. An easier user management is planed for one of the next releases.
- Connect to your database
- Create a new entry in the
teamstable- 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
userstable- 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
teammemberstable- id: NULL or omit the field (Use next auto increment value)
- teamId: id from the
teamstable - userId: id from the
userstable - 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
- Connect to your database
- Delete the entry of the user you want to remove from the
userstable
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.
- 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.