Ways to contribute
Report bugs
Found a bug? Report it on our GitHub Issues
Suggest features
Have an idea? Open a feature request on GitHub Discussions
Improve docs
Help improve our documentation by submitting pull requests
Write code
Contribute code improvements, bug fixes, or new features
Getting started
Prerequisites
- Backend
- Frontend
- Python 3.12 or higher
- Docker (required for local vector database provisioning)
- uv package manager (recommended)
Development setup
Quick start with run script
Access the application
- Backend API: http://localhost:8080
- API docs: http://localhost:8080/docs
- Frontend (dev): http://localhost:5173
Project structure
Development workflow
Backend development
The backend follows a domain-driven design pattern where each component has:entities.py- SQLModel database modelsrepository.py- Data access layer (CRUD)handlers.py- Business logicschemas.py- Pydantic request/response modelsroutes.py- FastAPI endpoints
- Code quality
- Testing
- Database
Frontend development
The frontend uses Vue 3 with Composition API, TypeScript, and Tailwind CSS.- Code quality
- Testing
- UI components
Always run lint and typecheck commands after making changes to ensure code quality.
Submitting contributions
Make your changes
- Write clear, concise commit messages
- Follow the existing code style and patterns
- Add tests for new functionality
- Update documentation as needed
Commit your changes
feat:- New featuresfix:- Bug fixesdocs:- Documentation changesrefactor:- Code refactoringtest:- Test additions or changeschore:- Maintenance tasks
Code style guidelines
Backend (Python)
- Use Black formatting with line length 88
- Type hints are required for all functions
- Follow PEP 8 conventions
- Use Pydantic for data validation
- Document complex logic with docstrings
Frontend (TypeScript/Vue)
- Use Vue 3 Composition API with
<script setup> - Prefer TypeScript for type safety
- Use shadcn/ui components over custom implementations
- Follow Tailwind CSS utility-first approach
- Use lucide-vue-next for icons
Getting help
GitHub Discussions
Ask questions and discuss ideas on GitHub Discussions
GitHub Issues
Report bugs and request features on GitHub Issues
OpenMined Slack
Join the OpenMined community on Slack
Documentation
Read the full documentation
Code of conduct
We are committed to providing a welcoming and inclusive environment. All contributors are expected to:- Be respectful and considerate
- Provide constructive feedback
- Focus on what is best for the community
- Show empathy towards other contributors
License
By contributing to Syft Space, you agree that your contributions will be licensed under the Apache License 2.0.Thank you for contributing to Syft Space and helping make AI safer through privacy-preserving technology!