mirror of
https://github.com/sysadminsmedia/homebox.git
synced 2025-12-21 13:23:14 +01:00
1.8 KiB
1.8 KiB
This is a Go based repository with a VueJS client for the frontend built with Vite and Nuxt, with ShadCN.
To make life easier, the use of a Taskfile is included for the majority of development commands.
Please follow these guidelines when contributing:
Required Before Each Commit
- Generate Swagger Files:
task swag --force - Generate JS API Client:
task typescript-types --force - Lint Golang:
task go:lint - Lint frontend:
task ui:fix
Repository Structure
Backend
backend/: Contains the backend foldersbackend/app: Contains main app code including API endpointsbackend/internal/core: Contains basic services such as currenciesbackend/data: Contains all information related to data, includingentschemas, repos, migrations, etc.backend/data/migrations: Contains migration data, thesqlite3sub-folder contains sqlite migrations,postgressub-folder the postgres migrations, BOTH are REQUIRED.backend/data/ent/schema: Contains the actualentdata models.backend/data/repo: Contains the data repositoriesbackend/pkgs: Contains general helper functions and services
Frontend
frontend/: Contains initial frontend filesfrontend/components: Contains the ShadCN componentsfrontend/locales: Contains the i18n JSON for languagesfrontend/pages: Contains VueJS pagesfrontend/test: Contains Playwright setupfrontend/test/e2e: Contains actual Playwright test files
Docs
docs/: Contains VitePress based documentation
Key Guidelines
- Follow best practices for the various programming languages
- Maintain existing code structure and organization when possible
- Use dependency injection when reasonable
- Write tests for new functionality and after fixing bugs to validate they're fixed
- Document changes to the
docs/folder when appropriate