A collaborative event planner and calendar website built with Laravel.
- Laravel 5.7+ https://laravel.com/docs/5.7#server-requirements
- Composer
- NPM
- Clone Repo
- Make a local copy of
.env.exampleviacp .env.example .env. Edit the.envfile with local settings. - Install the dependencies with
npm installandcomposer install - Create an app key:
php artisan key:generate - Create a symbolic link for the storage folder:
php artisan storage:link - Create the
groupcalendardatabase table (or whatever table name you set in the.envfile) - Create the database table and seed the demo users/groups:
php artisan migrate:fresh --seed- You may need to update Laravel permissions: https://laravel.com/docs/5.8/installation#configuration
- You may need to create the following
/storage/app/public/directories if they don't exist:groupseventsavatarsflyers
- Generate the CSS and JS assets:
npm run dev- Dev assets including sourcemaps.npm run watch- Update the dev assets when the source assets are updated.npm run prod- Production assets including minification and version busting.
- GroupCalendar uses a queue system to offload event flyer PDF generation. For dev you can use the default
syncdriver for the queue jobs to be processed immediately or you can use thedatabasedriver and Supervisor to manage the queues:- Install Supervisor to manage queue workers:
sudo apt-get install supervisor - Create
groupcalendar-worker.conffile in the Supervisor config directory, usually found at/etc/supervisor/conf.d(replace the directory below with your dev directory):
[program:groupcalendar-worker] process_name=%(program_name)s_%(process_num)02d command=php /var/www/groupcalendar/artisan queue:work --sleep=3 --tries=5 autostart=true autorestart=true user=www-data numprocs=8 redirect_stderr=true stdout_logfile=/var/www/groupcalendar/log/worker.log- Start the GroupCalendar queue processes:
sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start groupcalendar-worker:* - Install Supervisor to manage queue workers:
- If you are using the
databasedriver, but not using Supervisor, you will need to run artisan queue commands:php artisan queue:work --tries=5- Start working queue jobs, allow 5 attempts per job and then the job will be marked as failed.php artisan queue:restart- Restart the queue worker, required after any change to the code as queue workers will not pick up any code changes without a restart.
