Involves: Python, Django, PostgreSQL
Hifadhidata allows students to independently solve SQL challenges in a competitive format. Students are given a written explanation of what their query should accomplish, along with a view of the dataset(s) involved. Writing a satisfactory query allows them to advance to the next challenge, with challenges being grouped together in levels of increasing difficulty.
Queries are run against a PostgreSQL database and checked for correctness by the application itself. Giving the students the ability to advance independently allows motivated students to learn faster while other students work together at their own pace. Among the secondary schools students I've taught using Hifadhidata, the best went from not knowing any SQL to writing queries with multiple WHERE clauses, orders, and aggregate functions within the span of just one month.