Technical

How It Works

Understand the complete flow from solving a problem to earning XP and viewing your results.

1 Solving Flow

Here's how BudiBadu works from start to finish:

  1. Browse Problems: Navigate to /problem and filter by category or difficulty.
  2. Select Language: Choose your preferred programming language (Python, JavaScript, Java, etc.).
  3. Write Code: Use the built-in code editor with syntax highlighting.
  4. Run Tests: Click "Run" to test against sample cases before submitting.
  5. Submit: Click "Submit" to run against all hidden test cases via Judge0.
  6. View Results: See your result (Accepted, Wrong Answer, TLE, etc.) instantly.

Only "Accepted" submissions are stored and count toward your XP and statistics.

Only Accepted = Stored

Wrong answers are not saved. Only successful submissions become part of your history.

2 Judge0 Code Execution

BudiBadu uses Judge0, an open-source online code execution system, to evaluate your submissions:

  • Your code is sent to our secure Judge0 cluster.
  • It runs in an isolated Docker container with strict resource limits.
  • Results are returned within milliseconds, including execution time and memory usage.

Judge0 supports multiple languages and provides accurate, sandboxed execution—ensuring fair and consistent results for all users.

3 XP Calculation System

Experience Points (XP) are awarded per answer per platform per problem:

  • Easy: 10 XP per accepted answer
  • Medium: 25 XP per accepted answer
  • Hard: 50 XP per accepted answer

This means if you solve Problem A with Python (10 XP) and then solve it again with Go (10 XP), you earn 20 XP total. Each language/platform combination counts separately!

Multi-Language Rewards

Solving the same problem in multiple languages multiplies your XP earned.

4 Best Answers

After you solve a problem, you can view Best Answers—verified reference solutions for each language:

  • Switch between tabs to see solutions in Python, JavaScript, Java, Go, etc.
  • Each solution includes a "Copy Code" button for easy reference.
  • Study optimized approaches and compare with your own solution.

Best answers are curated to show clean, efficient implementations.

5 Problem Comments

Each problem page includes a Comments section where users can:

  • Ask questions about the problem statement or test cases.
  • Share hints and discuss approaches (without spoiling the answer).
  • Help other users who are stuck.

Sign in with GitHub to participate in discussions. Comments are tied to your profile.

6 Problem Examples & Templates

Every problem on BudiBadu comes with:

  • Problem Description: Clear explanation of what you need to solve.
  • Input/Output Examples: Sample test cases with expected results.
  • Starter Code: Pre-filled function templates for each language.
  • Constraints: Size limits to help you understand time/space requirements.

The code editor loads a starter template based on your selected language, so you can start coding immediately.

7 Level Progression

BudiBadu uses a carefully designed leveling system:

  • Levels 1-15: Each level has a predefined XP range with increasing gaps.
  • Levels 16+: XP requirement grows linearly. Each level adds +500 XP to the gap.

The leaderboard ranks users by total XP earned across all problem-platform combinations.