Skip to main content

Coding and Design Guidelines

Welcome to the Artemis Coding and Design Guidelines. These guidelines help maintain code quality, consistency, and best practices across the project.

Client Guidelines

Guidelines for Angular and TypeScript client development:

  • Client Development - Angular development practices, naming conventions, components, and advanced topics
  • Client Theming - Theme management, color usage, and styling guidelines
  • Client Tests - Testing practices, mocking strategies, and coverage standards
  • TUM UI package - Architecture, integration, and contribution rules for the in-house design system
  • TUM UI component reference - Interactive component states, controls, accessibility checks, and APIs

Server Guidelines

Guidelines for Spring Boot and Java server development:

  • Server Development - Java best practices, project structure, REST APIs, and authorization
  • REST API - REST API design, Data Transfer Objects (DTOs), and API best practices
  • Server Tests - Server testing strategies, ArchUnit, and performance tips
  • Database - Database design, relationships, cascade types, and dynamic fetching
  • Entity Ownership - What every entity belongs to, and where the schema still permits an orphan
  • Migration Consolidation - Folding a release cycle's Liquibase changelogs into the initial schema, done once per major version
  • Performance - Performance optimization, data economy, paging, and query optimization
  • Criteria Builder - Type-safe dynamic queries using JPA Criteria API

General Guidelines

  • Documentation - Structuring a documentation page, naming what the reader sees on screen, and keeping screenshots and screencasts current
  • Language - Inclusive, diversity-sensitive, and appreciative language guidelines
  • Terminology - Naming components precisely, and the two vague layer words Artemis does not use
Search documentation