dsd-meetme/backend

A meeting planner for companies with efficiency and simplicity in mind

v0.2.5 2016-01-11 20:23 UTC

README

Build status: Build Status Scrutinizer Code Quality Code Coverage Build Status Latest Stable Version Total Downloads Latest Unstable Version License

This application uses laravel 5.1.* (a php framework)

Here the entire site: plunner.com

Api example web server: http://api.plunner.com. It is just an example, so we don't guarantee that everything works

N.B. You need also the frontend application

How to install

  1. Clone repository
  2. Install dependencies with composer composer install (http://getcomposer.org)

or simply

composer create-project dsd-meetme/backend (this gets the last stable version)

How to configure

  1. Create database
  2. Configure database data in .env file
  3. Configure private keys in .env file
    1. JWT_SECRET via php artisan jwt:generate
    2. APP_KEY via php artisan key:generate
  4. perform php artisan migrate
  5. configure urls in config/app.php (this only for real environment)
  6. this must be installed on the root of the virtual host
  7. configure crontab * * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1 to optimise and caldav import
  8. install GLPSOL https://en.wikibooks.org/wiki/GLPK/Linux_packages (needed for optimisation task -> finding perfect meeting slot)
  9. configure additional things like emails, optimisation and so in the config files

How to develop

Use phpstorm is one of the best solution, since it has laravel plugin.

After cloning and installing repository:

  1. Run php artisan ide-helper:generate and php artisan ide-helper:meta, so you create meta files for autocomplete in the IDE.
  2. Run php artisan ide-helper:models each time models are updated (not in other case) and only if models are updated.
  3. Install laravel plugin

How to test with phpstorm

  • Use phunit 4.* not 5
  • execute as test phpunit.xml

Notes

  • You should insert your name as author in composer file
  • We use UTC time
  • In real environment you should use apache2
  • To not to perform tests of console tasks, since they can be have problems on windows and they need specif software, set the following env variable DO_CONSOLE_TESTS=false
  • exec calls must be enabled in php-cli
  • tmp dir permissions needed
  • The library is tested only on linux, we don't know the behaviour of critical parts (optimisation and caldav sync) on other systems
  • Details about application https://docs.google.com/document/d/1BqwZzRVEWS6Hk68mLSufbqHMNTo78aXbwT0a0AFqOFY/edit?usp=sharing
  • after 30 days you have to re-login, this for security reasons to avoid that a malicious guy can use the token to get new tokens and he stays always connected even if you change password

Credits