First off — thank you for considering a contribution. IssueCompass is built for the open source community, and every contribution matters.
git clone https://github.com/yourusername/issuecompass.git
cd issuecompass
cp .env.example .env
# Fill in OAUTH_GITHUB_CLIENT_ID, OAUTH_GITHUB_CLIENT_SECRET, NEXTAUTH_SECRET
docker-compose up --buildFrontend at http://localhost:3000, API docs at http://localhost:8000/docs.
Open an issue with the bug label. Include:
- What you expected to happen
- What actually happened
- Steps to reproduce
- Your OS and Node/Python versions
Open an issue with the enhancement label. Describe the feature and why it benefits contributors.
- Fork the repo and create a branch:
git checkout -b feature/your-feature-name - Make your changes
- Test locally with Docker or manual setup
- Commit with a clear message:
git commit -m "feat: add weekly digest emails" - Push and open a PR against
main
issuecompass/
├── frontend/src/
│ ├── app/ ← Next.js pages (App Router)
│ ├── components/ ← Reusable UI components
│ └── lib/ ← API client, types, utilities
├── backend/app/
│ ├── routes/ ← FastAPI route handlers
│ ├── services/ ← Business logic (GitHub, matching, skills)
│ ├── models/ ← SQLAlchemy database models
│ └── core/ ← Config, database connection
Look for issues tagged good first issue in this repo. Great starting points:
- Adding a new language filter
- Improving the skill extraction regex in
skill_service.py - Adding a new chart to the profile page
- Writing tests for the matching algorithm
Frontend: ESLint + Prettier defaults. Run npm run lint before committing.
Backend: Follow PEP 8. Keep route handlers thin — logic goes in services/.
Open a Discussion on GitHub or drop a comment in any issue.