mirror of
https://github.com/sysadminsmedia/homebox.git
synced 2025-12-21 13:23:14 +01:00
40 lines
1.8 KiB
Markdown
40 lines
1.8 KiB
Markdown
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 folders
|
|
- `backend/app`: Contains main app code including API endpoints
|
|
- `backend/internal/core`: Contains basic services such as currencies
|
|
- `backend/data`: Contains all information related to data, including `ent` schemas, repos, migrations, etc.
|
|
- `backend/data/migrations`: Contains migration data, the `sqlite3` sub-folder contains sqlite migrations, `postgres` sub-folder the postgres migrations, BOTH are REQUIRED.
|
|
- `backend/data/ent/schema`: Contains the actual `ent` data models.
|
|
- `backend/data/repo`: Contains the data repositories
|
|
- `backend/pkgs`: Contains general helper functions and services
|
|
|
|
### Frontend
|
|
- `frontend/`: Contains initial frontend files
|
|
- `frontend/components`: Contains the ShadCN components
|
|
- `frontend/locales`: Contains the i18n JSON for languages
|
|
- `frontend/pages`: Contains VueJS pages
|
|
- `frontend/test`: Contains Playwright setup
|
|
- `frontend/test/e2e`: Contains actual Playwright test files
|
|
|
|
### Docs
|
|
- `docs/`: Contains VitePress based documentation
|
|
|
|
## Key Guidelines
|
|
1. Follow best practices for the various programming languages
|
|
2. Maintain existing code structure and organization when possible
|
|
3. Use dependency injection when reasonable
|
|
4. Write tests for new functionality and after fixing bugs to validate they're fixed
|
|
5. Document changes to the `docs/` folder when appropriate |