SQL-Train is a learning platform created by students for students, where you can execute and solve SQL tasks directly in your browser. The Tool can be integrated in to LMSs via LTI (Learning Tools Interoperability).
This project was part of the summer term projects 2023 of the Augsburg Technological University of Applied Sciences1 and was supervised by Prof. Dr. Matthias Kolonko.
SQL-Train_Tutorial_.Short_Video.mp4
Python | Node | Libpq |
---|---|---|
>=3.9 | >=16 | >=15 |
npm install --prefix frontend/
npm run build --prefix frontend/
python -m pip install -r requirements.txt
Create an .env
file and set all the variable from .env-testing
. Copy
config.json.example
to config.json
and set values if needed.
python manage.py makemigrations
python manage.py migrate
Unfortunately we cannot release the exercises from the internal gitlab submodule because we do not have the copyright.
In order to populate the website with exercises, some example data has been provided that can be loaded into the database.
cp example_exercises/* exercises_data/ # copy the exercises to the MEDIA_ROOT
python manage.py loaddata exercises_data/*.yaml # load the exercises
To use the website locally, you need to create a superuser (admin) account that will allow you to manage the database.
python manage.py createsuperuser
python manage.py runserver
After launching the frontend for the first time, you need to log in to http://127.0.0.1:8000/admin using the superuser account you just created in order to establish a connection to the website. Then you can use the app at the http://127.0.0.1:8000/.
See here for deployment in production.
- Authentication via LTI
- Support for all full DML and DDL
- I18n
- User-friendly, clean and modern UI
The project was a cross-semester project at the Augsburg Technological University of Applied Sciences. The members of the project were the following members
Nicolas Bota
Marcel Geiger
Florian Paul
Rajbir
Singh
Niklas Sirch
Jan Swiridow
Duc Minh Vu
Mike Wegele
Thank you for considering contributing to our project! We welcome any suggestions, bug reports, or feature requests. Please feel free to submit a pull request or open an issue on our Github repository.
Before submitting a pull request, please make sure to
- Follow the existing coding style and naming conventions
- Write clear and concise commit messages
- Provide test coverage for any new features or changes
We would like to express our thanks to Sabine Müllenbach from TH Augsburg for providing the concept of our tool in the project repDB, which has provided students with an valuable learning tool.
We are also grateful to the creators of Hyperchalk for their open source code contribution in developing the LTI Advantage 1.3 automatic registration. Thank you very much.
This work is licensed under multiple licences. Because keeping this section up-to-date is challenging, here is a brief summary as of June 2023:
- All original source code is licensed under GPL-3.0-or-later.
- The Logo contains the iconic face group of the logo of the TH Augsburg1 and is licensed under CC-BY-ND-4.0
- All documentation, images and example exercises are licensed under CC-BY-SA-4.0.
- All insignificant file such as configs are licensed under CC0-1.0.
- The code borrowed from Hyperchalk is licensed under GPL-3.0 For more accurate information, check the individual files.
- The documentation is based on arc42 template, originally created by Gernot Starke and Peter Hruschka, which can be found here. It has been altered to fit our needs. arc42 is licensed under CC-BY-SA-4.0.