React Web App with Java API and PostgreSQL

A blueprint for getting a React web app with a Java API and a PostgreSQL - Flexible Server on Azure. The blueprint includes sample application code (a ToDo web app) which can be removed and replaced with your own application code. Add your own source code and leverage the Infrastructure to get up and running quickly. This architecture is for running containerized apps or microservices on a serverless platform.

Let's jump in and get this up and running in Azure. When you are finished, you will have a fully functional web app deployed to the cloud. In later steps, you'll see how to setup a pipeline and run the application.

"Screenshot of deployed ToDo app"

Screenshot of the deployed ToDo app

Prerequisites

The following prerequisites are required to use this application. Please ensure that you have them all installed locally.

If you are using Azure Developer CLI with the version lower than 1.2.0, then you will need to enable the feature for Azure Spring Apps support manually by the following command:

azd config set alpha.springapp on

🚁 How to run locally

To run the project on the localhost:

  • mvn clean package -DskipTests
  • java -jar web/target/${artifact-name}-web-0.0.1-SNAPSHOT.jar

You can also use Maven Wrapper with:

  • chmod +x mvnw
  • ./mvnw spring-boot:run -f web/pom.xml

How to deploy on Azure

  1. Log in to azd. Only required once per-install.
    azd auth login * If you are on Windows, install powershell
  2. Navigate to the generated project directory and run
    azd up

After the command is executed, you can see the following log signs that the deployment was successful.

[INFO] Deployment(default) is successfully updated.
[INFO] Deployment Status: Running
[INFO] Getting public url of app(simple-todo-web)...
[INFO] Application url: https://<your-azure-spring-apps-name>-simple-todo-web.azuremicroservices.io

The output Application url is the endpoint to access the todo application.

Application Architecture

This application utilizes the following Azure resources:

Here's a high level architecture diagram that illustrates these components. Notice that these are all contained within a single resource group, that will be created for you when you create the resources.

"Application architecture diagram"

This template provisions resources to an Azure subscription that you will select upon provisioning them. Please refer to the Pricing calculator for Microsoft Azure and, if needed, update the included Azure resource definitions found in infra/main.bicep to suit your needs.

Application Code

This template is structured to follow the Azure Developer CLI. You can learn more about azd architecture in the official documentation.

Next Steps

  • Try Azure for free, you can start with $200 Azure credit.

  • To help you get started, Azure Spring Apps have monthly FREE grants on all plans – 50 vCPU Hours and 100 memory GB Hours per plan.

  • To learn more about this project, check here.

  • At this point, you have a complete application deployed on Azure. But there is much more that the Azure Developer CLI can do. These next steps will introduce you to additional commands that will make creating applications on Azure much easier. Using the Azure Developer CLI, you can delete the resources easily.

  • azd down - to delete all the Azure resources created with this template

Additional azd commands

The Azure Developer CLI includes many other commands to help with your Azure development experience. You can view these commands at the terminal by running azd help. You can also view the full list of commands on our Azure Developer CLI command page.

Reporting Issues and Feedback

If you have any feature requests, issues, or areas for improvement, please file an issue. To keep up-to-date, ask questions, or share suggestions, join our GitHub Discussions. You may also contact us via AzDevTeam@microsoft.com.