Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

Microservices Architecture Design, Develop, Deploy

Assessment 2 – Programming Assignment 40%

INFS605 Microservices

Version 1.3

This assignment is worth 40% of your final grade for the course and is submitted on Canvas under the Assignments tab. It is due at 6 PM on Friday, 24 October 2025, New Zealand Daylight Time (NZST). This is an individual assignment.

Learning Outcome

Your learning outcome is to develop a microservices-based application with a focus on functional and non-functional requirements.

In this assignment, you are to imagine that you are working for a small startup company called Osborne.AI that wants to prototype a lightweight microservices-based application.

The product is to be a basic Student Services Dashboard, which consists of a few lightly coupled services that simulate functionality relevant to university operations.

Your task is to design, implement, containerize, and deploy a prototype of a small microservices-based system using Docker and Docker Compose either a) that will run on local hosting (for example, running a local web server architecture from terminal on Visual Studio Code or a similar IDE) or b) on your Ubuntu VM running on VirtualBox. The goal is to demonstrate your understanding of microservices principles and container-based deployment.

You will work individually and submit your code via Canvas. Your system should be made up of a minimum of 3 new services, running as separate Docker containers, and connected using docker-compose.

Technologies Required

•    Ubuntu VM on VirtualBox (optional)

•    Docker and Docker Compose

Git or GitHub

•    YAML

•    PostgreSQL or MongoDB (you choose)

•    (Optional) Python, Node.js, or Flask/FastAPI for backend services

Application Requirements

You will implement at least 3 new microservices from the list below (or propose your own):

Suggested Services:

•    Student Profile Service – manages student data (name, email, programme, etc.).

•    Course Catalogue Service – provides a list of courses with metadata.

Feedback Service – allows students to submit feedback on courses.

•    Notification Service – mock service that sends "emails" (log entries) when feedback is submitted.

•    API Gateway (Optional Stretch) – routes requests to the correct microservices.

Functional Requirements

Your service architecture must expose a RESTful API with at least 2 endpoints.

Services should communicate (where applicable) via HTTP, TCP, or a simple message queue. A small front-end (or Postman test collection) should be provided to demonstrate service interaction (consider the structure of a set of specific User Acceptance Tests).

Non-Functional Requirements

Each service must run in its own Docker container.

Services must be defined in a docker-compose.yml file.

Include documentation and usage instructions in your repo.

System must support logging and basic error handling (optional).

Submission Requirements

A Zipped GitHub repo or local install with:

1.   Code for all microservices

2.   docker-compose.yml

3.   Screenshots or screen recordings of the system running and any development processes or issues experienced.

4.   README.md with instructions, directory structure, and architectural diagram.

Suggested Directory Structure

-assignment2/

.gitignore docker-compose.yml

README.md (includes setup guide + architecture diagram)

student-profile/ app.py Dockerfile requirements.txt

...

files>...

.env.example (if needed for assessors to copy and use)