← Back to projects

Question Randomizer Microservice (Flask)

A focused Flask microservice built to integrate with a peer's CS 361 project as part of a class-wide distributed systems exercise. The service exposes a single POST /randomize endpoint: clients send a JSON body containing a pool of question IDs and an optional list of previously seen IDs, and the service returns a shuffled selection that deprioritizes recently seen entries to reduce repetition across sessions. The implementation handles edge cases cleanly — empty pools, fully-seen pools, malformed input — and returns structured JSON with appropriate status codes in all cases. Includes a lightweight test program that exercises the endpoint locally and documents the expected request/response contract. The project reinforced practical microservice design: a single responsibility, a clear interface, and behavior that's easy for a consumer to reason about.

PythonFlaskRESTJSON

Gallery

Photograph of Architecture diagram for the Question Randomizer microservice showing components and request flow used to avoid duplicate selections.
Architecture diagram for the Question Randomizer microservice showing components and request flow used to avoid duplicate selections.