First of all — thank you for considering a contribution to Evsy!
We deeply appreciate every bit of help, whether it's fixing a bug, suggesting an improvement, or just pointing out something unclear.
Not a developer? No problem — Evsy welcomes all kinds of contributions:
- Report bugs — If something’s not working as expected, let us know.
- Suggest features — Ideas to improve workflows or usability are always appreciated.
- Give design feedback — UI/UX suggestions help us make Evsy more intuitive.
- Improve the docs — Flag anything confusing or missing.
- Share your experience — Even a quick "this was helpful" can go a long way.
You can open an issue — we’d love to hear from you.
You can setup both the backend and frontend in dev mode with hot-reloading:
cp .env.example .env
make devThis launches everything via docker-compose.dev.yaml:
- FastAPI backend on
localhost:8000 - Vite frontend on
localhost:3000
When you need to create a new migration:
make revision name="your_migration_name"...and then apply it:
make migrateAfter you're done developing, just do:
make downAlternatively, you can setup your backend and frontend independently.
-
Install Poetry.
-
Install dependencies:
cd ./backend poetry install cp .env.example .env -
Run the server:
make dev
-
Run tests:
make test -
Check formatting and style:
make format && make lint
-
Install dependencies:
cd ./frontend npm ci cp .env.example .env -
Run the app:
npm run dev
-
Lint and format:
npm run format && npm run lint
-
Create a new branch:
git checkout -b feat/your-change
-
Use Conventional Commits for commit messages:
feat: add something new
fix: fix a bug
docs: update documentation
refactor: improve internal code
chore: misc changes like configs
3.Push your branch and open a PR. CI will verify formatting, linting, and tests.