Thank you for your interest in contributing to Visitran! This guide will help you get started.
By participating in this project, you agree to abide by our Code of Conduct.
- Search existing issues first to avoid duplicates
- Use the bug report template and include:
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, Python version, database adapter)
- Open a feature request describing the use case
- Explain why this would be useful to other Visitran users
- Fork the repository and create a branch from
main - Set up your development environment (see below)
- Make your changes
- Test your changes
- Submit a pull request
- Python >= 3.10
- Node.js 18+
- uv (Python package manager — installed automatically by
inv install) - Docker (for running test databases)
pip install invoke
inv install
source .venv/bin/activate
cd backend
python manage.py migrate
python manage.py runservercd frontend
npm install
npm startBackend:
inv checks # Linting
inv type_check # Type checkingFrontend:
npm run lint # ESLint
npm run lint:fix # Auto-fix
npm test # Tests# Backend (requires Docker for test databases)
docker compose up --wait
uv run pytest -vv --dist loadgroup -n 5 tests
docker compose down
# Frontend
npm test
npm run test:coverage- Keep PRs focused — one feature or fix per PR
- Write descriptive commit messages
- Update documentation if your change affects user-facing behavior
- Ensure all CI checks pass before requesting review
- Reference related issues in your PR description
See the README for a map of the codebase.
By contributing to Visitran, you agree that your contributions will be licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).