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/TypeScript frontend 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
Server Guidelines
Guidelines for Spring Boot/Java backend 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
- Performance - Performance optimization, data economy, paging, and query optimization
- Criteria Builder - Type-safe dynamic queries using JPA Criteria API
General Guidelines
- Language - Inclusive, diversity-sensitive, and appreciative language guidelines
Key Principles
Getting Started
If you're new to Artemis development:
- Start with the Client Development or Server Development guidelines based on your work focus
- Review the Testing guidelines to understand our testing standards
- Familiarize yourself with Database guidelines for data modeling
- Check the Language guidelines for inclusive communication
Contributing
When contributing to Artemis:
- Follow the style guides and conventions outlined in these documents
- Ensure your code passes all linting and formatting checks
- Write tests for new functionality
- Document your code appropriately
- Review related guidelines before making changes
Questions?
If you have questions about these guidelines or need clarification:
- Check the specific guideline page for detailed information
- Ask in the development team channels
- Consult with maintainers or experienced contributors