diff --git a/scoreboard/index.html b/scoreboard/index.html
new file mode 100644
index 000000000..005c21072
--- /dev/null
+++ b/scoreboard/index.html
@@ -0,0 +1,18 @@
+
+
+
+
+ Task Directories
+
+
+
+ Scoreboard
+
+
+ | Tasks |
+ all | mpi | omp | seq | stl | tbb |
+
+| example | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| example_disabled | ✘ | ✘ | ✘ | ✔ | ✘ | ✘ |
+
+
+
diff --git a/scoreboard/main.py b/scoreboard/main.py
new file mode 100644
index 000000000..fa9cc37dd
--- /dev/null
+++ b/scoreboard/main.py
@@ -0,0 +1,54 @@
+from pathlib import Path
+from collections import defaultdict
+
+task_types = ['all', 'mpi', 'omp', 'seq', 'stl', 'tbb']
+
+tasks_dir = Path('tasks')
+
+directories = defaultdict(dict)
+
+for task_type in task_types:
+ task_type_dir = tasks_dir / task_type
+ if task_type_dir.exists() and task_type_dir.is_dir():
+ for task_name in (d.name for d in task_type_dir.iterdir() if d.is_dir()):
+ directories[task_name][task_type] = True
+
+print(directories)
+
+columns = ''.join(['' + task_type + ' | ' for task_type in task_types])
+html_content = f"""
+
+
+
+ Task Directories
+
+
+
+ Scoreboard
+
+
+ | Tasks |
+ {columns}
+
+"""
+
+for dir in directories:
+ html_content += f"| {dir} | "
+ for task_type in task_types:
+ if directories[dir].get(task_type):
+ html_content += "✔ | "
+ else:
+ html_content += "✘ | "
+ html_content += "
"
+
+html_content += """
+
+
+
+"""
+
+output_file = Path('scoreboard/index.html')
+with open(output_file, 'w') as file:
+ file.write(html_content)
+
+print(f"HTML page generated at {output_file}")
diff --git a/scoreboard/static/main.css b/scoreboard/static/main.css
new file mode 100644
index 000000000..dcb8f2e80
--- /dev/null
+++ b/scoreboard/static/main.css
@@ -0,0 +1,12 @@
+table {
+ width: 100%;
+ border-collapse: collapse;
+}
+th, td {
+ border: 1px solid black;
+ padding: 8px;
+ text-align: left;
+}
+th {
+ background-color: #f2f2f2;
+}