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!
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.
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:
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
If you don't have Node and NPM installed, instructions here.
Run an initial build:
npm run dev
Additional Set Up Tips
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](https://github.com/devinsays/laravel-react-bootstrap/blob/master/docs/database-seeds.md).
After seeding the database, you can log in with these credentials:
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.md.