This is a development branch which will contain lots of refactoring of 1.0.x-dev.
php app/check.php
and resolve any errors before doing ANYTHING else.cp app/config/parameters.yml.dist app/config/parameters.yml
sender_email
is the email address of the automated email account you want to use.secret
is used for CSRF validation. Set this to some random characters. An ideal value would be a random sha256 hash.www-data
with your web server user.
chmod +a
:$ rm -rf app/cache/ $ rm -rf app/logs/ $ sudo chmod +a "www-data allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs $ sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs
$ sudo setfacl -R -m u:www-data:rwX -m u:`whoami`:rwX app/cache app/logs $ sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs
umask(0002);
to the beginning of app/console, web/app.php, and web/app_dev.phpphp composer.phar install --prefer-dist
php app/console doctrine:database:create
if you have not already created a database for OpenSkedge.php app/console doctrine:schema:update --force
php app/console doctrine:fixtures:load
to bootstrap the application with some needed information (groups) and a default admin account with the username admin
and the password admin
.php app/console --env=prod cache:clear
to clear and warmup the application's cache. prod
should be replaced with dev
if you're running in a development environment.php app/console --env=prod assets:install
to install Assetic assets into the web root. prod
should be replaced with dev
if you're running in a development environment.git pull
to fetch the latest changes to OpenSkedge. If you've made changes to OpenSkedge, you'll either want to stash them or commit them and use git pull --rebase
.php composer.phar install
php app/console doctrine:migrations:migrate
. NOTE: Only supports MySQL. This should be pretty safe but if issues occur, you should be able to roll back by migrating down. That said, it's probably best to test the migration on your development server before pushing it to production. Read more about using migrations at the Doctrine project's docs.
php app/console doctrine:schema:update --force
.php app/console --env=prod cache:clear
to clear and warmup the application's cache. prod
should be replaced with dev
if you're running in a development environment.php app/console --env=prod assets:install
to install Assetic assets into the web root. prod
should be replaced with dev
if you're running in a development environment.OpenSkedge depends on the use of a background worker or cron jobs to handle things like checking for late employees, archiving time clock records, and dispatching spooled emails.
This is a naive background worker process using a long-running PHP-CLI process. Historically, PHP has had issues with memory leaks when running for long periods of time, so you may want to either recycle this periodically (using something like supervisord) or opt for using cron.
php app/console openskedge:worker:run
- Checks for late employees, prunes old time clock records, and dispatches spooled emails every 10 minutes
If you're concerned about memory usage with the background worker or need more flexibility in scheduling background tasks, you can also run a few commands on their own & schedule them as cron jobs.
php app/console openskedge:clock:check-late
- Checks for late employees
php app/console openskedge:clock:prune --no-interaction
- Prunes old time clock records (configured in OpenSkedge settings)
php app/console --no-interaction swiftmailer:spool:send
- Dispatches spooled emails. Only needed if Swiftmailer is setup to spool emails (default).
OpenSkedge is a reinvention of Employee Scheduler, a flexible employee scheduling application designed for companies and organizations (such as education institutions with student workers) which require fluid shift scheduling.
OpenSkedge is not a general purpose, or a one-stop everything-but-the-kitchen-sink scheduling application. It's for assigning positions to people at certain times during certain time periods that they have marked themselves available. It won't schedule your meetings.
Max Fierke, a developer and student at the University of Minnesota. He does a lot of other stuff too. He created OpenSkedge during his freshman year. He also has a site you can go to.
OpenSkedge, technically a derivative work of Employee Scheduler, is available under the GNU General Public License version 3 or later. See src/OpenSkedge/AppBundle/Resources/meta/LICENSE for more details.
Max Fierke
Homepage: www.maxfierke.com
Twitter: @m4xm4n
Github: @maxfierke