Laravel-Tasks is a Complete Build of Laravel 5.2 with Individual User Task Lists

Overview

laravel-tasks License

All Contributors

Laravel-Tasks is a Complete Build of Laravel 5.2 with Individual User Task Lists

COMPLETE WORKING BUILD - R2R.

Laravel 5.2 with user authentication, password recovery, and individual user tasks lists. This also makes full use of Controllers for the routes, templates for the views, and makes use of middleware for routing. Uses laravel ORM modeling and has CRUD (Create Read Update Delete) functionality for all tasks.

This has robust verbose examples using Laravel best practices. The task list is a build out of https://laravel.com/docs/5.2/quickstart.

Super easy setup, can be done in 5 minutes or less.

A Laravel 5.2.x with minimal Bootstrap 3.5.x project.
Laravel-Tasks Features
Built on Laravel 5.2
Uses MySQL Database
Uses Artisan to manage database migration, schema creations, and create/publish page controller templates
Dependencies are managed with COMPOSER
CRUD (Create, Read, Update, Delete) Tasks Management
User Registration with password reset via Email
User Login with remember password

Quick Project Setup

(Not including the dev environment)
  1. Run sudo git clone https://github.com/jeremykenedy/laravel-tasks.git laravel-tasks
  2. Create a MySQL database for the project
    • mysql -u root -p, if using Vagrant: mysql -u homestead -psecret
    • create database laravelTasks;
    • \q
  3. From the projects root run cp .env.example .env
  4. Configure your .env
  5. Run sudo composer update from the projects root folder
  6. From the projects root folder run sudo chmod -R 755 ../laravel-tasks
  7. From the projects root folder run php artisan key:generate
  8. From the projects root folder run php artisan migrate
  9. From the projects root folder run composer dump-autoload

And thats it with the caveat of setting up and configuring your development environemnt. I recommend VAGRANT or the Laravel configured instance of Vagrant called HOMESTEAD.

View the Project in Browser

  1. From the projects root folder run php artisan serve
  2. Open your web browser and go to http://localhost

Laravel-Tasks Authentication URL's (routes)

  • /
  • /auth/login
  • /auth/logout
  • /auth/register
  • /password/reset

Laravel-Tasks URL's (routes)

  • /home
  • /tasks
  • /tasks/create
  • /tasks/{id}/edit
  • /tasks-all
  • /tasks-complete
  • /tasks-incomplete

Laravel Developement Packages Used References


Laravel PHP Framework

Build Status Latest Stable Version Total Downloads License

Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable, creative experience to be truly fulfilling. Laravel attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as authentication, routing, sessions, and caching.

Laravel aims to make the development process a pleasing one for the developer without sacrificing application functionality. Happy developers make the best code. To this end, we've attempted to combine the very best of what we have seen in other web frameworks, including frameworks implemented in other languages, such as Ruby on Rails, ASP.NET MVC, and Sinatra.

Laravel is accessible, yet powerful, providing powerful tools needed for large, robust applications. A superb inversion of control container, expressive migration system, and tightly integrated unit testing support give you the tools you need to build any application with which you are tasked.

Official Laravel Documentation

Documentation for the entire framework can be found on the Laravel website.

Contributing To Laravel

All Laravel Framework related issues and pull requests should be filed on the laravel/framework repository.

Laravel License

The Laravel framework is open-sourced software licensed under the MIT license

Bootstrap Front-End Framework

Build Status Bower version npm version devDependency Status License

Bootstrap is a sleek, intuitive, and powerful front-end framework for faster and easier web development, created by Mark Otto and Jacob Thornton, and maintained by the core team with the massive support and involvement of the community.

Bootstrap's documentation, included in this repo in the root directory, is built with Jekyll and publicly hosted on GitHub Pages at http://getbootstrap.com.


Development Environement References and help

VAGRANT Dev Environment References

VAGRANT Virtual Machine Details
Item Value:
Hostname homestead
IP Address 192.168.10.10
Username vagrant
SU Password vagrant
Database Host 127.0.0.1
Database Port 33060
Database Username homestead
Database Password secret
Start VAGRANT
Command Action
vagrant up Start Vagrant VM
vagrant up --provision Start Vagrant VM if vagrantfile updated
vagrant halt Stop Vagrant VM
Access VAGRANT SSH and MySQL

|Command |Action | |------------- |:------------- |:-------------| | sudo ssh [email protected] -p 222 | Access Vagrant VM via SSH. Password is vagrant | | mysql -u homestead -psecret | Access Vagrant VM MySQL. Password is vagrant |

If you do not have Bower, it can be installed using Node Package Manager (NPM). If you do not have NPM, it can be installed using NODE JS.

###Install NODE JS ####Node JS can be installed muliple ways: Mac GUI Installer, easiest way (Simply Download and Install)

####Node JS can also be installed using Homebrew Package Manager with the following command:

brew install node

###Install Node Package Manager (NPM) ####NPM can be installed using the following command:

npm install -g bower

###Install Bower ####Bower can be installed with the following command:

sudo npm install -g bower

###Install GULP ####GULP can be installed using the following command:

npm install -g gulp

###Install COMPOSER

####COMPOSER can be installed using the following commands:

sudo curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

####COMPOSER on MAC OS X can be installed using the following commands:

sudo brew update
sudo brew tap homebrew/dupes
sudo brew tap homebrew/php
sudo brew install composer

Very Helpful Aliases

You can edit/or create your systems (MAC OS X) alias file with the follwing command:

sudo vim ~/.bash_profile

To update TERMINAL CLI to be able to use the the added aliases run the following command:

. ~/.bash_profile
You can choose all or some of the following aliases to add to your .bash_profile:
Vagrant/Homestead Aliases
alias machost='sudo vim /etc/hosts'
alias edithost='sudo vim /etc/hosts'
alias sshlara='sudo ssh [email protected] -p 2222'
alias laraedit='vim ~/.homestead/Homestead.yaml '
alias aliaslara='vim ~/.homestead/aliases'
alias laraalias='vim ~/.homestead/aliases'
alias sql='mysql -u homestead -psecret'
alias larasql='mysql -u homestead -psecret'
alias updatecomposer='sudo composer self-update'
alias rollbackcomposer='sudo composer self-update --rollback'

A helpful bashfile alias function to start VAGRANT instance:

function laraup {
  _pwd=$(pwd)
  startVM(){
    vagrant up --provision
  }
  echo "=============================================================================="
  echo "****** STARTING LARAVEL VAGRANT INSTANCE "
  echo "=============================================================================="
  cd ~/Homestead/
  if startVM ; then
    echo "=============================================================================="
    echo "****** SUCCESS - LARAVEL VAGRANT STARTED :)~"
    echo "=============================================================================="
  else
    echo "=============================================================================="
    echo "****** ERROR - LARAVEL VAGRANT DID NOT START :("
    echo "=============================================================================="
  fi
  cd $_originalDir
}

A helpful bashfile alias function to shutdown/halt/stop VAGRANT instance:

function laradown {
  _pwd=$(pwd)
  stopVM(){
    vagrant halt
  }
  echo "=============================================================================="
  echo "****** STOPPING LARAVEL VAGRANT INSTANCE "
  echo "=============================================================================="
  cd ~/Homestead/
  if stopVM ; then
    echo "=============================================================================="
    echo "****** SUCCESS - LARAVEL VAGRANT SHUTDOWN :)~"
    echo "=============================================================================="
  else
    echo "=============================================================================="
    echo "****** ERROR - LARAVEL VAGRANT DID SHUTDOWN :("
    echo "=============================================================================="
  fi
  cd $_originalDir
}

A helpful bashfile alias function to remove VAGRANT instance:

function larakill {
  _pwd=$(pwd)
  killVM(){
    vagrant destroy
  }
  echo "=============================================================================="
  echo "****** DESTROYING LARAVEL VAGRANT INSTANCE "
  echo "=============================================================================="
  cd ~/Homestead/
  if killVM ; then
    echo "=============================================================================="
    echo "****** SUCCESS - LARAVEL VAGRANT DESTROYING :)~"
    echo "=============================================================================="
  else
    echo "=============================================================================="
    echo "****** ERROR - LARAVEL VAGRANT WAS NOT DESTROYING :("
    echo "=============================================================================="
  fi
  cd $_originalDir
}
General Very Helpful Aliases
Cleanup

A nice alias to list all the MAC and OSX filesystem booger:

alias cleanprint='
find . -name "*.DS_Store" -print;
find . -name "*.DS_Store" -print;
find . -name "*._DS_Store" -print;
find . -name "._.DS_Store" -print;
find . -name ".DS_Store" -print;
find . -name "Thumbs.db" -print;
find . -name "._.*" -print;
find . -name "._*" -print ;
'

A nice alias to delete all the MAC and OSX filesystem booger:

alias cleanrm='
find . -name "*.DS_Store" -delete;
find . -name "*.DS_Store" -delete;
find . -name "*._DS_Store" -delete;
find . -name "._.DS_Store" -delete;
find . -name ".DS_Store" -delete;
find . -name "Thumbs.db" -delete;
find . -name "._.*" -delete;
find . -name "._*" -delete ;
'

A nice alias to list and delete all the MAC and OSX filesystem boogers:

alias cleanboth='
find . -name "*.DS_Store" -print;
find . -name "*.DS_Store" -print;
find . -name "*._DS_Store" -print;
find . -name "._.DS_Store" -print;
find . -name ".DS_Store" -print;
find . -name "Thumbs.db" -print;
find . -name "._.*" -print;
find . -name "._*" -print ;
find . -name "*.DS_Store" -delete;
find . -name "*.DS_Store" -delete;
find . -name "*._DS_Store" -delete;
find . -name "._.DS_Store" -delete;
find . -name ".DS_Store" -delete;
find . -name "Thumbs.db" -delete;
find . -name "._.*" -delete;
find . -name "._*" -delete ;
'
Show MAC OS X files

Alias to show all hidden files on MAC OS X filesystem:

alias showfiles='defaults write com.apple.finder AppleShowAllFiles YES; killall Finder /System/Library/CoreServices/Finder.app'

Alias to hide all hidden files on MAC OS X filesystem:

alias hidefiles='defaults write com.apple.finder AppleShowAllFiles NO; killall Finder /System/Library/CoreServices/Finder.app'
GIT CLI Quick alias functions
Quick GIT PUSH
function quickpush {
    _currentBranch=$(git branch | sed -n -e 's/^\* \(.*\)/\1/p')
    sudo git add -A
    sudo git commit -m "quick push"
    sudo git push $_currentBranch
}
Another flavor of Quick GIT PUSH
function push {
    _currentBranch=$(git branch | sed -n -e 's/^\* \(.*\)/\1/p')
    sudo git add -A
    sudo git commit -m "quick push"
    sudo git push $_currentBranch
}
Quick GIT PULL
function quickpull {
    _currentBranch=$(git branch | sed -n -e 's/^\* \(.*\)/\1/p')
    sudo git pull $_currentBranch
}
Another flavor of Quick GIT PULL
function pull {
    _currentBranch=$(git branch | sed -n -e 's/^\* \(.*\)/\1/p')
    sudo git pull $_currentBranch
}
My keyboard hates me GIT helper aliases:
alias gut='git'
alias got='git'
alias car='cat'
alias commut='commit'
alias commmit='commit'
alias comit='commit'
alias commot='commit'
Typing clear takes too many keystrokes alias helper:
alias cl='clear'
Helpful quick filesystem ls alias helpers:
alias la='ls -la'
alias ll='ls -la'
Alias and .bash_profile management aliases:
Show Aliases helpers:
alias listalias='cat ~/.bash_profile'
alias aliaslist='cat ~/.bash_profile'
alias list='cat ~/.bash_profile'
alias text='cat ~/.bash_profile'
alias aliasshow='cat ~/.bash_profile'
Edit Aliases helpers:
alias aliasedit='sudo vim ~/.bash_profile'
alias editalias='sudo vim ~/.bash_profile'

Restart/Enable Aliases helpers:

alias aliasreset='. ~/.bash_profile'
alias aliasr='. ~/.bash_profile'
alias alr='. ~/.bash_profile'
alias alsr='. ~/.bash_profile'
alias aliasrestart='. ~/.bash_profile'

Things not working (Troubleshooting)?

Issue: Cannot access project through web browser after running vagrant up / homestead up
Error Message from Browser:
This webpage is not available
ERR_NAME_NOT_RESOLVED
1. Check Vagrant/Homestead configuration
a. Open configuration with the following command:

vim ~/.homestead/Homestead.yaml or laraedit

b. Check to make sure your folders are mapped (See example A1.):

Note: map: Is the path to the your files on your local machine to: Is the virtual file path to your projects that vagrant will create

Example A1
folders:
  - map: /Users/yourLocalUserName/Sites/project1
    to: /home/vagrant/Sites/project1/public

  - map: /Users/yourLocalUserName/Sites/project2
    to: /home/vagrant/Sites/project2/public
c. Check to make sure your projects URI and SYMLINK is mapped (See example A2):

map: Is the local URI of your project to: Is the virtual symlink to your projects virtual file path

Example A2
sites:
  - map: project1.local
    to: /home/vagrant/Sites/project1/public

  - map: project2.app
  to: /home/vagrant/Sites/project2/public

2. Check your local hosts file for local pointer redirect:

a. Open your hosts file (See example B1):

Note: Instructions are for Mac OS X

Example B1

sudo vim /etc/hosts or edithost

b. Edit your hosts file (See example B2):

Note: Replace examples URI used in Vargrant/Homestead configuration file and use the IP address of your local Vargrant/Homestead virtual machine instance

Example B2 - The last line is the important part of the example
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1        localhost
255.255.255.255  broadcasthost
192.168.10.10    laravel-authentication.local

Enjoy

~ Jeremy

Contributors

Thanks goes to these wonderful people (emoji key):

Jeremy Kenedy
Jeremy Kenedy

πŸ’» 🎨

This project follows the all-contributors specification. Contributions of any kind welcome!

You might also like...
A PHP implementation of a bare task loop.

TaskLoop A PHP implementation of a bare task loop. Installation. $ composer require thenlabs/task-loop 1.0.x-dev Usage. The file example.php contains

xcron - the souped up, modernized cron/Task Scheduler for Windows, Mac OSX, Linux, and FreeBSD server and desktop operating systems.

xcron is the souped up, modernized cron/Task Scheduler for Windows, Mac OSX, Linux, and FreeBSD server and desktop operating systems. MIT or LGPL.

Reset the live preset for debug settings with a task
Reset the live preset for debug settings with a task

Debug Settings Task This TYPO3 extension resets TYPO3 debug settings to the Β»liveΒ« preset on production using a scheduler task. Vision β€œBetter safe th

Elegant SSH tasks for PHP.

Laravel Envoy Introduction Laravel Envoy provides a clean, minimal syntax for defining common tasks you run on your remote servers. Using Blade style

Create a docker container where various tasks are performed with different frequencies

🚒 Docker with task scheduler Introduction The goal is to create a docker container where various tasks are performed with different frequencies. For

Crunz is a framework-agnostic package to schedule periodic tasks (cron jobs) in PHP using a fluent API.

Crunz Install a cron job once and for all, manage the rest from the code. Crunz is a framework-agnostic package to schedule periodic tasks (cron jobs)

Dispatcher is a Laravel artisan command scheduling tool used to schedule artisan commands within your project so you don't need to touch your crontab when deploying.
Dispatcher is a Laravel artisan command scheduling tool used to schedule artisan commands within your project so you don't need to touch your crontab when deploying.

Dispatcher Dispatcher allows you to schedule your artisan commands within your Laravel project, eliminating the need to touch the crontab when deployi

Manage Your Laravel Schedule From A Web Dashboard
Manage Your Laravel Schedule From A Web Dashboard

Introduction Manage your Laravel Schedule from a pretty dashboard. Schedule your Laravel Console Commands to your liking. Enable/Disable scheduled tas

Manage Your Laravel Schedule From A Web Dashboard
Manage Your Laravel Schedule From A Web Dashboard

Introduction Manage your Laravel Schedule from a pretty dashboard. Schedule your Laravel Console Commands to your liking. Enable/Disable scheduled tas

Comments
  • Unable to send password reset e-mail due to missing default From address in config/mail.php

    Unable to send password reset e-mail due to missing default From address in config/mail.php

    Swift_TransportException in AbstractSmtpTransport.php line 162: Cannot send message without a sender address.

    You should mention in the readme that this needs to be set or change it to read the value from .env and add it to the .env example.

    opened by thinsoldier 2
  • Tasks route resource seems to go against the official documentation.

    Tasks route resource seems to go against the official documentation.

    // USER TASKS ROUTES
    Route::resource('/tasks', 'TasksController');
    Route::resource('/tasks-all', 'TasksController@index_all');
    Route::resource('/tasks-complete', 'TasksController@index_complete');
    Route::resource('/tasks-incomplete', 'TasksController@index_incomplete');
    

    From both the 5.2 and 5.4 documentation:

    Supplementing Resource Controllers If it becomes necessary to add additional routes to a resource controller beyond the default resource routes, you should define those routes before your call to Route::resource; otherwise, the routes defined by the resource method may unintentionally take precedence over your supplemental routes. https://laravel.com/docs/5.4/controllers#restful-supplementing-resource-controllers

    I'm trying to update your project to Laravel 5.4 and asked a number of people to look at the original Task routes and they all said they can't believe these routes ever actually worked.

    They don't work in 5.4 and to get them to work I had to follow the advice of the docs and move the 1 actual resource route to be last and make all the others plain get routes.

    // USER TASKS ROUTES
    Route::get('/tasks-all', 'TasksController@index_all');
    Route::get('/tasks-incomplete', 'TasksController@index_incomplete');
    Route::get('/tasks-complete', 'TasksController@index_complete');
    Route::resource('/tasks', 'TasksController');
    
    opened by thinsoldier 1
Owner
Jeremy Kenedy
Love programming everyday. Practice compassion and kindness to all. Striving to be a better person and father. Love giving back and helping others.
Jeremy Kenedy
Laravel Cron Scheduling - The ability to run the Laravel task scheduler using different crons

Laravel Cron Scheduling Laravel Task Scheduling is a great way to manage the cron. But the documentation contains the following warning: By default, m

Sergey Zhidkov 4 Sep 9, 2022
Manage your Laravel Task Scheduling in a friendly interface and save schedules to the database.

Documentation This librarian creates a route(default: /schedule) in your application where it is possible to manage which schedules will be executed a

Roberson Faria 256 Dec 21, 2022
Task Scheduling with Cron Job in Laravel

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Shariful Islam 1 Oct 16, 2021
Modern task runner for PHP

RoboTask Modern and simple PHP task runner inspired by Gulp and Rake aimed to automate common tasks: writing cross-platform scripts processing assets

Consolidation 2.6k Jan 3, 2023
Awesome Task Runner

Bldr Simplified Build System/Task Runner Uses Yaml, JSON, XML, PHP, or INI for configs Quick Usage To develop, run ./script/bootstrap, and then ./scri

null 223 Nov 20, 2022
Pure PHP task runner

task/task Got a PHP project? Heard of Grunt and Gulp but don't use NodeJS? Task is a pure PHP task runner. Leverage PHP as a scripting language, and a

null 184 Sep 28, 2022
Modern task runner for PHP

RoboTask Modern and simple PHP task runner inspired by Gulp and Rake aimed to automate common tasks: writing cross-platform scripts processing assets

Consolidation 2.6k Dec 28, 2022
🐺 Asynchronous Task Queue Based on Distributed Message Passing for PHP.

?? Asynchronous Task Queue Based on Distributed Message Passing for PHP.

Ahmed 36 Aug 11, 2022
Flow Framework Task Scheduler

This package provides a simple to use task scheduler for Neos Flow. Tasks are configured via settings, recurring tasks can be configured using cron syntax. Detailed options configure the first and last executions as well as options for the class handling the task.

Flowpack 11 Dec 21, 2022
A versatile and lightweight PHP task runner, designed with simplicity in mind.

Blend A versatile and lightweight PHP task runner, designed with simplicity in mind. Table of Contents About Blend Installation Config Examples API Ch

Marwan Al-Soltany 42 Sep 29, 2022