Thank you for your interest in contributing to LearnMate. This document outlines the guidelines for contributing to this project.
⚠️ Stabilization PhaseLearnMate is currently in a stabilization and hardening phase before archival. We are focused on fixing bugs, security issues, and technical debt — not adding new features.
- 🐛 Bug fixes with clear reproduction steps
- 🔒 Security patches (please follow responsible disclosure)
- 📚 Documentation improvements
- 🧹 Code quality improvements (linting, type safety, test coverage)
- ❌ New features
- ❌ Major refactors
- ❌ UI redesigns
- ❌ Dependency upgrades without justification
Before writing code, open an issue describing:
- What problem you're solving
- Your proposed approach
- Expected impact
Wait for maintainer approval before proceeding.
git checkout -b fix/issue-number-short-description- Follow existing code style
- Keep changes focused and minimal
- Update documentation if needed
- Reference the issue number
- Fill out the PR template completely
- Ensure CI passes
- Maintainer will review within 7 days
- Address feedback promptly
- Be patient — this is a volunteer project
Pull requests must pass all required GitHub Actions checks (backend tests and frontend build).
Preview deployments (e.g. Vercel) are non-blocking and may fail due to missing authorization. These failures do not prevent merges.
- Backend: Express.js conventions, async/await
- Frontend: React functional components, hooks
- AI Service: PEP 8, type hints welcome
Open a Discussion or Issue. Do not email maintainers directly.
By contributing, you agree to the project's Code of Conduct.