Laravel React To Do App
An example To Do App built with Laravel and React. It includes:
- An auth API, using tymon/jwt-auth to manage the JSON Web Tokens.
- Routing with react-router (private, public and split routes).
- Feature tests.
- Database seeding.
- A base ApiController to help return standardized responses.
- Bootstrap for styling.
Use it as a base for quick prototypes or to learn from. Suggestions, recommendations, and pull requests welcome!
Demo Site
View a demo of the app at laravelreact.com.
(Password resets will not be sent from this server. Data will be cleared on a regular basis.)
Development Environment
This project runs on a LEMP stack (Linux, NGINX, MySQL, & PHP).
The backend built with Laravel. The frontend is 100% React.
If you don't already have a LEMP environment running, Valet is a good option for OSX.
Set Up
Clone the repository:
git clone https://github.com/devinsays/laravel-react-bootstrap
Create your environment file:
cp .env.example .env
The app key is used to salt passwords. If you need to work with production data you'll want to use the same app key as defined in the .env file in production so password hashes match.
Update these settings in the .env file:
- DB_DATABASE (your local database, i.e. "todo")
- DB_USERNAME (your local db username, i.e. "root")
- DB_PASSWORD (your local db password, i.e. "")
- HASHIDS_SALT (use the app key or match the variable used in production)
Install PHP dependencies:
composer install
If you don't have Composer installed, instructions here.
Generate an app key:
php artisan key:generate
Generate JWT keys for the .env file:
php artisan jwt:secret
Run the database migrations:
php artisan migrate
Install Javascript dependencies:
npm install
If you don't have Node and NPM installed, instructions here.
Run an initial build:
npm run development
Additional Set Up Tips
Database Seeding
If you need sample data to work with, you can seed the database:
php artisan migrate:refresh --seed --force
Read more in /docs/database-seeds.md.
Seeded User
After seeding the database, you can log in with these credentials:
Email: [email protected]
Password: password
Email Driver
Laravel sends emails for password resets. The default for MAIL_DRIVER in .env.example is log. You can view logged emails in storage/logs/laravel.log.
Other Notes
Internal Docs:
Laravel Docs:
Valet Tutorial:
https://scotch.io/tutorials/use-laravel-valet-for-a-super-quick-dev-server