Home
Project
Introduction
Introduction
Background and Motivation
What is a Good Timetable?
Project Aims and Scope
Graph Data
Model
Graph vs Relational Data Models
Graph Data Model for Timetabling
Early Insights
Model Expansion
Graphing Time
Data
Pipeline
ETL Overview
Approach
Configuration and Logging
Extract
Transform
Google Drive Load
Neo4j Load
Reflection
Timetable
Metrics
Timetable Metrics
Metric Aggregations
Implementing Metrics
TQI Summary
Final
Thoughts
Appendices
& Extras
Appendix Table of Contents
References
Acknowledgements
Word
Appendices
ETL Summary and Code
Transform
Home
Project Introduction
Introduction
Background and Motivation
What is a Good Timetable?
Project Aims and Scope
Graph Data Model
Graph vs Relational Data Models
Graph Data Model for Timetabling
Early Insights
Model Expansion
Graphing Time
Data Pipeline
ETL Overview
Approach
Configuration and Logging
Extract
Transform
Google Drive Load
Neo4j Load
Reflection
Timetable Metrics
Timetable Metrics
Metric Aggregations
Implementing Metrics
TQI Summary
Final Thoughts
Appendices
Random Graph Generator
Technology Stack
Configuration
Anonymisation
ETL Summary and Code
ETL Summary
ETL Code
Config and Misc
Extract-SQL
Extract
Google Drive Load
Transform
Neo4j Load
Neo4j & Cypher Code
Cypher Queries
Creating Nodes and Relationships
Deleting Nodes and Relationships
General Queries
Count Queries
Hard (timetabling) Constraints
Student Clashes
Soft Constraints
Rooms and Spaces
Perspectives
Blue Skies Opportunities
Supervision
Supervision
Notes Example 1
Notes Example 2
Notes Example 3
References
Acknowledgements
Appendices
ETL Summary and Code
Transform
K: Process
Graph Timetable - Quarto - Process
process_utils
process_node
process_main
Google Drive Load
Neo4j Load