Trail App Microservices

COMP2001 • ProfileService microservice • Python FastAPI + SQL Server + Docker deployment

Python FastAPISQL Server + pyodbc3NF schema designRole-based access controlDocker containerisation

Overview

I designed and implemented the ProfileService microservice for the wider Trail Application, including database design, API endpoint implementation, authentication integration, and deployment. The service manages user profile data as an independent domain while integrating with the wider microservice ecosystem.

My contribution, decision, and outcome

  • Contribution: Built the ProfileService end to end using FastAPI, SQL Server, and pyodbc, including profile CRUD flows, role-aware endpoints, and supporting database view/trigger logic.
  • Technical decision: Kept authentication in an external Authenticator API while handling local authorisation/roles inside ProfileService, reducing credential risk and keeping boundaries clear.
  • Outcome/result: Verified all required functionality through Swagger UI testing, direct SQL validation, and containerised execution; published the service to Docker Hub as joshua-pinder/profileservice-cw2:latest.
  • Reflection: Identified a profile-view join duplication limitation and documented production improvements (e.g., subqueries/materialised views).