Contribution Guidelines
This page outlines the workflow and standards for contributing to LearnHouse.
Workflow
1. Fork and Clone
Fork the LearnHouse repository on GitHub, then clone your fork:
git clone https://github.com/YOUR_USERNAME/learnhouse.git
cd learnhouse2. Create a Feature Branch
Always create a new branch for your changes. Use a descriptive branch name:
git checkout -b feature/your-feature-nameBranch naming conventions:
feature/— New features or enhancementsfix/— Bug fixesdocs/— Documentation changesrefactor/— Code refactoring without behavior changes
3. Make Your Changes
Develop your changes locally using the development environment. Keep commits focused and atomic.
When adding or updating dependencies:
- Frontend — Use
bunto manage JavaScript/TypeScript dependencies (e.g.,bun add <package>). - Backend — Use
uvto manage Python dependencies (e.g.,uv add <package>).
4. Submit a Pull Request
Push your branch to your fork and open a pull request against the main branch of the LearnHouse repository:
git push origin feature/your-feature-nameIn your pull request description:
- Explain what your change does and why it is needed.
- Reference any related GitHub issues .
- Include screenshots or recordings for UI changes.
Code Style
Frontend (TypeScript / React)
- Use TypeScript for all new code.
- Follow existing patterns in the codebase for component structure and naming.
- Use functional components with hooks.
- Format code consistently — the project includes configuration for code formatters.
Backend (Python)
- Follow PEP 8 conventions.
- Use type hints for function parameters and return values.
- Write clear docstrings for public functions and classes.
- Keep functions focused and concise.
Testing
- Test your changes locally before submitting a pull request.
- Verify that existing functionality is not broken by your changes.
- For new features, include tests where applicable.
Review Process
After submitting a pull request:
- A maintainer will review your code and may request changes.
- Address any feedback by pushing additional commits to your branch.
- Once approved, a maintainer will merge your pull request.
Reporting Issues
If you find a bug or have a feature request, please open an issue on GitHub. Include as much detail as possible: steps to reproduce, expected behavior, actual behavior, and any relevant logs or screenshots.