Discover real GitHub issues, claim quests, earn XP, and level up your developer journey โ all in one place.
๐ 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.
- ๐ 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
| Discover Quests | Leaderboard | Your Profile |
|---|---|---|
| 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 |
โ 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.
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.ps1OR 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:3000Open http://localhost:3000 and sign in with GitHub โ that's it! ๐
cd Backend/Backend
dotnet restoreConfigure GitHub OAuth (Required):
-
Create GitHub OAuth App at GitHub Developer Settings
- Application name:
GitQuest Local - Authorization callback URL:
http://localhost:3000/api/auth/callback/github
- Application name:
-
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"- 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"
}
}- Initialize Database:
dotnet ef database update
dotnet runcd frontend
npm installConfigure Environment Variables:
Create .env.local:
NEXT_PUBLIC_API_BASE_URL=http://localhost:5198
NEXT_PUBLIC_GITHUB_CLIENT_ID=your_github_oauth_client_idStart Development Server:
npm run dev # Development (http://localhost:3000)
npm run build # Production build
npm start # Production serverClick "Sign in with GitHub" on the home page. GitQuest uses secure GitHub OAuth โ no password required.
Navigate to Discover, filter by your favorite programming language, and browse 30+ real GitHub issues refreshed live.
GET /api/issues/discover?language=typescriptFound an issue you like? Hit "Claim Quest" to lock it in and start working.
POST /api/issues/{issueId}/claim
Authorization: Bearer <JWT_TOKEN>Open a pull request on GitHub and link it to your quest. Once merged, XP is awarded automatically and your streak counter grows.
Head to /leaderboard to see real-time rankings of contributors globally.
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.
Contributions are what make the open-source community amazing โ and GitQuest itself is a great first project to contribute to!
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name - Commit your changes:
git commit -m "feat: add your feature" - Push to your branch:
git push origin feature/your-feature-name - 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 issueorhelp wantedโ those are perfect starting points.
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! โญ