Thank you for your interest in contributing to Toston! This document provides guidelines and instructions for contributing.
- uv for Python package and environment management.
- Docker and Docker Compose
- Docker.
- Docker Compose.
- uv for Python package and environment management.
-
Fork the repository
-
Clone your fork locally
-
Copy
.env.developto.env:# Unix/Linux/Mac cp .env.develop .env
Important
Do not use .env.develop in production
- Start the stack with Docker Compose:
docker-compose up -dordocker compose up -d
Now you can open your browser and interact with these URLs:
- JSON based web API based on OpenAPI: http://localhost:8000
- Automatic interactive documentation with Swagger UI (from the OpenAPI backend): http://localhost:8000/docs
- Alternative automatic documentation with ReDoc (from the OpenAPI backend): http://localhost:8000/redoc
- PGAdmin, PostgreSQL web administration: http://localhost:5050
- WAHA WhatsApp integration (In case you're using it): http://localhost:3000
After changing a model (for example, adding a column), inside the container, create a revision, e.g.:
$ alembic revision --autogenerate -m "Add column last_name to User model"-
Commit to the git repository the files generated in the alembic directory.
-
After creating the revision, run the migration in the database (this is what will actually change the database):
$ alembic upgrade head🎯 Good Areas to Contribute:
- Testing (there are some files related to, but they aren't used, feel free to remove them)
- Project cleanup (removing unused files, refactoring, etc.)
- Project management (add linters, formatters, etc.)
- Documentation
- Bug fixes in existing functionality
- Fix linter warnings
- Performance optimizations
If you're unsure whether your idea falls into the preview category, feel free to ask us directly in X or create a GitHub issue!
- Use the bug report template
- Include steps to reproduce
- Provide screenshots if applicable
- Use the feature request template
- Explain the use case
- Consider implementation details
- Create a new branch:
git checkout -b feature/your-feature-name - Make your changes
- Run the linter:
uvx ruff check --fix - Format your code:
uvx ruff format - Commit your changes with a descriptive message
- Push to your fork and create a pull request
- We use Ruff for code formatting and linting
- Run
uvx ruff formatto format your code - Run
uvx ruff checkto check for linting issues - Follow the existing code patterns
- Fill out the pull request template completely
- Link any related issues
- Request review from maintainers
- Address any feedback
- Be respectful and inclusive
- Follow our Code of Conduct
- Help others in discussions and issues
Thank you for contributing!