Skip to content

BeyteFlow/GitQuest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

79 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ—บ๏ธ GitQuest

Turn open-source contributions into an epic adventure

Discover real GitHub issues, claim quests, earn XP, and level up your developer journey โ€” all in one place.

Stars License: MIT Issues PRs Welcome Next.js .NET


๐Ÿš€ Open source feels overwhelming? GitQuest breaks the barrier โ€” it surfaces the right issues for your skill level so you can start contributing today, not someday.


GitQuest Demo


โœจ Features

  • ๐Ÿ” Quest Discovery โ€” Browse 30+ real GitHub issues filtered by programming language and difficulty level
  • ๐Ÿ† Gamification System โ€” Earn XP, track streaks, and climb the global leaderboard
  • ๐ŸŽฏ Skill-Matched Levels โ€” Issues tagged as Beginner, Intermediate, or Expert so you always find the right challenge
  • ๐Ÿ” GitHub OAuth โ€” One-click sign in with your existing GitHub account; no extra account needed
  • ๐Ÿ“Š Contribution Dashboard โ€” A personal profile showing your completed quests, XP, and contribution streak
  • ๐Ÿฅ‡ Live Leaderboard โ€” Compete with other contributors and see where you rank globally with real-time data
  • ๐Ÿ—‚๏ธ Project Explorer โ€” Discover open-source projects looking for contributors like you
  • โšก Real-Time Integration โ€” Live data from GitHub API, no mock data

๐Ÿ–ผ๏ธ Preview

Discover Quests Leaderboard Your Profile
Discover Leaderboard Profile

๐Ÿ› ๏ธ Tech Stack

Layer Technology
Frontend Next.js 16, React 19, TypeScript, Tailwind CSS, Shadcn/ui
Backend ASP.NET Core 8, C#, Entity Framework Core
Database SQL Server with Entity Framework migrations
Auth GitHub OAuth 2.0 + JWT Bearer Tokens (HTTP-only cookies)
API RESTful endpoints with Swagger/OpenAPI documentation
Integration Live GitHub API, Real-time data synchronization

๐Ÿš€ Current Status

โœ… Fully Integrated & Operational

  • Frontend-backend integration complete with real GitHub API data
  • OAuth authentication working end-to-end
  • Live leaderboard with real user rankings
  • 30+ real GitHub issues loaded dynamically
  • Security: JWT tokens in HTTP-only cookies, secrets in user secrets
  • CORS configured between frontend (3000) โ†” backend (5198)

๐ŸŽฏ Ready to Use: Both services are fully functional and can be started with the provided PowerShell script or manual commands above.


โšก Quick Start

Prerequisites: Node.js 18.18+, .NET 8 SDK, SQL Server, a GitHub OAuth App

๐Ÿš€ Easy Setup with PowerShell Script:

# 1. Clone and navigate to repository
git clone https://github.com/BeyteFlow/GitQuest.git
cd GitQuest

# 2. Run the integrated startup script (starts both services)
.\start-gitquest.ps1

OR Manual Setup:

# 1. Backend (Terminal 1)
cd Backend/Backend
dotnet restore && dotnet run
# API available at http://localhost:5198 | Swagger UI at http://localhost:5198/swagger

# 2. Frontend (Terminal 2) 
cd frontend
npm install && npm run dev
# App available at http://localhost:3000

Open http://localhost:3000 and sign in with GitHub โ€” that's it! ๐ŸŽ‰


๐Ÿ“ฆ Installation & Configuration

๐Ÿ”ง Backend Setup

cd Backend/Backend
dotnet restore

Configure GitHub OAuth (Required):

  1. Create GitHub OAuth App at GitHub Developer Settings

    • Application name: GitQuest Local
    • Authorization callback URL: http://localhost:3000/api/auth/callback/github
  2. Set User Secrets (Secure - Recommended):

# Initialize user secrets
dotnet user-secrets init

# Set GitHub OAuth credentials
dotnet user-secrets set "GitHub:ClientSecret" "your_github_oauth_client_secret"
  1. Configure appsettings.json:
{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=GitQuestDB;Trusted_Connection=True;"
  },
  "JwtSettings": {
    "Key": "Your_Super_Secret_Key_At_Least_32_Chars_Long!",
    "Issuer": "GitQuestBackend",
    "Audience": "GitQuestFrontend",
    "DurationInMinutes": 1440
  },
  "GitHub": {
    "ClientId": "your_github_oauth_client_id",
    "CallbackUrl": "http://localhost:3000/api/auth/callback/github"
  }
}
  1. Initialize Database:
dotnet ef database update
dotnet run

๐ŸŒ Frontend Setup

cd frontend
npm install

Configure Environment Variables: Create .env.local:

NEXT_PUBLIC_API_BASE_URL=http://localhost:5198
NEXT_PUBLIC_GITHUB_CLIENT_ID=your_github_oauth_client_id

Start Development Server:

npm run dev      # Development (http://localhost:3000)
npm run build    # Production build
npm start        # Production server

๐ŸŽฎ Usage

1. ๐Ÿ” Sign In

Click "Sign in with GitHub" on the home page. GitQuest uses secure GitHub OAuth โ€” no password required.

2. ๐Ÿ” Discover Real Quests

Navigate to Discover, filter by your favorite programming language, and browse 30+ real GitHub issues refreshed live.

GET /api/issues/discover?language=typescript

3. ๐ŸŽฏ Claim a Quest

Found an issue you like? Hit "Claim Quest" to lock it in and start working.

POST /api/issues/{issueId}/claim
Authorization: Bearer <JWT_TOKEN>

4. ๐Ÿ† Complete & Earn XP

Open a pull request on GitHub and link it to your quest. Once merged, XP is awarded automatically and your streak counter grows.

5. ๐Ÿฅ‡ Check the Live Leaderboard

Head to /leaderboard to see real-time rankings of contributors globally.


๐Ÿ’ก Why GitQuest?

Contributing to open source for the first time is hard. Finding the right issue, understanding the codebase, and getting started all take time. Most beginners give up before they even open their first PR.

GitQuest changes that by:

  • Surfacing beginner-friendly issues so you don't waste hours searching
  • Adding game mechanics (XP, streaks, leaderboards) that keep you motivated
  • Tracking your journey so every contribution feels meaningful and visible

Whether you're a student looking to build your portfolio or a seasoned dev wanting to explore new projects, GitQuest makes open-source contribution accessible, rewarding, and fun.


๐Ÿค Contributing

Contributions are what make the open-source community amazing โ€” and GitQuest itself is a great first project to contribute to!

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/your-feature-name
  3. Commit your changes: git commit -m "feat: add your feature"
  4. Push to your branch: git push origin feature/your-feature-name
  5. Open a Pull Request โ€” we review promptly!

Please read our Contributing Guidelines and follow the Code of Conduct if present.

๐Ÿ’ก Tip: Check the Issues tab for tasks labelled good first issue or help wanted โ€” those are perfect starting points.


๐Ÿ“œ License

Distributed under the MIT License. See LICENSE for full details.


Made with โค๏ธ by BeyteFlow and the open-source community

โญ If GitQuest helped you, give it a star โ€” it means the world! โญ

About

No description, website, or topics provided.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Contributors