diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 36e6b30..d2ccc03 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,3 +1,6 @@ # These are supported funding model platforms -custom: ['https://www.buymeacoffee.com/bastien'] +# These are supported funding model platforms + +github: [bastienwirtz] +buy_me_a_coffee: bastien diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index e0063d5..0bb193d 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -9,10 +9,11 @@ Fixes # (issue) - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) +- [ ] Refactoring ## Checklist: - [ ] I've read & comply with the [contributing guidelines](https://github.com/bastienwirtz/homer/blob/main/CONTRIBUTING.md) -- [ ] I have tested my code for new features & regressions on both mobile & desktop devices, using the latest version of major browsers. -- [ ] I have made corresponding changes to the documentation (README.md). +- [ ] I have tested my code for new features & regressions on both mobile & desktop devices, using the latest version of major browsers. +- [ ] I have made corresponding changes to the documentation (`README.md`). - [ ] I've checked my modifications for any breaking changes, especially in the `config.yml` file diff --git a/.gitignore b/.gitignore index ee51c88..6eb9005 100644 --- a/.gitignore +++ b/.gitignore @@ -23,4 +23,8 @@ yarn-error.log* # App configuration config.yml -.drone.yml \ No newline at end of file +.drone.yml + +# Specific Agent file +CLAUDE.md +GEMINI.md diff --git a/.jsconfig.json b/.jsconfig.json new file mode 100644 index 0000000..7c82acb --- /dev/null +++ b/.jsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "paths": { + "@/*": ["./src/*"] + } + }, + "exclude": ["node_modules", "dist"] + } \ No newline at end of file diff --git a/.schema/config-schema.json b/.schema/config-schema.json index eaea0b7..f751668 100644 --- a/.schema/config-schema.json +++ b/.schema/config-schema.json @@ -70,10 +70,10 @@ "properties": { "layout": { "enum": [ - "colums", + "columns", "list" ], - "description": "Layout of the dashboard, either 'column' or 'list'" + "description": "Layout of the dashboard, either 'columns' or 'list'" }, "colorTheme": { "enum": [ diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..29d7dfb --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,84 @@ +# AGENTS Instructions + +This file provides guidance to AI Agents when working with code in this repository. + +## Development Commands + +```bash +pnpm install # Install dependencies (PNPM enforced via packageManager) +pnpm dev # Start development server on http://localhost:3000 +pnpm mock # Start mock API server for testing service integrations +pnpm build # Build for production +pnpm preview # Preview production build +pnpm lint # Run ESLint with auto-fix +``` + +## Architecture Overview + +Homer is a static Vue.js 3 PWA dashboard that loads configuration from YAML files. The architecture is service-oriented with dynamic component loading. + +### Core Application Structure + +- **Entry Point**: `src/main.js` mounts the Vue app +- **Root Component**: `src/App.vue` handles layout, configuration loading, and routing +- **Configuration System**: YAML-based with runtime merging of defaults (`src/assets/defaults.yml`) and user config (`/assets/config.yml`) +- **Service Components**: 53 specialized integrations in `src/components/services/` that extend a Generic component pattern + +### Service Integration Pattern + +All service components follow this architecture: + +- Extend `Generic.vue` using Vue slots (`