This repository contains a curated set of microservices, REST APIs, and OpenAPI/Swagger demonstration projects. Each project is designed to teach a specific concept in modern API and microservice development.
- 01_flask-hello-world-server — Simple Flask REST API (hello world)
- 02_list-universities-microservices — University listing and website microservices
- 03_weather_microservice — Weather API microservice
- 04_stock-price-microservice — Stock price API microservice
- 05_geocoding-microservice — Geocoding API microservice
- 06_attractions-microservice — Tourist attractions API microservice
- 07_astronomy-info-microservice — Astronomy info API microservice
- 08_country-info-microservice — Country info API microservice
- 09_research-papers-microservice — Research papers API microservice
- 10_graphql-city-state-microservice — GraphQL API for city/state info
- 11_swagger-example-microservice — Swagger/OpenAPI demonstration microservice
- 12_swagger-techtasks-microservice — Technology tasks API with Swagger/OpenAPI
- 13_openapi-demo — Minimal Flask API with OpenAPI 3.0 spec
- 14_openapi-crud-demo — CRUD API with OpenAPI 3.0, pytest automation
- Start with project 01 for basic REST concepts
- Progress through each project to learn data handling, API documentation, and automation
- Use the README in each project for setup and usage instructions
- See
doc/pytest_automation.mdand14_openapi-crud-demo/TESTING.mdfor testing and automation guidance
The Product Price Comparison Application is a microservices-based project designed to demonstrate a multi-service architecture for comparing product prices across different dealers. It is organized as follows:
- Backend Microservices:
dealer_evaluation_backend/products_list(Flask, Python): Serves product and dealer data from a localproducts.jsonfile via REST endpoints.dealer_evaluation_backend/dealer_details(Express, Node.js): Provides price data for products and dealers, reading fromutils/dealers.json.
- Frontend:
dealer_evaluation_frontend(Flask, Python): Serves a static HTML interface (html/index.html) for users to interact with the application.
- The frontend presents a user interface for selecting products and viewing price comparisons.
- It communicates with the backend microservices via HTTP requests:
- Fetches product and dealer lists from the products_list service.
- Retrieves price information from the dealer_details service.
- All persistent data is stored in local JSON files within each service; there is no shared database.
- Products List Service (Flask):
/products: Returns available products and dealers./getdealers/<product>: Returns dealers for a specific product.
- Dealer Details Service (Express):
/price/:dealer/:product: Returns the price for a given dealer and product./allprice/:product: Returns all prices for a given product.
- Frontend (Flask):
/: Serves the main HTML page.
Each service is self-contained with its own requirements.txt or package.json and Dockerfile. To run locally:
- Install dependencies for each service (Python:
pip install -r requirements.txt, Node.js:npm install). - Start each backend and frontend service individually (Python:
python app.py, Node.js:node server.js). - Access the frontend in your browser to use the application.
Each service can be built and run as a Docker container using the provided Dockerfile in each directory.
- All cross-service communication is via HTTP endpoints.
- No direct database or message queue integration; all data is local to each service.
For more details, see the Product_Price_Comparison_Application/ directory and the individual service READMEs.
- Python (Flask)
- Node.js (Express, GraphQL)
- Swagger UI, Swagger Editor, SwaggerHub
- Pytest, pytest-cov, pytest-html
- GitHub Actions for CI/CD
This learning path is designed for hands-on mastery of microservices, REST APIs, OpenAPI/Swagger, and automation best practices.
k11 Software Solutions is a leading provider of modern, AI-powered test automation, DevOps, and quality engineering services. We help organizations accelerate digital transformation with robust, scalable, and intelligent automation solutions tailored for SaaS, web, and enterprise platforms.
- Website: https://k11softwaresolutions.com
- Contact: k11softwaresolutions@gmail.com
Partner with us to future-proof your QA and automation strategy!



