Supplemental Components
Professional Artifacts
Supporting documentation and deliverables that demonstrate professional-grade software engineering practice beyond the code itself.
Trevecca-pedia: arc42 Architecture Document
Produced for the Trevecca-pedia multi-service wiki platform, a Senior year team project
What is arc42?
arc42 is a widely used, standardized template for documenting software architecture. It was developed by software architects Gernot Starke and Peter Hruschka and is used in professional software engineering practice across Europe and internationally. The template structures architectural documentation into 12 sections covering system goals, constraints, context, building blocks, runtime behavior, deployment, cross-cutting concepts, and architectural decisions.
Using arc42 instead of ad-hoc documentation means the architecture is communicated in a format that any software engineer familiar with the template can immediately navigate. It enforces completeness: sections on deployment, quality goals, and architectural decisions can't be skipped.
What this document covers
The arc42 document for Trevecca-pedia addresses the full architecture of a multi-service wiki platform built in Go with JWT authentication, PostgreSQL, and Docker:
- System context and scope: who uses the system, what external systems it integrates with, and where the system boundary sits.
- Quality goals: the top architectural drivers: maintainability (service boundaries), security (JWT auth + protected routes), and deployability (Docker containerization).
- Building block view: the decomposition of the system into its three services (auth service, wiki service, web service) with component responsibilities and interfaces.
- Runtime view: sequence diagrams showing the login flow, JWT validation on protected routes, and inter-service communication.
- Deployment view: how the services are containerized and composed with Docker Compose for local development.
- Architectural decisions: documented rationale for key choices including Go over other languages, JWT over session-based auth, and the service decomposition strategy.