Coding Challenges

Sharpen your instincts with quick challenges, keep your streak alive, and climb the leaderboard.

JavaScript

Available Products

Use JavaScript filter() to return only available product objects, keeping their original order and leaving the source array unchanged.

50XPBeginner

JavaScript

Available Seats

Write a JavaScript function that accepts an array of seat states, loops through it, and returns the number of seats still available.

50XPBeginner

Python

Available Seats in Python

Write a Python function that accepts a list of seat states, loops through it, and returns the number of seats still available.

50XPBeginner

JavaScript

Battery Warning

Use a JavaScript if statement to detect a low battery level and print a clear warning when the charge drops below 20 percent.

50XPBeginner

Python

Battery Warning in Python

Use a Python if statement to check a battery level and print a warning only when the provided value falls below the required threshold.

50XPBeginner

React

Build a Character Limit Textarea

Build a typed React textarea that enforces a configurable character limit, reports the remaining count, and sends each accepted value upstream.

Featuring

JJason Torres
100XPIntermediate

HTML & CSS

Build a Coffee Shop Menu

Style a hand-printed coffee shop menu with a centered card, aligned item prices, separators, and a featured drink treatment.

50XPBeginner

JavaScript

Build a Field Notes Checklist

Add delegated checklist toggles, persistent status filters, and accessible progress updates to a field journal, including an accurate empty state.

100XPIntermediate

HTML & CSS

Build a Flexbox Navigation Bar

Use CSS Flexbox to align a semantic site header, place the brand and navigation apart, and space the navigation links in one clear row.

50XPBeginner

TypeScript

Build a Generic Result Wrapper

Build a generic TypeScript Result type and helper functions that preserve each success value's type while representing failures safely.

200XPAdvanced

JavaScript

Build a Live Festival Pass

Complete a festival pass input handler that trims the visitor's name, updates the badge instantly, and shows an accurate 20-character count.

50XPBeginner

HTML & CSS

Build a Museum Exhibit Timeline

Style a museum exhibit timeline with a copper spine, aligned year badges, archival cards, and a distinct treatment for the featured milestone.

50XPBeginner

JavaScript

Build a Notification Inbox

Use one delegated click handler to mark inbox items as read, update each button and row, and recalculate the remaining unread total.

100XPIntermediate

Python

Build a Python Slugify Utility

Write a Python slugify function that lowercases words, preserves digits, collapses punctuation into single hyphens, and handles empty input.

50XPBeginner

React

Build a Recipe Serving Scaler

Build a React recipe scaler that updates ingredient amounts from serving state, respects the 1 to 8 limits, and restores the original recipe.

100XPIntermediate

HTML & CSS

Build a Responsive Product Grid

Turn a stacked product list into a three-column CSS Grid with consistent gaps, then collapse it to one column on screens up to 700px.

100XPIntermediate

HTML & CSS

Build a Semantic FAQ Card

Build a native FAQ disclosure with semantic details and summary elements, then style the question and answer as a compact dark card.

50XPBeginner

React

Build a Team Member Card

Complete a reusable React team member card that reads name, role, and online status from props while rendering both example members.

50XPBeginner

JavaScript

Build a Ticket Quantity Stepper

Wire a ticket quantity stepper that stays between zero and eight, updates the total and summary, and disables controls at the correct limits.

50XPBeginner

TypeScript

Build a TypeScript Slugify Utility

Write a TypeScript slugify function that lowercases words, preserves digits, collapses punctuation into single hyphens, and handles empty input.

Featuring

JJason Torres
50XPBeginner

HTML & CSS

Build a Workshop Signup Form

Build an accessible workshop signup form with connected labels, appropriate controls, and native required-field validation, using only HTML.

50XPBeginner

JavaScript

Build an Async Task Pool

Build a JavaScript task pool that limits concurrent promises, starts queued work as slots open, preserves result order, and rejects on failure.

200XPAdvanced

HTML & CSS

Build an Editorial Pull Quote

Add a semantic editorial pull quote with figure, blockquote, caption, and citation markup, then lay it out with CSS Grid and a decorative mark.

100XPIntermediate

JavaScript

Build an Interactive Metro Route Planner

Create a two-step DOM interaction that selects metro endpoints, highlights the route, calculates stops, and resets the planner.

100XPIntermediate

JavaScript

Convert a Promise Chain to async/await

Refactor a working JavaScript Promise chain into an async function that awaits user and post data before returning one dashboard object.

100XPIntermediate

JavaScript

Delivery Speed

Build a JavaScript else if chain that classifies delivery speed as Express, Priority, or Standard from the provided number of days.

50XPBeginner

Python

Delivery Speed in Python

Classify a Python delivery estimate with if, elif, and else branches that cover express, priority, and standard arrival ranges.

50XPBeginner

JavaScript

Find a User

Build a JavaScript function with find() that returns the user matching a requested ID, or null when no user has that ID.

50XPBeginner

JavaScript

Find the First Available Seat

Use Array.find() to return the first seat whose availability is exactly true, or null when the list contains no open seats.

50XPBeginner

Python

Find the First Available Seat in Python

Use Python's next() with a generator to return the first truly available seat label, or None when the list has no open seats.

50XPBeginner

JavaScript

Find the Low Stock Products

Write a JavaScript function that returns low-stock product names in source order, including items exactly at the requested inventory limit.

50XPBeginner

Python

Find the Low Stock Products in Python

Write a Python function that returns low-stock product names in their original order, including items exactly at the supplied limit.

50XPBeginner

JavaScript

Fix the Async Retry Helper

Repair an async retry helper so it stops at the first successful result, respects the attempt limit, and throws the final failure.

100XPIntermediate

JavaScript

Fix the Catalog Query Helper

Repair a catalog query helper so filtering, numeric sorting, pagination, and result metadata work correctly without mutating the product list.

100XPIntermediate

HTML & CSS

Fix the Div Soup Page

Turn a div-only page into meaningful HTML with header, navigation, list, heading, main, and footer elements that clarify its structure.

50XPBeginner

React

Fix the Mutating Todo State

Fix a React todo toggle by updating state immutably, changing only the selected item while keeping counts, styles, and repeated clicks in sync.

Featuring

JJason Torres
100XPIntermediate

React

Fix the Product Search Filter

Repair a React product search so the input updates component state and filters product names immediately without case sensitivity.

100XPIntermediate

Python

Fix the Python Shopping Cart Total

Fix a Python shopping cart function so it multiplies every item's price by its quantity, totals every line, and handles an empty cart.

50XPBeginner

JavaScript

Fix the Shopping Cart Total

Fix a JavaScript cart total function so it multiplies every item's price by its quantity, includes all lines, and returns zero for an empty cart.

50XPBeginner

JavaScript

Free Shipping

Combine JavaScript comparison and logical operators to decide when an order qualifies for free shipping based on total and membership.

50XPBeginner

Python

Free Shipping in Python

Combine Python logical operators to award free shipping for qualifying totals or member orders while handling every other order.

50XPBeginner

JavaScript

Fuel Gauge

Practice a JavaScript while loop by increasing a fuel gauge in fixed steps until the tank reaches 100 percent and launch is ready.

50XPBeginner

Python

Fuel Gauge in Python

Use a Python while loop that prints the remaining fuel, changes its state each time, stops at zero, and prints an empty warning.

50XPBeginner

JavaScript

Game Start Countdown

Use a descending JavaScript for loop to count from five to one, then print a final message that starts the game for waiting players.

50XPBeginner

Python

Game Start Countdown in Python

Use a descending Python for loop with range to print a countdown from the provided starting number, followed by a clear launch message.

50XPBeginner

JavaScript

Handle a Rejected Request

Use JavaScript async/await with try and catch to return a clear success or error result from a deterministic profile request.

100XPIntermediate

TypeScript

Handle Optional Profile Fields

Handle optional TypeScript profile fields with nullish fallbacks so complete and partial profiles produce clear readable summaries.

50XPBeginner

JavaScript

Highest Score

Build a JavaScript function that loops through a score array and returns the highest value without sorting or using higher order methods.

50XPBeginner

Python

Highest Score in Python

Build a Python function that loops through a score list and returns the highest value without sorting or using built-in maximum helpers.

50XPBeginner

JavaScript

Inventory Report

Calculate total inventory value in JavaScript by looping through product objects, multiplying price by quantity, and returning the total.

50XPBeginner

HTML & CSS

Mark Up a Ramen Recipe

Replace paragraph-only recipe content with description, unordered, ordered, and nested lists that give each section the right HTML structure.

50XPBeginner

JavaScript

Merge Settings

Merge default and user JavaScript settings with object spread syntax, preserve both original objects, and return the combined settings.

50XPBeginner

JavaScript

Mission Clearance

Combine role, account status, two factor security, and clearance level in JavaScript to select the correct mission access result.

50XPBeginner

Python

Mission Clearance in Python

Combine several Python boolean checks in an ordered conditional chain to assign full, edit, read only, or denied mission access.

50XPBeginner

TypeScript

Model a Product Object

Define a TypeScript product object type with required primitive fields so the provided formatter and sample catalog compile safely.

50XPBeginner

TypeScript

Model Deployment Events with TypeScript

Model deployment events with a TypeScript discriminated union so status checks narrow every variant to its required fields safely.

100XPIntermediate

TypeScript

Narrow a Search Result

Use TypeScript union narrowing with typeof to format text and numeric search results safely without weakening the declared types.

100XPIntermediate

JavaScript

Obstacle Course

Control a JavaScript loop with continue and break to skip blocked course levels and stop when the final checkpoint is reached.

50XPBeginner

Python

Obstacle Course in Python

Use Python continue and break inside a loop to skip one checkpoint, stop at the finish, and avoid processing later entries.

50XPBeginner

JavaScript

Order Readiness

Combine JavaScript some() and every() to decide whether an order has no backorders and every requested quantity is valid.

100XPIntermediate

JavaScript

Order Total

Combine functions, arrays, loops, and conditionals in JavaScript to total an order, apply a qualifying discount, and return the final price.

50XPBeginner

Python

Order Total in Python

Combine functions, lists, loops, and conditionals in Python to total an order, apply a qualifying discount, and return the final price.

50XPBeginner

JavaScript

Pack the Backpack

Use JavaScript push() to add two essential supplies to a backpack array, then report the completed packing list and its new length.

50XPBeginner

Python

Pack the Backpack in Python

Use Python append() to add two essential supplies to a backpack list, then print the completed packing list and its new length.

50XPBeginner

JavaScript

Passing Scores

Loop through JavaScript scores, identify every passing result, and maintain an accurate count without changing the original array.

50XPBeginner

Python

Passing Scores in Python

Combine a Python for loop, conditional check, and accumulator to count how many scores meet or exceed the passing threshold.

50XPBeginner

JavaScript

Personal Greeting

Write a JavaScript function that accepts a name, returns a personalized greeting, and prints the result from a call with the provided value.

50XPBeginner

Python

Personal Greeting in Python

Write a Python function that accepts a name, returns a personalized greeting, and prints the result from a call with the provided value.

50XPBeginner

JavaScript

Player Profile

Create a JavaScript player object with three properties, then read its name and level to print a clear profile summary in the Output panel.

50XPBeginner

Python

Player Profile in Python

Create a Python player dictionary with name, level, and role values, then read its keys to print a clear profile summary.

50XPBeginner

JavaScript

Priority Queue

Manage a JavaScript support queue with shift() and unshift(), recording the served customer before placing an urgent customer at the front.

50XPBeginner

JavaScript

Product Label

Build a JavaScript function that accepts a product object and returns a formatted label using its name and price properties.

50XPBeginner

Python

Product Label in Python

Build a Python function that accepts a product dictionary and returns a formatted label using its stored name and price values.

50XPBeginner

JavaScript

Product Labels

Build a JavaScript function that uses map() to turn product objects into formatted price labels while preserving their original order.

50XPBeginner

React

Refactor the Notification Settings

Refactor repeated React notification rows into one reusable component while keeping state in the parent and preserving every toggle and reset behavior.

100XPIntermediate

JavaScript

Remove the Last Track

Use JavaScript pop() to remove the final track from a playlist, capture the returned value, and print both the removed track and remaining songs.

50XPBeginner

Python

Remove the Last Track in Python

Use Python pop() to remove the final track from a playlist, save the returned song, and print both the removed track and remaining list.

50XPBeginner

JavaScript

Repair the Inventory

Repair a JavaScript inventory with splice() by replacing one unavailable item with two new supplies, then report what was removed and the final list.

50XPBeginner

JavaScript

Resolve a Delayed Message

Complete a JavaScript Promise that resolves a delayed message, then run the program to confirm the value appears after the timer finishes.

50XPBeginner

Python

Reverse a List in Python

Reverse a Python list by hand with a loop, return a new list, and leave the original order unchanged without using built-in shortcuts.

50XPBeginner

Python

Route Endpoints in Python

Read values from a Python list by positive and negative index, then print the first and last destinations from the provided route.

50XPBeginner

JavaScript

Run Independent Tasks with Promise.all

Run three independent JavaScript data requests concurrently with Promise.all, then return their results together in one dashboard object.

100XPIntermediate

JavaScript

Secure Login

Order JavaScript conditional rules so a locked account takes priority over a correct password and produces the proper login message.

50XPBeginner

Python

Secure Login in Python

Apply prioritized Python conditional rules so an account lockout takes precedence before a correct password can grant or deny access.

50XPBeginner

JavaScript

Shipping Address

Work with a nested JavaScript customer object by updating its city and printing a complete shipping address from nested properties.

50XPBeginner

Python

Shipping Address in Python

Work with a nested Python customer dictionary by updating its city and printing a complete shipping address from nested values.

50XPBeginner

JavaScript

Shopping Cart Total

Use JavaScript reduce() to total a shopping cart by multiplying each item's price by its quantity, including an empty cart total of zero.

100XPIntermediate

HTML & CSS

Style a Responsive Pricing Card with Tailwind

Style an unformatted subscription card with responsive Tailwind utilities, including a featured badge and accessible interaction states.

Featuring

JJason Torres
100XPIntermediate

HTML & CSS

Style an Event Card

Style a semantic HTML event card with foundational CSS spacing, borders, colors, and a clear deadline badge in the browser preview.

50XPBeginner

JavaScript

Summarize Orders by Status

Use JavaScript reduce() to group orders by dynamic status values, calculating each group's count and total without changing the source data.

100XPIntermediate

Python

Summarize Orders by Status in Python

Group Python order records by dynamic status values, calculating each group's count and total without changing the input data.

100XPIntermediate

JavaScript

Supply Run

Use a JavaScript for...of loop to pack every supply in array order, then report how many items were packed for the trip.

50XPBeginner

Python

Supply Run in Python

Iterate directly over a Python list of supplies and print every packed item in its original order without hardcoding the values.

50XPBeginner

JavaScript

Team Roster

Use JavaScript forEach() to print every team member in order with a clear label, practicing callback values without changing the original array.

50XPBeginner

JavaScript

Ticket Booth

Use JavaScript if and else branches to choose the correct ticket label for a child or standard admission based on the provided age.

50XPBeginner

Python

Ticket Booth in Python

Use Python if and else branches to choose the correct admission label from a visitor's age and print the resulting ticket type.

50XPBeginner

JavaScript

Ticket Price

Use a JavaScript function with parameters and conditional returns to calculate the correct ticket price from age and membership status.

50XPBeginner

Python

Ticket Price in Python

Use a Python function with parameters and conditional returns to calculate the correct ticket price from age and membership status.

50XPBeginner

JavaScript

Tip Calculator

Build a JavaScript tip calculator function that accepts a bill total and percentage, returns the tip amount, and prints the calculated result.

50XPBeginner

Python

Tip Calculator in Python

Build a Python tip calculator function that accepts a bill total and percentage, returns the tip amount, and prints the calculated result.

50XPBeginner

JavaScript

Toggle the Record Player

Complete a record player control that toggles playback, updates the button and status labels, and keeps the turntable animation in sync.

50XPBeginner

JavaScript

Treasure Grid

Search a JavaScript grid with nested loops, locate the hidden treasure marker, and report its row and column coordinates.

50XPBeginner

Python

Treasure Grid in Python

Search a two-dimensional Python grid with nested loops and report the zero-based row and column containing the treasure marker.

50XPBeginner

TypeScript

Type a Price Calculator

Add TypeScript parameter and return annotations to a price calculator so strict compilation succeeds while preserving the calculated total.

50XPBeginner

JavaScript

Update the Guest List

Update a JavaScript guest list by replacing one array item through its index, then print the corrected list without adding another guest.

50XPBeginner

Python

Update the Guest List in Python

Update a Python list item in place through its index, then print the corrected guest list without adding or removing any names.

50XPBeginner

JavaScript

Update the Scoreboard

Update an existing JavaScript scoreboard object by changing its score, adding a winner status, and printing the completed object.

50XPBeginner

Python

Update the Scoreboard in Python

Update a Python scoreboard dictionary with a new score and winner key, then print the completed game result from the stored data.

50XPBeginner

JavaScript

Weekend Schedule

Use JavaScript slice() to copy the weekend plans from a weekly schedule, then print both arrays to prove the original schedule stayed unchanged.

50XPBeginner

Python

Weekend Schedule in Python

Use Python list slicing to copy the weekend plans from a weekly schedule, then print both lists to confirm the original stays unchanged.

50XPBeginner