Module CSC5002—ASR6: Middleware and software architecture for distributed applications

Portail informatique

Work on the Micro-Project : MiniSocs

This page list the labs for the micro-project and the list of tasks.

At the bottom of this page, you will find a list of tasks. Tasks marked with the symbol ‘▢’ are required, while those marked with the symbol ‘◇’ are additions. Completing all required tasks earns you the average grade for the micro-project implementation part (10/20); each additional item adds a few extra points (for example, 0.5pts).

Here follows the list of Labs (follow the links of the number):
  • 01—Discover the application
  • 02—REST for microservice MiniSocs Frontend
  • 03—AMQP for linking microservices MiniSocs Frontend and Anomaly Detection
  • 04—SSE for microservice MiniSocs Frontend
  • 05—ORM Persistence for microservice Anomaly Detection
  • 06—P&A for microservices MiniSocs Frontend and Anomaly Detection
  • 06—P&Application container for microservice User
Here follows the list of tasks:
  • Milestone 1:
    • ▢ REST: Use cases “create a user”, “create a social network”, and “post a message”.
    • ◇ REST: The other use cases, which are implemented in the skeleton.
    • ▢ REST: A JUnit unit test class that demonstrates a client calling the application's endpoints (use cases) via REST.
  • Milestone 2:
  • Other tasks not milestoned:
    • ▢ SSE: Use case “post a message” with the notification of the new messages
    • ◇ SSE: The other use cases, which include the notification of moderation requests.
    • ▢ SSE: A unit test class that demonstrates a client being notified via SSE.
    • ▢ Design pattern Ports&Adapters: in a separate Maven module, the driving port for the adapter that requests MiniSocs API via REST. In the same new Maven module, a unit test class that demonstrates the usage of this driving port.
    • ◇ Design pattern Ports&Adapters: in a separate Maven module, the driven port for the adapter for notifying the client via SSE.
    • ▢ Client library for the REST + SSE part in a separate Maven module: only the endpoints for the use cases “create a user”, “create a social network”, and “post a message”, and only the notification of new messages.
    • ◇ Client library for the REST + SSE part with the other use cases and with the notification of moderation requests.
    • ▢ Launching and running the application in a process: a separate Maven module “startup”, along with an integration test involving the application and a client in different processes. The integration test is a shell script that starts the application and execute a JUnit integration class.