## Context The project currently lacks a `.gitignore` file, which results in various development-related files, build artifacts, and dependency directories being untracked or potentially committed to version control. This leads to a cluttered repository and can cause issues with consistency across different development environments. ## Goals / Non-Goals **Goals:** - Create a comprehensive `.gitignore` file at the project root. - Ensure that common development artifacts, temporary files, dependency directories, and OS/IDE-specific files are ignored by Git. - Maintain a clean and focused Git repository. **Non-Goals:** - This design does not aim to modify existing Git history or remove already committed files. - It does not cover advanced Git configurations beyond the `.gitignore` file itself. - It will not address ignoring files that are intentionally part of the repository (e.g., configuration files that need to be tracked). ## Decisions 1. **Location**: The `.gitignore` file will be placed in the root directory of the project (`/home/filip/docker-backend-display/.gitignore`). 2. **Content - General**: It will include standard ignore patterns for: - Node.js specific files and directories (`node_modules`, `npm-debug.log`, `build`, `dist`, etc.). - Operating System specific files (`.DS_Store`, `Thumbs.db`). - Common IDE/Editor specific files (`.vscode/`, `.idea/`, `*.swp`). 3. **Content - Project Specific**: It will include patterns for: - Backend build artifacts (if any are generated outside `node_modules`). - Frontend build artifacts (`frontend/build`). - Log files (`*.log`). - Environment variables (`.env`). ## Risks / Trade-offs - **[Risk]** Over-ignoring essential files: There is a risk that some files necessary for the project's build or execution might be inadvertently ignored. - **Mitigation**: The `.gitignore` file will be carefully reviewed after creation, and tested by checking `git status` to ensure only intended files are ignored. - **[Risk]** Under-ignoring sensitive or large files: Some sensitive information or large binary files might be missed, leading to them being committed. - **Mitigation**: The `.gitignore` will be based on widely accepted templates for Node.js/React projects, and specific project directories will be explicitly added.