2026-06-01 21:42:49 +02:00
2026-06-01 21:42:49 +02:00
2026-06-01 21:42:49 +02:00
2026-06-01 21:42:49 +02:00
2026-06-01 21:42:49 +02:00
2026-06-01 21:42:49 +02:00
2026-06-01 21:42:49 +02:00
2026-06-01 21:42:49 +02:00
2026-06-01 22:00:37 +02:00
2026-06-01 21:42:49 +02:00

Assignment 03: Graph Database for Lecture Management

This repository contains an exercise for the Graph Databases course at the JKU. It contains the implementation for an application layer that uses an underlying graph database with data that is provided in the Moodle course.

How to Use

  1. Clone the repository:
 git clone https://git.implohq.de/semester06-graph_databases/assignment03
  1. Set up the database:
    • Run with docker run -p 7474:7474 -p 7687:7687 -v /home/quirinecker/Downloads/neo4j/data:/data --env=NEO4J_AUTH=none neo4j:latest
    • Import via the cypher file that is provided in the moodle course
  2. Run Application:
    • Install dependencies with deno install or alternatively npm install
    • Configure the environment variables in .env file.
      • Sample file:
      
        NEO4J_URI=neo4j://localhost:7687
        NEO4J_USERNAME=neo4j
        NEO4J_PASSWORD=admin
      
      
    • Run deno run dev or alternatively npm run dev

Tech Stack

  • Deno (or Node.js) (its just for package management)
  • Neo4j
  • Astro
  • TypeScript

Features

1. Automatic Deletion Notifications

  • Deleting any node (e.g., student, professor, lecture) automatically creates a Notification node.

2. Lecture Participant Management

  • List Participants: Enter a lecture number to list all participants (students and professors) in ascending order by name.
  • Add Participants: Add new participants to a lecture.
  • Search for lectures using a flexible search string.
  • The string can match:
    • Professor's name.
    • Lecture ID.
    • Lecture topic.
    • Room.
    • Date.
  • Returns a list of all matching lectures.

4. Student Grading

  • Search for a student by name or matriculation number.
  • Grade them for an exam only if they are registered for that exam.
  • Prevents grading unregistered students.

5. Delete Students

  • Delete a student by:
    • Matriculation number.
    • Name (first or last).

6. Relationship Queries

  • Connection Check (A and B are people):
    • If A and B are students in the same lecture → "classmates".
    • If A and B are professors teaching the same lecture → "colleagues".
    • If no connection exists → "No connection found".
  • Path Finding (A and B are any nodes):
    • Display all paths connecting A and B.
    • Paths are ordered by length: shortest first, longest last.
Description
No description provided
Readme 75 KiB
Languages
Astro 70.4%
TypeScript 28.8%
JavaScript 0.8%