PSA/docs/contributing.md
Hermes 284313f908
Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Initial import of AlgaPSA codebase from PSA server
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz

Source: /opt/alga-psa on psa.joliet.tech
2026-06-22 16:12:17 -05:00

95 lines
3.2 KiB
Markdown

# Contributing to Alga PSA
Thank you for your interest in contributing to Alga PSA! We appreciate contributions of all kinds, whether it's fixing bugs, improving documentation, suggesting new features, or helping other users.
## Ways to Contribute
- **Report bugs**: Open an issue describing the problem and steps to reproduce it
- **Suggest features**: Share ideas for new functionality via GitHub issues
- **Submit code**: Fix bugs or implement new features via pull requests
- **Improve documentation**: Help make our docs clearer and more comprehensive
- **Help others**: Answer questions in discussions and issues
## Getting Started
1. **Fork the repository** and clone it locally
2. **Set up your development environment** following the [Setup Guide](getting-started/setup_guide.md)
3. **Create a branch** for your changes:
```bash
git checkout -b feature/your-feature-name
# or
git checkout -b fix/issue-description
```
## Development Guidelines
- Follow existing code patterns and conventions in the codebase
- See [Configuration Standards](getting-started/configuration_standards.md) for config conventions
- Write tests for new functionality and ensure existing tests pass:
```bash
npm run test
```
## NX Modules (Monorepo)
Alga PSA uses NX + npm workspaces. Shared infrastructure lives in **horizontal** packages (e.g. `@alga-psa/core`, `@alga-psa/db`, `@alga-psa/types`), while business domains live in **vertical** packages (e.g. `@alga-psa/clients`, `@alga-psa/billing`).
### Create a New Module
Use the generator (recommended):
```bash
NX_DAEMON=false npx nx g @alga-psa/generators:alga-module --name <module-name> --type vertical --directory packages
```
This creates `packages/<module-name>/` with `src/`, `package.json`, `tsconfig.json`, and `project.json`.
### Dependency Rules
- Vertical modules may import **horizontal** modules (`@alga-psa/*` infra packages).
- Vertical modules should **not** import other vertical modules directly.
- Next.js routes remain under `server/src/app/` but should be **thin shims** that import from feature packages.
- Keep exports intentional: prefer a module `src/index.ts` barrel and avoid deep imports unless explicitly supported.
## Submitting Changes
### Pull Request Process
1. **Update your branch** with the latest changes from `main`
2. **Test your changes** thoroughly
3. **Write a clear PR description** explaining:
- What the change does
- Why it's needed
- Any breaking changes or considerations
4. **Link related issues** using keywords like "Fixes #123"
### Commit Messages
Write clear, concise commit messages that explain what changed and why:
```
feat: add automatic time tracking for ticket views
fix: resolve billing calculation error for quarterly cycles
docs: update setup guide with new environment variables
```
## Reporting Issues
When reporting bugs, please include:
- A clear, descriptive title
- Steps to reproduce the issue
- Expected vs actual behavior
- Your environment (OS, browser, Node version)
- Relevant logs or screenshots
## Questions?
If you have questions about contributing, feel free to open a discussion on GitHub. We're here to help you get started.
---
Thank you for helping make Alga PSA better!