Microservices Architecture (Module)
THIS MODULE IS CURRENTLY UNDER CONSTRUCTION
Overview
Title |
Microservices Architecture (Module). |
---|---|
Overview |
A series of activities and accompanying example code to teach students about the microservices architecture and how to implement simple one in Javascript |
Prerequisites |
Command line, version control with Git, intermediate coding |
Learning Objectives |
After successfully completing this activity, the learner should be able to:
Modify existing system to add new endpoint specs in OpenAPI, implement endpoints in NodeJS/Express, simple MongoDB operations, implement frontend modifications in Angular |
Process Skills Practiced |
What process skills will the student practice while completing this module? |
LibreFoodPantry Microservices Example and Activities
Background
- Is there background reading/video/website content?
- What is the expected knowledge level of the student?
- What is the rationale for this module?
- Include helpful hints to faculty here.
Sequence/Sub-Path
Include the sequence of activities.
Topic | Activity | Deliverable | Length | Notes |
---|---|---|---|---|
Introduction to the Domain: HFOSS, LibreFoodPantry, and Bear Necessitities Market OrderModule | 01-Domain Introduction | Stub only | ||
Installing Docker | 02-Installing Docker | Docker installed and running on the student's machine | Could be homework or in-class activity | |
Containerization with Docker | 03-Containerization Docker | Understanding of advantages of containerization over virtual machines | In-class activity | |
Software Architectures from Monolith to Microservices | 04-Microservices Architecture | Understanding of differences between monolith and microservices | In-class activity | |
Introduction to REST API Calls | 05-IntroductionRest | Understanding how REST API calls are used to communicate with a backend | In-class activity | |
Exploring REST API Calls | 06-ExploringREST | Using tools to make REST API calls to a backend | In-class activity | |
Designing REST API Calls | 07-Designing REST | Understanding the OpenAPI Specification for a backend | In-class activity | |
Exploring REST API Implementation | 08-Exploring REST Implementation | Understanding of the backend implementation code written in NodeJS/Express | In-class activity | |
Exploring the Persistence Layer using a Document Database | 09-Exploring Persistence | Stub only | ||
Exploring the Implementation of Persistence using a Document Database | 10-Exploring Persistence Implementation | Stub only | ||
Implementing New REST API Calls | 11-Implementing REST | Add the implementation of new REST API calls | In-class or homework. These problems need to be updated for the new example. | |
Exploring the Implementation of a Simple REST API Front End | 12-Simple Front End | Understanding the implementation of a simple frontend using Angular | In-class activity. This activity needs to be rewritten to use VueJS. | |
Designing Components for a Front End | 13-Exploring Front End | Stub only | ||
Implementing New Functionality for a Front End | 14-Implementing Front End | Stub only |
ACM BoK Area & Unit(s) |
What ACM Computing Curricula 2013 knowledge area and units are covered? |
---|---|
ACM BoK Topic(s) |
What specific topics are addressed? |
Difficulty |
Is this module easy, medium, or hard? |
Estimated Time to Complete |
How long should a typical student take to complete the module? |
Environment / Materials |
What does the student need? (e.g. Internet access, IRC client, Git Hub account, LINUX machine, etc.) |
Author(s) |
Karl R. Wurst and Stoney Jackson |
Source |
Is there another module on which this module is based? If so, please provide a link to the original resource. |
License |
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License |
For this blank format: This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License