Skip to content

The primary objective of the project is to create a Microservice that (1) returns a JSON payload, (2) performs a Data Engineering related task, and (3) incorporates Continuous Integration / Continuous Delivery (CI/CD).

License

Notifications You must be signed in to change notification settings

heath3rq/DataOps_Project-FastAPI-Flask

 
 

Repository files navigation

hq-individual_project4

GitHub Action for Continuous Integration [AWS CD

Project Description

The project is done for IDS 706 Data Engineering class at Duke University. The goal is to create a Microservice that returns a JSON payload and performs a Data Engineering related task. We are expected to perform Continuous Integration with Github Actions and configure build server to deploy changes on build for Continuous Delivery. Therefore, I built a menu generator app for one of my favorite restuarant. Both Flask and FastAPI were leveraged to display the randomly generated menus. I then enabled Continuous Integration with Github Actions and Continuous Delivery with AWS CodeBuild.

Data Flow Diagram

menu_generator

Demo Video

Project 4 - Heather Qiu - Menu Generator - Watch Video

Instructions To Replicate the Process Yourself

To run the python scripts after cloning the repository, type in your terminal: python .py. An example is python menu_fastapi_app.py. There will be a window pop-up on the bottom right corner of your Codespace instance to assess the temprorary web app. A sample output looks like:

{
Your meal includes: 
😋 Confit Mushrooms and Chicory Caesar as appetizers; 
🍕 Whole Fish as the main course; 
🍨 Church Basement Cookie & Bar Plate as dessert; 
🍸 Bottineau and Cobbler as your drink choices. 
💵 The total cost after gratuity and tax is $149.71.
}

About

The primary objective of the project is to create a Microservice that (1) returns a JSON payload, (2) performs a Data Engineering related task, and (3) incorporates Continuous Integration / Continuous Delivery (CI/CD).

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 60.7%
  • Dockerfile 26.6%
  • HTML 9.0%
  • Makefile 3.7%