Sefism is free for learners. We are here to help you grow, one step at a time.Join for free
Sefism.
Web

Work Log and Weekly Update Builder from Git and Issue Activity

A privacy-first web app for junior developers that pulls their own merged pull requests, reviews and closed issues from the GitHub API, lets them note why each mattered, and builds a weekly update and a running brag document. A beginner final year project covering OAuth, API sync, rate limits and careful data handling.

Difficulty

Beginner

Achievable by one student in a semester with familiar tools.
Effort

4 to 6 weeks · 1 student

Deliverables

8 to ship

3 optional extras

Suggested stack

Next.jsTypeScriptGitHub REST or GraphQL APIOAuth (GitHub App or OAuth App)PostgreSQLScheduled sync jobVitest
A suggestion, not a requirement. Swap anything for what you already know.

What you should ship

  • Sign in with GitHub using the narrowest scopes needed, and a plain page explaining exactly what is read and stored
  • A sync job importing your merged pull requests, reviews given and closed issues for a date range, handling pagination and rate limit headers
  • A schema that stores source ids so re-syncing never creates duplicates, and never stores source code
  • A weekly view where each item gets an optional one-line note: the result, who it helped and a link
  • A generated weekly update in four parts (shipped, in progress, blocked, need from others) editable before copying
  • A running brag document grouped by month and exportable to Markdown
  • Delete-my-data and export-my-data actions that really remove and return everything stored
  • Unit tests for grouping, deduplication and update generation, running in CI on every push

If you have time left

  • GitLab as a second source behind the same activity interface
  • A Friday reminder email when the week has items without notes
  • A review-season view that groups a year of notes by theme or project

The problem new engineers have remembering their own work

Keeping a record of your work is one of the most useful habits in a first job and one of the most commonly skipped. Weekly updates to your manager, one-on-ones and performance reviews all need evidence, and memory is unreliable after a few weeks. When review season arrives, junior engineers scroll through months of GitHub history trying to reconstruct what they did and why it mattered. The "why" is usually lost.

The people with this pain are developers in their first few years, especially at companies with formal review cycles, and anyone preparing for a promotion conversation.

What already exists and the gap

  • Julia Evans' brag document idea is a widely shared template for writing down your work, but it is a manual document.
  • BragDoc is a tool that analyses your git commits locally with AI and turns them into achievements and documents for your manager.
  • Standup bots such as Geekbot collect daily updates in Slack for teams, driven by the team rather than the individual.
  • GitHub's own profile and search show activity but not impact.

The gap is a small, individual, privacy-first tool that pulls activity from the source of truth and asks you for one line of context while you still remember it, with no AI required and no source code stored.

What you build

One user role: the developer. The main flows:

  1. Sign in with GitHub, see a clear explanation of scopes, and pick which repositories to include.
  2. Sync the week: merged pull requests, reviews given and closed issues.
  3. On the weekly screen, add a one-line note to the items that mattered.
  4. Generate a weekly update (shipped, in progress, blocked, need from others), edit it and copy it.
  5. Watch the monthly brag document grow and export it as Markdown.
  6. Export or delete everything at any time.

The technically interesting part

The hard part is a correct, polite sync against a rate-limited API. GitHub paginates results and enforces rate limits; your job must follow pagination links, read the remaining-quota headers, back off when needed, and resume without re-fetching everything. Store each item's source id with a unique constraint so a second sync is a no-op, and use a sync cursor per user so incremental syncs only fetch new activity. This is the same idempotent sync pattern used by every integration product.

The second part is least privilege. Compare an OAuth App with a GitHub App with fine-grained, read-only permissions, choose one and justify it. Store tokens encrypted, never log them, and document exactly which fields you persist.

How to evaluate it

  • Idempotency: run the sync twice on the same range and show zero new rows; test with a fixture of paginated API responses.
  • Rate limits: simulate a low quota and show the job pauses and resumes correctly.
  • Usefulness: five developers (interns or recent graduates) use it for three weeks; record how many items get notes and whether they used the generated update with their manager.
  • Time saved: ask each tester how long a weekly update took before and after.
  • Privacy: a checklist showing scopes requested, fields stored, and that deletion removes every row.

Suggested plan

  1. Week 1: OAuth sign-in, scope decision and a plain-language data page.
  2. Week 2: sync job with pagination, rate limit handling and deduplication.
  3. Week 3: weekly view, notes, update generator.
  4. Week 4: brag document, export and delete, tests in CI.
  5. Weeks 5 to 6: three-week pilot with five developers and the write-up.

Path to a product

The first users are you and your classmates starting internships. Keep it open source so developers can self-host and trust it; that is the honest route to adoption for a tool that touches work data. A hosted version with a small monthly subscription for extra sources (GitLab, Jira, Linear) is a realistic model. A team version for managers is possible later, but it changes the privacy story, so treat it carefully.

Scope warning

Do not store or analyse source code. Do not build an AI summariser in version one; the user's own notes are the point. Do not add team dashboards or manager views. Many companies do not allow third-party apps on their organisation, so design for personal or permitted accounts and say so in the README.

Learn what you need on Sefism

Get help with this idea

This is a small, finishable project with a real daily user: you. Tauseef can help you choose the right GitHub auth model, tighten the privacy design and plan a pilot that shows the tool helps. If you are new here, create a free account first.

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.

Discuss this idea
Work with me

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.