symfony-react-restful-boilerplate
symfony-react-restful-boilerplate copied to clipboard
Symfony 4 + React (with Flow, Redux, Bootstrap 4 and other stuff) + JWT implementation + PostgreSQL
Symfony-React RESTful Boilerplate
A boilerplate with two separated applications: RESTful API (created through the Symfony 4 PHP framework) and SPA (the React JavaScript library respectively). It contains a user implementation with advanced functions suitable for most projects. The following features are included:
- JWT authentication
- Registration
- Account management
- Confirmation via email (password reset, account activation, email change)
- Administrative interface
The main components of the Symfony part:
- Annotations (FrameworkExtraBundle)
- Doctrine
- Doctrine Migrations
The main components of the React part:
- Webpack
- Babel (ES6+ and JSX)
- Hot Module Replacement
- Flow
- ESLint
- Redux
- Bootstrap 4
Installation
Symfony
- Install application dependencies:
composer install
- Configure parameters in the
config/packages/doctrine.yamland.envfiles according to your needs. - Generate secret keys for JWT:
php bin/console lexik:jwt:generate-keypair
- Create the database:
php bin/console doctrine:database:create
- Create the schema migration and migrate it:
php bin/console doctrine:migrations:diff
php bin/console doctrine:migrations:migrate
- Create a super administrator:
php bin/console app:create-super-admin [email protected] password
React
- Install application dependencies:
yarn install
- Generate library definitions for dependencies (use this command when you add new third-party libraries into your code):
yarn run flow-typed install
- Change URLs in the
src/constants/callConstants.jsfile on your own way. - Run the application in a development mode:
yarn run start
Commands
Symfony
php bin/console list- lists all available commands
React
yarn run start- starts a development server that provides live reloadingyarn run build- launches a build process for a productionyarn run flow- runs the Flow libraryyarn run lint- runs the ESLint library