21 lines
10 KiB
HTML
21 lines
10 KiB
HTML
|
|
<!DOCTYPE html><html lang="en" class="dark" data-astro-cid-sckkx6r4> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><meta name="generator" content="Astro v6.1.7"><title>PR Dojo - Code Review Practice</title><link rel="stylesheet" href="/_astro/Layout.D3ovbguN.css"></head> <body data-astro-cid-sckkx6r4> <div class="min-h-screen"> <!-- Header --> <header class="bg-[#161b22] border-b border-[#30363d]"> <div class="max-w-6xl mx-auto px-4 py-3 flex items-center justify-between"> <div class="flex items-center gap-3"> <svg class="w-8 h-8 text-[#58a6ff]" fill="currentColor" viewBox="0 0 20 20"> <path d="M10 2a8 8 0 100 16 8 8 0 000-16zm1 11H9v-2h2v2zm0-4H9V5h2v4z"></path> </svg> <span class="text-xl font-semibold text-[#c9d1d9]">PR Dojo</span> </div> <nav class="flex items-center gap-4"> <a href="/" class="text-[#58a6ff] text-sm font-medium no-underline focus:outline-none focus:ring-0">Challenges</a> <a href="/profile" class="text-[#8b949e] hover:text-[#c9d1d9] text-sm font-medium no-underline focus:outline-none focus:ring-0">Profile</a> <button class="bg-[#1f6feb] hover:bg-[#388bfd] text-white px-4 py-1.5 rounded-md text-sm font-semibold transition-colors focus:outline-none focus:ring-0">
|
||
|
|
Sign In
|
||
|
|
</button> </nav> </div> </header> <main class="max-w-6xl mx-auto px-4 py-8"> <!-- Hero Section --> <div class="bg-[#161b22] border border-[#30363d] rounded-md p-8 mb-8"> <h1 class="text-3xl font-bold text-[#c9d1d9] mb-3">Code Review Hunter</h1> <p class="text-[#8b949e] mb-6 text-lg">
|
||
|
|
Master code review skills by fixing rejected PRs. Earn XP, climb ranks, and become a bug detection expert.
|
||
|
|
</p> <div class="flex gap-4"> <a href="/challenges/1" class="bg-[#1f6feb] hover:bg-[#388bfd] text-white px-6 py-2 rounded-md text-sm font-semibold transition-colors no-underline focus:outline-none focus:ring-0">
|
||
|
|
Start Challenge
|
||
|
|
</a> <a href="/profile" class="bg-[#21262d] hover:bg-[#30363d] text-[#c9d1d9] px-6 py-2 rounded-md text-sm font-semibold transition-colors no-underline focus:outline-none focus:ring-0">
|
||
|
|
View Profile
|
||
|
|
</a> </div> </div> <!-- Stats Banner --> <div class="bg-[#161b22] border border-[#30363d] rounded-md p-6 mb-8"> <div class="grid grid-cols-3 gap-6 text-center"> <div> <div class="text-3xl font-bold text-[#58a6ff] mb-1">0</div> <div class="text-sm text-[#8b949e]">XP Earned</div> </div> <div> <div class="text-3xl font-bold text-[#a5d6ff] mb-1">Novice</div> <div class="text-sm text-[#8b949e]">Current Rank</div> </div> <div> <div class="text-3xl font-bold text-[#79c0ff] mb-1">0</div> <div class="text-sm text-[#8b949e]">Challenges Solved</div> </div> </div> </div> <!-- Challenges Section --> <div class="mb-8"> <div class="flex items-center justify-between mb-4"> <h2 class="text-xl font-semibold text-[#c9d1d9]">Available Challenges</h2> <span class="text-sm text-[#8b949e]">5 total</span> </div> <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4"> <a href="/challenges/1" class="bg-[#161b22] border border-[#30363d] rounded-md p-5 transition-colors no-underline focus:outline-none focus:ring-0"> <h3 class="text-[#58a6ff] font-semibold no-underline mb-3">Memory Leak in Database Connection</h3> <div class="mb-3"> <span class="text-[#a5d6ff] text-base no-underline">★★★☆☆</span> </div> <div class="space-y-2 text-sm"> <div class="flex items-center gap-2 text-[#8b949e]"> <svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"> <path fill-rule="evenodd" d="M4 4a2 2 0 012-2h4.586A2 2 0 0112 2.586L15.414 6A2 2 0 0116 7.414V16a2 2 0 01-2 2H6a2 2 0 01-2-2V4z" clip-rule="evenodd"></path> </svg> <span>facebook/react</span> </div> <div class="flex items-center gap-2 text-[#8b949e]"> <span class="px-2 py-0.5 bg-[#0a3064] rounded text-xs text-[#79c0ff]">Memory Safety</span> </div> <div class="flex items-center gap-2 text-[#79c0ff] font-semibold"> <svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"> <path d="M10 18a8 8 0 100-16 8 8 0 000 16zm1-11a1 1 0 10-2 0v2H7a1 1 0 100 2h2v2a1 1 0 102 0v-2h2a1 1 0 100-2h-2V7z"></path> </svg> <span>+100 XP</span> </div> </div> </a><a href="/challenges/2" class="bg-[#161b22] border border-[#30363d] rounded-md p-5 transition-colors no-underline focus:outline-none focus:ring-0"> <h3 class="text-[#58a6ff] font-semibold no-underline mb-3">Null Pointer Dereference in User Service</h3> <div class="mb-3"> <span class="text-[#a5d6ff] text-base no-underline">★★☆☆☆</span> </div> <div class="space-y-2 text-sm"> <div class="flex items-center gap-2 text-[#8b949e]"> <svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"> <path fill-rule="evenodd" d="M4 4a2 2 0 012-2h4.586A2 2 0 0112 2.586L15.414 6A2 2 0 0116 7.414V16a2 2 0 01-2 2H6a2 2 0 01-2-2V4z" clip-rule="evenodd"></path> </svg> <span>expressjs/express</span> </div> <div class="flex items-center gap-2 text-[#8b949e]"> <span class="px-2 py-0.5 bg-[#0a3064] rounded text-xs text-[#79c0ff]">Null Pointer</span> </div> <div class="flex items-center gap-2 text-[#79c0ff] font-semibold"> <svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"> <path d="M10 18a8 8 0 100-16 8 8 0 000 16zm1-11a1 1 0 10-2 0v2H7a1 1 0 100 2h2v2a1 1 0 102 0v-2h2a1 1 0 100-2h-2V7z"></path> </svg> <span>+75 XP</span> </div> </div> </a><a href="/challenges/3" class="bg-[#161b22] border border-[#30363d] rounded-md p-5 transition-colors no-underline focus:outline-none focus:ring-0"> <h3 class="text-[#58a6ff] font-semibold no-underline mb-3">Race Condition in Counter Service</h3> <div class="mb-3"> <span class="text-[#a5d6ff] text-base no-underline">★★★★☆</span> </div> <div class="space-y-2 text-sm"> <div class="flex items-center gap-2 text-[#8b949e]"> <svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"> <path fill-rule="evenodd" d="M4 4a2 2 0 012-2h4.586A2 2 0 0112 2.586L15.414 6A2 2 0 0116 7.414V16a2 2 0 01-2 2H6a2 2 0 01-2-2V4z" clip-rule="evenodd"></path> </svg> <span>rails/rails</span> </div> <div class="flex items-center gap-2 text-[#8b949e]"> <span class="px-2 py-0.5 bg-[#0a3064] rounded text-xs text-[#79c0ff]">Concurrency</span> </div> <div class="flex items-center gap-2 text-[#79c0ff] font-semibold"> <svg class="w-4 h-4" f
|
||
|
|
1
|
||
|
|
</div> <h3 class="text-[#c9d1d9] font-semibold mb-2">Find Bugs</h3> <p class="text-[#8b949e] text-sm">
|
||
|
|
Analyze code and flag buggy sections with GitHub-style inline hints
|
||
|
|
</p> </div> <div class="text-center"> <div class="w-12 h-12 bg-[#1f6feb] rounded-md flex items-center justify-center mx-auto mb-3 text-white font-bold text-lg">
|
||
|
|
2
|
||
|
|
</div> <h3 class="text-[#c9d1d9] font-semibold mb-2">Identify Lines</h3> <p class="text-[#8b949e] text-sm">
|
||
|
|
Select exact line numbers where issues occur for bonus points
|
||
|
|
</p> </div> <div class="text-center"> <div class="w-12 h-12 bg-[#1f6feb] rounded-md flex items-center justify-center mx-auto mb-3 text-white font-bold text-lg">
|
||
|
|
3
|
||
|
|
</div> <h3 class="text-[#c9d1d9] font-semibold mb-2">Submit Fix</h3> <p class="text-[#8b949e] text-sm">
|
||
|
|
Write a unified diff patch and earn double XP on success
|
||
|
|
</p> </div> </div> </div> </main> <!-- Footer --> <footer class="border-t border-[#30363d] mt-12"> <div class="max-w-6xl mx-auto px-4 py-6 text-center text-[#8b949e] text-sm"> <p>Code Review Hunter - Practice fixing rejected PRs and earn XP</p> </div> </footer> </div> </body></html>
|