A simple ToDo app that shows a random cat image after completing a task.
Implemented using Laravel, Bootstrap.
Features:
- Shows random cat images when a task is marked as completed. 🐱
- Responsive UI, works fine on desktops and mobile.
- Swipe tasks on mobile instead of pressing the checkbox (hammer.js).
- Categories (no custom categories yet).
- Add task to a category or without any categories.
- Update, delete tasks.
For development you can use Homestead virtual machine (via Vagrant) instead of manually installing all needed tools (PHP, web server, NPM, ...).
- Install VirtualBox and Vagrant.
- Install PHP (just interpreter, server not needed) and Composer. Go to the project root, run
composer install
andphp vendor/bin/homestead make
(for Windowsvendor\\bin\\homestead make
), this will generate configuration file, Homestead.yaml.
- Alternatively, you can follow Laravel Homestead documentation to install Homestead globally, it should not require PHP. https://laravel.com/docs/5.8/homestead
-
Add
cattodo
andcattodo-test
databases to Homestead.yaml.databases: - cattodo - cattodo-test
-
Run
vagrant up
, this should download, configure and launch the virtual machine. Follow Laravel Homestead and Vagrant documentation if it fails. On Windows you may need to run it from admin cmd to avoid issues with symlinks (e.g. when installing npm packages). -
Use
vagrant ssh
to connect into it. -
Run
make env
to create.env
file and generateAPP_KEY
. -
Run
make install
from the project dir in Vagrant (cd code
by default) to install packages and run database migrations, build frontend. -
Add the IP and domain from Homestead.yaml to your hosts file, e.g.
192.168.10.10 cattodo.test
. -
Open http://cattodo.test in your web browser.
See Makefile for other common tasks.
- Register an account (free), install Heroku CLI, login, etc. https://devcenter.heroku.com/articles/getting-started-with-php
heroku create
heroku buildpacks:add heroku/php
heroku buildpacks:add heroku/nodejs
heroku addons:create heroku-postgresql:hobby-dev
php artisan key:generate --show
heroku config:set APP_KEY = <key generated above>
heroku config:set LOG_CHANNEL=single
heroku config:set CAT_API_KEY=<key from https://thecatapi.com (free)>
git push heroku master
heroku run php artisan db:seed --force