Developing a Sample App ========================= As outlined in the Developer Workflow :doc:`/developer_guide/application_developer_workflow/developing-applications/index` the most important first step is to design your application. This tutorial will create a simple application that will demonstrate the basic concepts of |software_prod_name| Application Orchestration. Design the application ---------------------- In the example we will create a simple web application that will maintain a counter from a microservice and display the current count on a web page. The microservice will be have a simple REST API that will allow querying, incrementing, decrementing and zeroing of the counter. .. figure:: ../images/app-orch-tutorial-design.png :alt: Tutorial Application Design Choose a framework and language ------------------------------- Choosing a framework and language is an important step in the development process. For this tutorial we will choose simple options that are easy to use and have a large community, and may be familiar to many developers. You should thoroughly research the options available and choose the best framework and language for your application. Tutorial Server ~~~~~~~~~~~~~~~~ Since this is a simple application, we will use the `FastAPI `_ framework to create the server portion. Fast API is a lightweight web framework written in `Python* `_ that is easy to use and has a built-in Swagger UI. This will allow us to easily test the API. Tutorial Web UI ~~~~~~~~~~~~~~~~ For the web UI we will use `Next.js\* framework `_ which is a progressive JavaScript\* framework that is easy to use and has a large community. It uses the `React `_ framework to create the UI components and we add use the `Axios `_ library to make the API calls. The development will be done in the `TypeScript `_ language and using the Next.js tools will be bundled and distributed as "minified" JavaScript language to work with all modern browsers. Ultimately it is the Web Browser that will run the Tutorial Web UI application - the microservices role is just serving up the static HTML, CSS, and (minified) JavaScript files. For this we will use the `NGINX* `_ web server, which has many other functions that help up route the traffic to the Tutorial Server application. .. note:: The web UI could be developed using any number of frameworks and languages. The choice of Next.js framework was made because it is easy to use and has a large community. Also there are many other Web Servers that could be used to serve the pages (including a CDN - Content Delivery Network), but we want to keep it in the microservice and have the same method of deployment for both front end code and back end code. .. toctree:: :hidden: :maxdepth: 1 developing-tutorial-server developing-tutorial-web-ui