Good First Issue Finder for University Open Source Clubs
University open source clubs ask members to make a first contribution, and members spend their first month finding issues that are stale, already claimed, or in projects that never review pull requests. Build a tool for club coordinators: curate a watchlist of repositories, rank beginner issues by freshness, maintainer responsiveness and stack, let members claim issues so two people do not pick the same one, and track pull requests through to merge. Judge it by how many members get a first contribution merged.
Intermediate
A small team, or one strong student willing to learn something new.1 semester · 2 students
7 to ship
4 optional extrasSuggested stack
What you should ship
- A club watchlist of repositories with member suggestions and coordinator approval
- A scheduled ingestion worker using the GitHub API with incremental updates that stay inside rate limits
- Issue ranking by freshness, maintainer responsiveness and stack, with each signal shown on the issue
- Issue claims that expire without activity, and a warning when someone outside the club is already working on the issue
- Pull request tracking from opened to merged, linked to members through GitHub sign-in
- A coordinator dashboard showing stuck members and contributions per member
- A trial of at least four weeks with a real club, reporting first pull requests opened and merged
If you have time left
- A weekly email digest of new, well-ranked issues for each member's chosen stack
- Support for GitLab and Codeberg projects
- A public club page listing merged contributions for the semester
- Several clubs sharing a watchlist and pooling responsiveness data
Problem
University open source clubs run the same cycle every semester: a session on Git, a list of links to good first issue searches, and a few weeks later most members have not opened a pull request. The issues they found were months old, already assigned, or in repositories whose maintainers had not replied to anyone in a year. Two members often start on the same issue, and coordinators cannot see who is stuck.
What you build
A web app for a club, run by its coordinators:
- A watchlist of repositories the club has chosen, including projects from local organisations and alumni, with a way for members to suggest additions.
- Ingestion of open issues and recent pull request activity for the watchlist from the GitHub API, refreshed on a schedule.
- Ranking of beginner-suitable issues by three signals, each visible to the member:
- freshness: issue age and last activity;
- maintainer responsiveness: median time to a first maintainer response on recent outside contributions, and the share of those that were merged;
- stack: the repository's languages compared with the stack tags a member picks.
- Claims: a member claims an issue on the club board, the claim expires after a set time without activity, and the tool warns when someone outside the club has already said they are working on it.
- Tracking: linked pull requests move through opened, reviewed, changes requested, merged or closed, with a coordinator view of who needs help.
The Open Source Contribution Matcher idea in this library recommends issues to one person from an inferred profile. This project is a coordination tool for a group working from a curated set of projects, and its measure of success is merged pull requests.
Suggested architecture
- Node.js with TypeScript, PostgreSQL and a Next.js front end.
- A background worker that ingests through the GitHub GraphQL API, with conditional requests and incremental updates to stay inside rate limits.
- Explainable scoring in plain code with documented weights. No machine learning is needed.
- GitHub sign-in, so pull requests can be linked to members automatically.
Milestones by month
- Month 1: conversations with two club coordinators, data model, GitHub sign-in, watchlist, ingestion worker.
- Month 2: responsiveness metrics, ranking with explanations, issue board.
- Month 3: claims with expiry, pull request tracking, coordinator dashboard.
- Month 4: at least four weeks of use by a real club, evaluation, report and demo.
How it will be assessed
- A trial with a real club: members who opened and merged a first pull request, and median time from claim to merge, compared with the club's previous semester or with a group using plain label searches.
- A check of the responsiveness signal: did repositories ranked as responsive actually review members' pull requests sooner?
- Correct behaviour under GitHub rate limits, shown with logs from a full refresh.
- A clear explanation on every ranked issue.
Pitfalls
- Ranking on the good first issue label alone. Many labelled issues are stale, and many good starter issues are unlabelled.
- Rewarding low-value pull requests to inflate numbers. Maintainers notice, and it damages the club's reputation. Exclude typo-only changes from the success measure.
- Querying GitHub on every page load.
- Letting the scope grow into mentoring, chat or a course platform.
Ideas and guidance, not finished projects
These are project ideas and scoping guidance, published free for students to use as a starting point. I do not build, write, or sell final-year projects, and I do not complete coursework for anyone. Take an idea, make it yours, and build it.
Not sure this one fits you?
I help students pick an idea that matches their skills and their deadline, then scope it down until it is finishable. Guidance only, never done for you.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.