How eddiehubcommunity/good-first-issue-finder works
Good First Issue Finder is a SvelteKit web app for helping newcomers find open-source issues. The main workflow is to authenticate with GitHub, search issues using the app, and browse issue and repository details. The sampled API confirms cookie-based authentication and GitHub GraphQL search; the app-page excerpts do not show how the UI invokes it, so that connection is marked unverified. Navigation and profile components are shown as an internal presentation layer. Other UI-to-route wiring is not established by the excerpts.
Main entry points: +page.svelte Finder page · menu.svelte Mobile menu · header.svelte Header navigation · +server.ts OAuth callback
Components 19
Web experience
- Site shell
src/routes/+layout.svelte - Landing page
src/routes/+page.svelte - Header navigation
src/lib/components/header.svelte - Mobile menu
src/lib/components/hamburger-menu/menu.svelte - Menu state
src/lib/stores/show-hamburger-menu.ts - Scroll control
src/lib/util/hide-overflow.ts
GitHub identity
- Login page
src/routes/login/+page.svelte - Login redirect
src/routes/api/authentication/login/+server.ts - OAuth callback
src/routes/api/authentication/callback/+server.ts - Logout route
src/routes/api/authentication/logout/+server.ts - Profile popover
src/lib/components/profile-picture.svelte
Issue discovery
- Finder page
src/routes/app/+page.svelte - Query setup
src/routes/app/+page.ts - Issue search API
src/routes/api/get-issues/+server.ts - Issue cards
src/lib/components/issue-card.svelte - Search controls
src/lib/components/search.svelte - Issue filters
src/lib/components/filter.svelte
Other components
- Contributor
- GitHub API
Connections 23
- Contributor → Landing page: opens site
README.md - Contributor → Login page: signs in
- Contributor → Finder page: browses issues
- Site shell → Header navigation: renders header
src/routes/+layout.svelte - Site shell → Landing page: renders page
- Header navigation → Mobile menu: renders menu
src/lib/components/header.svelte - Header navigation → Profile popover: renders profile
src/lib/components/header.svelte - Mobile menu → Profile popover: renders profile
src/lib/components/hamburger-menu/menu.svelte - Mobile menu → Menu state: reads state
src/lib/components/hamburger-menu/menu.svelte - Mobile menu → Scroll control: controls scrolling
src/lib/components/hamburger-menu/menu.svelte - Profile popover → Logout route: links to
src/lib/components/profile-picture.svelte - Login page → Login redirect: starts login
- Login redirect → GitHub API: requests authorization
- GitHub API → OAuth callback: returns authorization
src/routes/api/authentication/callback/+server.ts - OAuth callback → GitHub API: fetches token and user
src/routes/api/authentication/callback/+server.ts - OAuth callback → Finder page: redirects after login
src/routes/api/authentication/callback/+server.ts - Finder page → Query setup: configures search
- Query setup → Issue search API: requests issues
- Issue search API → GitHub API: searches GraphQL
src/routes/api/get-issues/+server.ts - Search controls → Finder page: provides query
- Issue filters → Finder page: narrows issues
- Finder page → Issue cards: displays results
- Logout route → Contributor: clears session
src/routes/api/authentication/logout/+server.ts