Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: ieee.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (5.8%) to scientific vocabulary
Keywords
Repository
Web application used to assigment validation
Basic Info
- Host: GitHub
- Owner: FIIT-Databases
- License: gpl-3.0
- Language: Python
- Default Branch: master
- Homepage: https://tester-dbs.fiit.stuba.sk
- Size: 1.65 MB
Statistics
- Stars: 3
- Watchers: 1
- Forks: 2
- Open Issues: 0
- Releases: 22
Topics
Metadata Files
README.md
TesterDBS
A tool for automating the testing process for database assignments in the Database Technologies course at the Slovak University of Technology.
The tool takes a student's Docker container as input, creates a sandbox environment using Docker, and executes predefined testing scenarios consisting of HTTP requests and their expected responses. The output is a comparison of the actual responses generated by the student's image and the expected responses. The tool utilizes Docker and Redis for efficient processing.
Install
Application use these environments variables:
| Variable | Description | Default | Example |
|--------------------------|------------------------------------------|-----------------------------------|------------------------------------|
| BASE_URL | Base URL of the application | - | https://tester-dbs.fiit.stuba.sk |
| ALLOWED_HOSTS | Allowed hosts (Django Setting) | - | tester-dbs.fiit.stuba.sk |
| DATABASE_HOST | Database server location | - | docker.for.mac.localhost |
| DATABASE_NAME | Database name | - | tester |
| DATABASE_PASSWORD | Database user password | super-secure-password | |
| DATABASE_PORT | Database port | 5432 | 5432 |
| DATABASE_USER | Database user | - | tester |
| DJANGO_SETTINGS_MODULE | Django Settings Module | dbs_tester.settings.development | dbs_tester.settings.production |
| REDIS_HOST | Redis host | host.docker.internal | host.docker.internal |
| REDIS_DB | Redis database | 0 | 0 |
| REDIS_DB | Redis database | 0 | 0 |
| REDIS_DB | Redis database | 0 | 0 |
| SECRET_KEY | Django secret | - | ghp_asdqwjdsncvsdv |
| GITHUB_TOKEN | GitHub token | - | Secure-random-string-21 |
| GITHUB_USER | GitHub username | - | Sibyx |
| DBS_DOCKER_NETWORK | Docker network for assignment containers | dbs | dbs |
Docker
Dockerfile contains two targets which are pre-build and available on GitHub Container registry:
Example of configuration is present in compose.yml.
The containers require access to the Docker environment that's why you have to create volume, which maps a path to the Docker socket.
Repository contains an example of the systemd unit script in the conf/tester-dbs.service.
From source
We use poetry for dependency management and PostgreSQL 15 (10+ should be compatible) as a data storage (acquisition files are stored on the filesystem, not in the database). To set up instance with demo database follow these simple steps:
- Create python virtual environment (
python -m venv venv) - Enter environment (
source venv/bin/activate) - Install dependencies
poetry install - Create
.envfile according.env.example - Execute migrations
python manage.py migrate - Create superuser using
python manage.py createsuperuseror setup LDAP inauth_sourcestable
Docs
For more information check the docs directory.
The key concepts of this software are described in the blog post How We Built an Application to Test Student Docker Images for a Database Systems University Course.
This blog post was later extended and presented at Communication and Information Technologies (KIT) 2023 with the article Docker-Based Assignment Evaluations in E-Learning.

Made with ❤️ and ☕️ FIIT STU (c) 2022-2024
Owner
- Name: FIIT-Databases
- Login: FIIT-Databases
- Kind: organization
- Repositories: 4
- Profile: https://github.com/FIIT-Databases
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: Dubec
given-names: Jakub
orcid: https://orcid.org/0000-0003-4248-5264
- family-names: Balažia
given-names: Ján
- family-names: Bencel
given-names: Rastislav
- family-names: Čičák
given-names: Pavel
title: "Docker-Based Assignment Evaluations in E-Learning"
version: 1.12.0
identifiers:
- type: doi
value: 10.1109/KIT59097.2023.10297093
date-released: 2023-07-12
GitHub Events
Total
Last Year
Dependencies
- actions/checkout v3 composite
- docker/build-push-action v4 composite
- docker/login-action v2 composite
- docker/metadata-action v4 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- alpine 3.17 build
- 226 dependencies
- autoprefixer ^10.4.13 development
- babel-loader ^9.1.2 development
- css-loader ^6.7.3 development
- export-loader ^1.0.52 development
- postcss-loader ^7.0.2 development
- sass ^1.57.1 development
- sass-loader ^13.2.0 development
- style-loader ^3.3.1 development
- webpack ^5.75.0 development
- webpack-cli ^5.0.1 development
- @popperjs/core ^2.10.2
- bootstrap ^5.2.3
- bootstrap-icons ^1.10.3
- flake8 6.0.0 develop
- mccabe 0.7.0 develop
- pycodestyle 2.10.0 develop
- pyflakes 3.0.1 develop
- argon2-cffi 21.3.0
- argon2-cffi-bindings 21.2.0
- asgiref 3.6.0
- async-timeout 4.0.2
- beautifulsoup4 4.11.2
- certifi 2022.12.7
- cffi 1.15.1
- charset-normalizer 3.0.1
- click 8.1.3
- colorama 0.4.6
- django 4.1.7
- django-api-forms 1.0.0rc7
- django-bootstrap-v5 1.0.11
- django-rq 2.7.0
- docker 6.0.1
- idna 3.4
- markdown 3.4.1
- packaging 23.0
- porcupine-python 0.5.0
- psycopg2 2.9.5
- pyasn1 0.4.8
- pyasn1-modules 0.2.8
- pycparser 2.21
- pydantic 1.7.4
- pygal 3.0.0
- python-crontab 2.7.1
- python-dateutil 2.8.2
- python-dotenv 0.21.1
- python-ldap 3.4.3
- pywin32 305
- redis 4.5.1
- requests 2.28.2
- rq 1.12.0
- sentry-sdk 1.15.0
- six 1.16.0
- soupsieve 2.4
- sqlparse 0.4.3
- tzdata 2022.7
- urllib3 1.26.14
- websocket-client 1.5.1
- flake8 ^6.0.0 develop
- Markdown ^3.4.1
- argon2-cffi ^21.0.0
- django ^4
- django-api-forms 1.0.0rc7
- django-bootstrap-v5 ^1.0.11
- django-rq ^2.6
- docker ^6.0.1
- porcupine-python ^0.5.0
- psycopg2 ^2.9
- pygal ^3.0.0
- python ^3.10
- python-crontab ^2.7.1
- python-dotenv ^0
- python-ldap ^3.4.3
- redis ^4.0
- requests ^2.27.1
- sentry-sdk ^1