Sun Jun 15 2025

Project Overview
The GKSS Code Challenges Platform is a comprehensive educational system designed to help developers improve their coding skills through structured programming challenges. The project consists of two interconnected repositories that work together to create a seamless learning experience with automated scoring and progress tracking.
System Architecture
Repository Structure
The platform is built around two main repositories:
1. GKSS-UNISA/code-challenges - The challenge repository containing:
- Programming challenges in Python and C++
- Automated testing frameworks
- GitHub Actions CI/CD workflows
- Comprehensive challenge documentation
2. GKSS-UNISA/code-challenges-leaderboard - The web platform featuring:
- User authentication and profile management
- Real-time leaderboard system
- API endpoints for score management
- Admin dashboard for challenge tracking
How It Works
Challenge Workflow
- Fork and Clone: Users fork the code-challenges repository to their GitHub account
- Solve Challenges: Navigate to specific challenge directories and implement solutions
- Automated Testing: Push changes trigger GitHub Actions workflows that:
- Run comprehensive test suites (GoogleTest for C++, unittest for Python)
- Validate code quality and functionality
- Check for edge cases and error handling
- Score Integration: Upon successful test completion, the workflow automatically:
- Calls the leaderboard API using secure tokens
- Increments the user's points in the database
- Updates real-time rankings on the web platform
Challenge Categories
The platform offers challenges across multiple difficulty levels:
- Beginner: Basic programming concepts (e.g., factorial calculator, palindrome checker)
- Intermediate: Data structures and algorithms (e.g., binary search tree, vector math library)
- Advanced: Complex system design (e.g., inventory management, smart pointer arrays)
Each challenge includes:
- Detailed problem descriptions with requirements
- Comprehensive test cases covering edge cases
- Solution templates with helpful comments
- Performance benchmarks and optimization tips
Technology Stack
Code Challenges Repository
- Languages: Python 3.8+, C++20
- Testing: GoogleTest (C++), unittest (Python)
- Build System: CMake for C++ projects
- CI/CD: GitHub Actions with custom workflows
- Documentation: Markdown with structured templates
Leaderboard Platform
- Frontend: Next.js 14 with TypeScript
- Styling: Tailwind CSS with Shadcn/ui components
- Authentication: Better Auth with email/password support
- Database: PostgreSQL with Prisma ORM
- API: RESTful endpoints with API key authentication
- Deployment: Vercel with edge functions
- Testing: Vitest with React Testing Library
Key Features
Automated Scoring System
The platform features a sophisticated points system that integrates directly with GitHub workflows:
User Management
- Secure authentication with session management
- Personal dashboard showing progress and rankings
- API key generation for CI/CD integration
- Profile management with challenge history
Real-time Leaderboard
- Live ranking updates as users complete challenges
- Comprehensive scoring system based on challenge difficulty
- Progress tracking with detailed statistics
- Responsive design for all device types
Development Workflow
For Contributors
- Challenge Creation: Follow structured templates in the CONTRIBUTING.md
- Testing Framework: Implement comprehensive test suites
- GitHub Actions: Create custom workflows for automated validation
- Documentation: Provide detailed READMEs with examples and tips
For Users
- Setup: Fork repository and configure development environment
- Challenge Selection: Choose challenges based on skill level
- Implementation: Code solutions in provided template files
- Validation: Local testing before pushing changes
- Submission: Automated scoring upon successful CI/CD completion
Quality Assurance
The platform maintains high code quality through:
- ESLint and Prettier for code formatting
- TypeScript for type safety
- Vitest for comprehensive testing
- Husky for pre-commit hooks
- GitHub Actions for continuous integration
Impact and Learning Outcomes
This platform serves as an excellent learning resource by:
- Providing structured, progressive skill development
- Offering real-world programming scenarios
- Teaching best practices in software development
- Building familiarity with modern development tools and workflows
- Creating a competitive yet collaborative learning environment
The GKSS Code Challenges Platform represents a modern approach to coding education, combining automated assessment with engaging user experience to create an effective learning ecosystem for developers of all skill levels.