SQL Adventure Builder: a command line tool for creating standalone SQL activities.
Project description
SQLab
Presentation
A command-line tool for creating standalone educational games to learn and practice SQL.
pip install sqlab
An SQLab adventure database is self-contained: it includes the core dataset and all the accompanying messages (statements of the questions, answers, instructions, etc.). Each message is encrypted independently in an additional table sqlab_msg
.
Wrapping an SQLab adventure in a web application is not necessary (although still possible). The students can play under any generic GUI like DBeaver, phpMyAdmin, pgAdmin, etc., or even in a bare command-line interface.
The students are instructed to append to their SELECT
clauses a given formula (e.g, salt_042(sum(hash) OVER ()) AS token
) that will calculate a token. This token (a big integer) may enable them to decrypt the next episode or, in the case of a wrong query, to receive the appropriate hint (provided that the game creator anticipated it).
As a result, they can practice by themselves, without any supervision. To avoid boredom, we recommend that the instructor logs their queries, and updates the database on the fly with new hints, improving the game for everyone in the process.
Examples on GitHub
Game | Pitch | Versions | DBMS | Included |
---|---|---|---|---|
Island | An adaptation of SQL Island by Johannes Schildgen | English | MySQL, PostgreSQL | Sources + SQLab database |
Sessform | A set of independant exercises + Mortelles Sessions, a police investigation on a training company | French | MySQL, PostgresQL | SQLab database (coming soon) |
Club | An adaptation of PostgreSQL Exercises by Alisdair Owens | English | PostgreSQL | Sources + SQLab database (coming later) |
Corbeau | An original adaptation of the movie Le Corbeau by Henri-Georges Clouzot (1943) | French | MySQL | SQLab database (coming later) |
Documentation
No documentation yet.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.