Skip to content

Project Structure Reference

This section describes the standard folder and file structure used across the project, including documentation, operational assets, and domain-specific resources.

docs/                                       # Central documentation hub for the entire project
β”œβ”€β”€ about.md                                # [Required] About section with public/private links to technical and functional documentation, ownership info
β”‚   |                                       # All code in production must be documented, at least including the location of its repository (Azure DevOps / Github).
β”‚   |                                       # The about.md content must be exposed through a runtime-accessible endpoint or page,
β”‚   |                                       # enabling identification of the component, ownership, repositories, and documentation links.
β”œβ”€β”€ app/                                    # main folder.
β”‚   β”œβ”€β”€ common/                             # Common Layer class library.
β”‚   β”‚   β”œβ”€β”€ constants.py                    # Definition of global variables.
β”‚   β”‚   └── messages.py                     # System messages to be used by all methods.
β”‚   β”œβ”€β”€ core/                               # Definition of base configurations.
β”‚   β”‚   └── config.py                       # Defining environment variables as loading environment variables.
β”‚   β”œβ”€β”€ routers/                            # The path operations related to your users separated from the rest of the code, to keep it organized.
β”‚   β”‚   β”œβ”€β”€ default.py                      # Method for responding to a 200 request without taking any action or displaying the information about.
β”‚   β”‚   β”œβ”€β”€ health.py                       # Methods to monitor health behavior.
β”‚   β”‚   β”œβ”€β”€ redis.py                        # Methods to monitor redis.
β”‚   β”‚   └── task.py                         # Methods to crud tasks.
β”‚   β”œβ”€β”€ services/                           # Controller Layer / Business logic (including CRUD helpers).
β”‚   β”‚   β”œβ”€β”€ constants.py                    # Definition of global variables.
β”‚   β”‚   β”œβ”€β”€ health.py                       # Health rules.
β”‚   β”‚   β”œβ”€β”€ redis.py                        # Methods to monitor redis.
β”‚   β”‚   └── task.py                         # Methods to crud tasks.
β”‚
β”œβ”€β”€ DataEngineer/                           # Data management, schemas, and their rollback.
β”‚   β”œβ”€β”€ migrations/                         # Logical and conceptual system architecture
β”‚   β”‚   β”œβ”€β”€ backup.sh                       # Backup script console or SQL
β”‚   β”‚   └── restore.sh                      # Restore script console or SQL
β”‚   β”œβ”€β”€ seeds/                              # Initial data
β”‚   β”‚   └── init-db.sh                      # Script to load baseline seed data
β”‚   └── reference-architecture.md           # Reference patterns, principles, and architectural decisions
β”‚
β”œβ”€β”€ overview/                               # High-level and stable documentation (architecture-focused)
β”‚   β”œβ”€β”€ architecture.md                     # Logical and conceptual system architecture
β”‚   └── reference-architecture.md           # Reference patterns, principles, and architectural decisions
β”‚
β”œβ”€β”€ guides/                                 # Practical, step-by-step guides for using and operating the project
β”‚   β”œβ”€β”€ getting-started/                    # Initial setup guides for environments and systems
β”‚   β”‚   └── os-package-managers.md          # OS/Docker/VM package installation and base system dependencies
β”‚   β”‚
β”‚   └── software-development/               # Local development, build, and testing workflows
β”‚       β”œβ”€β”€ vscode.md                       # VSCode extensions, settings, and workspace configuration
β”‚       β”œβ”€β”€ launch-and-debug.md             # launch.json, debugging profiles, and local execution configs
β”‚       └── local-scripts.md                # PowerShell/Bash scripts to build, test, and run locally
β”‚
β”œβ”€β”€ troubleshooting/                        # Operational issue resolution and diagnostics
β”‚   └── logging.md                          # Logging strategy, log levels, correlation IDs, and troubleshooting guidance
β”‚
β”œβ”€β”€ governance/                             # Project-wide rules, standards, and policies
β”‚   β”œβ”€β”€ license.md                          # Explanation of the project license and usage constraints
β”‚   β”œβ”€β”€ contributing.md                     # Contribution rules, PR process, and development workflow
β”‚   β”œβ”€β”€ nomenclature-conventions.md         # Official naming conventions for files, folders, and artifacts
β”‚   └── technology-lifecycle.md             # Every component MUST declare its Technology Lifecycle
β”‚
β”œβ”€β”€ files/                                  # Binary and visual assets referenced by documentation
β”‚   β”œβ”€β”€ architecture.pdf                    # Exported architecture diagrams (read-only)
β”‚   └── architecture.drawio                 # Editable architecture diagrams (source files)
β”‚
β”œβ”€β”€ Ops/                                    # Binary and visual assets referenced by documentation
β”‚   β”œβ”€β”€ docker-and-semantic-versioning.md   # Docker usage guidelines and semantic versioning strategy
β”‚   └── docker-compose.yml                  # Main Docker Compose configuration file
β”‚
β”œβ”€β”€.dockerignore                            # Docker ignore rules
β”œβ”€β”€.env                                     # Local environment variables (never committed)
β”œβ”€β”€.env.sample                              # Environment variable template
β”œβ”€β”€.gitignore                               # Git ignore rules
β”œβ”€β”€ CHANGELOG.md                            # Versioned log of notable changes.
β”œβ”€β”€ entrypoint.sh                           # Defining the executable that the container will use.
β”œβ”€β”€ main.py                                 # Startup code.
└── README.md                               # Entry point for documentation; explains structure and where to start by role