mariadb-developers / places-app-r2dbc-spring

Places is a web application that allows you to record all of your favorite locations using both structured (relational) and semi-structured (JSON) data! The Places app contains a React.js front-end and Java (Maven) project back-end, which utilizes MariaDB Connector/R2DBC and Spring Data R2DBC.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Places

Places is a web application backed by the power, performance, and simplicity of MariaDB, allows you to record all of your favorite locations using both structured (relational) and semi-structured (JSON) data!

This application is made of two parts:

This README will walk you through the steps for getting the Places web application up and running using MariaDB.

Table of Contents

  1. Requirements
  2. Getting started with MariaDB and JSON
  3. Get the code
  4. Configure, build and run the apps
    1. Configure
    2. Build and run the API app
    3. Build and run the Client app
  5. JSON Data Models
  6. Support and contribution
  7. License

Requirements

This sample application requires the following to be installed/enabled on your machine:

1.) Getting Started with MariaDB and JSON

Set up a MariaDB database, loaded with the data this sample needs, using the MariaDB JSON Quickstart, before continuing to the next step.

2.) Get the code

First, use git (through CLI or a client) to retrieve the code using git clone: Ts

$ git clone https://github.com/mariadb-developers/places-app-nodejs.git

Next, because this repo uses a git submodule, you will need to pull the client application using:

$ git submodule update --init --recursive

3.) Configure, Build and Run the App

This application is made of two parts:

The following steps, a through c, will walk you through the process of configuring, building and running the api and client applications.

a.) Configure the app

Configure the MariaDB connection with your connection details in application.properties.

Example implementation:

spring.r2dbc.url=r2dbc:mariadb://localhost:3306/places
spring.r2dbc.username=root
spring.r2dbc.password=Password123!

b.) Build and run the Java API app

Once you have retrieved a copy of the code you're ready to build and run the project! Start by opening a terminal and navigating to the root of the api folder, then...

i. Build the project by executing the following CLI command:

$ mvn package

ii. Run the project by executing the following CLI command:

$ mvn spring-boot:run

c.) Build and run the UI (Client) app

Once the API project is running you can now communicate with the exposed endpoints directly (via HTTP requests) or with the application UI, which is contained with the client folder of this repo.

To start the client application follow the instructions here.

JSON Data Models

Below are samples of the data model per Location Type.

Attraction (A)

{
   "category":"Landmark",
   "lastVisitDate":"11/5/2019"
}

Restuarant (R)

{
   "details":{
      "foodType":"Pizza",
      "menu":"www.giodanos.com/menu"
   },
   "favorites":[
      {
         "description":"Classic Chicago",
         "price":24.99
      },
      {
         "description":"Salad",
         "price":9.99
      }
   ]
}

Sports Venue (S)

{
   "details":{
      "yearOpened":1994,
      "capacity":23500
   },
   "events":[
      {
         "date":"10/18/2019",
         "description":"Bulls vs Celtics"
      },
      {
         "date":"10/21/2019",
         "description":"Bulls vs Lakers"
      },
      {
         "date":"11/5/2019",
         "description":"Bulls vs Bucks"
      },
      {
         "date":"11/5/2019",
         "description":"Blackhawks vs Blues"
      }
   ]
}

Support and Contribution

Please feel free to submit PR's, issues or requests to this project project directly.

If you have any other questions, comments, or looking for more information on MariaDB please check out:

Or reach out to us diretly via:

License

License

About

Places is a web application that allows you to record all of your favorite locations using both structured (relational) and semi-structured (JSON) data! The Places app contains a React.js front-end and Java (Maven) project back-end, which utilizes MariaDB Connector/R2DBC and Spring Data R2DBC.

License:MIT License


Languages

Language:Java 100.0%