/react-admin-demo-java-rest

Outdated - work in progress - React-Admin Demo + Java Spring Boot/MySQL REST Backend focused on very quick development

Primary LanguageJavaScript

React Admin Demo + Java Spring Boot/MySQL REST Backend

This is a demo of the react-admin library for React.js. It creates a working administration for a fake poster shop named Posters Galore. You can test it online at http://marmelab.com/react-admin-demo.

react-admin-demo

React-admin usually requires a REST/GraphQL server to provide data. In this bundle an exmaple Java spring boot REST api implementation is provided in the /backend folder

To explore the source code, start with src/App.js.

Note: This project was bootstrapped with Create React App.

How to run (Frontend)

After having cloned the repository, run the following commands at the repository root:

make install

make build

make run-demo

Available Scripts

In the project directory, you can run:

npm start

Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

npm test

Launches the test runner in the interactive watch mode.
See the section about running tests for more information.

npm run build

Builds the app for production to the build folder.
It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.
Your app is ready to be deployed!

npm run deploy

Deploy the build to GitHub gh-pages.

Back-End

This backend implementation is the result of considerable effort to use admin-on-rest as front-end but migrate away from Headless Drupal backend (PHP) to Java Spring backend/MySQL. The main reasons including: lack of versioning for backend changes (we had to take data dumps and keep a txt with Drupal changes), time consuming configuration of Views involving many entities and fields, in need of many (some times non-existing) Plugins to do common things, not native REST implementation, queries involving a ton of tables due to Drupal field reusability among different nodes, difficulty combining drupal tables with flat tables for big-data and analytics, etc..

Configuration

You need a database called demo. The credentials are being configured in application.properties. Open the project using existing resources and select Maven from IntelliJ Idea menu. Run ReactAdminDemoApplication.java that will start a Java Spring Boot Application on http://localhost:8080

Features

Future work

  • Make the project runnable through Maven - currently it is a IntelliJ Idea Maven project
  • Be able to combine results from Text Search and Exact Match filtering DONE
  • Indexes that might be missing currently
  • Swagger-UI needs to be excluded properly from authentication