Files
aurum/CONTRIBUTING.md
ZProger fe9b079c12 Initial public release
Aurum — a self-hosted personal finance operating system: cash flow,
net worth tracking, budgets, goals, recurring payments, reports,
proactive alerts, and a compound-interest returns calculator, all
bilingual (RU/EN) and mobile-first. Ships as a three-container Docker
Compose stack (Postgres + FastAPI + nginx-served React frontend).

See README.md for setup and CONTRIBUTING.md for development.
2026-08-16 18:39:52 +03:00

2.3 KiB

Contributing to Aurum

Thanks for considering a contribution — code, docs, bug reports, and ideas are all welcome.

Getting a dev environment running

The fastest path to a working environment is the same Docker Compose setup end users run:

cp .env.example .env
docker compose up -d --build

This gives you Postgres, the FastAPI backend (with migrations applied automatically on boot), and the built frontend served through nginx at http://localhost:3000.

For active frontend development with hot reload:

cd frontend
npm install
npm run dev

The dev server proxies API calls to whatever backend is running — point it at the Dockerized backend above, or run the backend locally:

cd backend
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
alembic upgrade head
uvicorn app.main:app --reload

Before opening a PR

  • Frontend: npm run build (runs tsc -b then vite build) must pass with no type errors.
  • Backend: new tables or columns need an Alembic migration (alembic revision --autogenerate -m "...") — check the generated migration by hand, autogenerate isn't always right.
  • New user-facing text goes through the translation system in frontend/src/lib/i18n.ts (both ru and en — the en object is typed against ru's keys, so a missing translation is a build error, not a runtime surprise) rather than being hardcoded in a component.
  • Mobile: check your change at a narrow viewport — Aurum is designed mobile-first.
  • Keep PRs focused. A bug fix doesn't need an accompanying refactor.

Reporting bugs

Open an Issue with steps to reproduce. For security issues, please use GitHub's private Security tab instead of a public issue.

Proposing features

Open a Discussion first for anything that changes the data model or adds a new area of the app — it's a lot easier to align on the shape of a feature before code exists than to rework a finished PR.

License

Aurum is licensed under PolyForm Noncommercial 1.0.0, not a traditional OSI open source license — see the README's License section for what that means in practice. By submitting a PR, you agree your contribution is licensed under the same terms as the rest of the project.