Python Sanctum / Challenges

The Forge

Industry-grade Python challenges for T-Level Digital Software Development, A-Level Computer Science, and HND Computing students. Each challenge is a real workplace brief — write the code, meet the acceptance criteria, earn your rewards.

Showing 35 of 35 challenges
Data Analysis easy
CSV Sales Reader
You have been given a CSV file of weekly sales figures by your team lead. Before any analysis can happen, you need to demonstrate you can lo...
150000 EXP 2500 Coins
Not started
Error Handling easy
Robust Division Calculator
Build a small calculator that divides two numbers entered by the user. The program must handle non-numeric input (ValueError) and division b...
150000 EXP 2500 Coins
Not started
Error Handling easy
Robust Numeric Input
Write a function `get_positive_number(prompt)` that keeps asking the user for input until they enter a valid positive number (integer or flo...
150000 EXP 1500 Coins
Not started
Exception Handling easy
Robust Age Input Loop
MediCare's patient intake kiosk crashes when staff accidentally type letters into the age field. The bug has caused two full-reboot incident...
75000 EXP 2500 Coins
Not started
Functions & Validation easy
Smart Tip Calculator
A pub in Brum has gone digital. The bar staff are tired of fumbling with a calculator app every time a table of nine wants to split the bill...
50000 EXP 500 Coins
Not started
Object-Oriented Programming easy
Employee Payroll Class
NexusCorp's HR system needs a refactor. The old codebase has payroll logic scattered across dictionaries and helper functions. You've been a...
200000 EXP 5000 Coins
Not started
Algorithms medium
Binary Search Implementation
SwiftFind Analytics runs millions of product lookups per hour. Their engineers are benchmarking search implementations — yours goes up again...
100000 EXP 5000 Coins
Not started
Data Analysis medium
Category Sales Aggregation
The finance team needs a category-level breakdown showing total units, total revenue, and average revenue per transaction for each product c...
250000 EXP 2500 Coins
Not started
Data Analysis medium
Filter & Export Sales
Marketing wants a separate CSV file containing only the high-value transactions where revenue is at least 200. Filter the sales DataFrame, c...
250000 EXP 2500 Coins
Not started
Data Analysis medium
Filter Sales by Date Range
A line manager wants to see only the sales between two specific dates. Convert the Date column to proper pandas datetime values, then filter...
50000 EXP 5000 Coins
Not started
Data Analysis medium
Sales Dashboard CLI
A regional manager wants a quick command-line dashboard for browsing sales data without opening a spreadsheet. Build a menu-driven program t...
250000 EXP 5000 Coins
Not started
Data Analysis medium
Standardise CSV Categories
A CSV export from another system has inconsistent category names (some lowercase, some with extra whitespace, some with abbreviations like H...
5000000 EXP 500 Coins
Not started
Data Structures medium
Stack Data Structure
DevTools Inc is building an undo/redo system for their editor. Before hooking it into the UI layer they need a proper Stack implementation, ...
100000 EXP 5000 Coins
Not started
Data Visualisation medium
Bar Chart: Revenue by Product
Management wants a bar chart of total revenue per product for the briefing pack. Use pandas to aggregate the data and matplotlib to plot a l...
275000 EXP 1250 Coins
Not started
Data Visualisation medium
Multi-Series Line Graph
A regional manager wants to compare daily revenue trends for three products on the same chart. Build a multi-series line graph with one line...
2000000 EXP 500 Coins
Not started
Data Visualisation medium
Payment Method Pie Chart
The finance team wants a pie chart showing the proportion of revenue collected via each payment method (Cash, Card, Online). Build a pie cha...
300000 EXP 5000 Coins
Not started
Data Visualisation medium
Score Distribution Histogram
A teacher wants to see how exam scores are distributed across their class. Build a histogram showing the frequency of scores in 10-point bin...
1000000 EXP 250 Coins
Not started
Error Handling medium
Custom Exception for Bookings
A booking system needs a custom exception class for situations where a customer tries to book outside operating hours. Build a `BookingError...
250000 EXP 5000 Coins
Not started
Error Handling medium
Safe CSV File Reader
Build a function `safe_load_csv(path)` that loads a CSV file using pandas and returns the DataFrame. It must handle three error scenarios: f...
250000 EXP 5000 Coins
Not started
Exception Handling medium
Custom Exception for Inventory
StockKeeper — a warehouse management SaaS — has a bug report: generic `ValueError`s from their stock service are indistinguishable from othe...
100000 EXP 2000 Coins
Not started
File Handling & Data medium
CSV Sales Analyser
RetailPulse, a mid-size chain, emails their analysts a CSV of daily sales every morning. The analysts have been copy-pasting totals into cal...
200000 EXP 3500 Coins
Not started
File Processing & Regex medium
Apache Log Analyzer
A web hosting client reckons their site is being scraped. They have handed you a 200MB Apache access.log and they want answers — fast. Buil...
250000 EXP 2500 Coins
Not started
Menu-Driven Apps medium
Inventory Menu System
Build a small inventory management CLI for a warehouse. The user can add a product, remove a product, list all products with their stock lev...
250000 EXP 2500 Coins
Not started
Object-Oriented Programming medium
Bank Account with Validation
Meridian Banking's core ledger microservice needs a robust account class. The previous implementation let balances go negative silently — ca...
250000 EXP 5000 Coins
Not started
Object-Oriented Programming medium
Library Loan Tracker
Worcester County Library is replacing its ancient loans system. They have asked you to build the core domain logic in Python: books, members...
100000 EXP 1000 Coins
Not started
Object-Oriented Programming medium
Shape Hierarchy with Inheritance
CAD-Forge, a drafting toolkit, needs a geometry module. Rather than a bloated if-chain for each shape type, the team wants a clean inheritan...
250000 EXP 5000 Coins
Not started
Real-World Applications medium
Password Strength Validator
SecureVault is rolling out a new account creation flow. Product has signed off on a strength meter that scores passwords 0–100 based on leng...
150000 EXP 2000 Coins
Not started
Algorithms hard
Memoised Fibonacci
QuantumLabs is tutoring new devs on algorithmic complexity. They want a demo that shows the same problem solved naively and with memoisation...
320000 EXP 3000 Coins
Not started
Algorithms & Recursion hard
Mini SQL Engine
A consultancy has been handed a stack of CSV files from a legacy system and asked to deliver "a query layer". They cannot stand up a databas...
5000000 EXP 10000 Coins
Not started
Algorithms & Recursion hard
Recursive Descent Calculator
A spreadsheet vendor is building a formula engine and needs the maths layer first. Build a calculator that takes a string expression and ret...
1500000 EXP 8000 Coins
Not started
Data Validation hard
JSON Schema Validator
A SaaS platform takes JSON payloads from third-party integrators. Bad data has been silently corrupting their database for months. They want...
500000 EXP 5500 Coins
Not started
Data Visualisation hard
Sales Dashboard with Subplots
The CEO wants a single image containing four charts: total revenue per product (bar), daily revenue trend (line), payment method split (pie)...
3200000 EXP 7500 Coins
Not started
Graph Algorithms hard
Dijkstra Delivery Router
A regional logistics firm runs lorries between depots and is haemorrhaging fuel money on suboptimal routes. Their dispatcher just types in t...
2500000 EXP 9000 Coins
Not started
Object-Oriented Programming hard
Token-Bucket Rate Limiter
A fintech startup is launching a public API. Without rate limiting, one rogue client can crater the entire service — and the on-call enginee...
750000 EXP 6500 Coins
Not started
T-Level Task 4A hard
T-Level Task 4A: Full Recoats Solution
You are completing the full Pearson T-Level DPD Core Task 4A. The senior developer has already written code that lets users see the total in...
5000000 EXP 25000 Coins
Not started