···11+---
22+"starlight": minor
33+---
44+55+Initial public release
+121-3
starlight/src/content/docs/videos/thesis.mdx
···11---
22-title: Diploma Thesis
22+title: "Course: Diploma Thesis"
33description: A SOA solution with Siemens AG to analyze power grid anomalies, featuring a Kafka pipeline, PostgreSQL, GraphQL API, and an Angular dashboard for visualisation.
44video:
55 type: video
66 link: https://www.youtube.com/watch?v=p5xtVAwQdmE
77- duration: 146
77+ duration: 500
88 date: 2024-03-27
99 transcript: ./src/assets/transcripts/thesis.srt
1010 difficulty: Intermediate
1111 actions:
1212- - text: Read more
1212+ - text: Read the full story
1313 link: https://www.trueberryless.org/work/thesis/
1414 icon: external
1515---
1616+1717+import { Quiz, QuizOption } from 'starlight-videos/components';
1818+1919+## Course: Building a Data Pipeline and Visualization System
2020+2121+**Objective**
2222+2323+Learn the components and workflow of a service-oriented architecture (SOA) to handle and visualize power grid anomalies. This includes the integration of Apache Kafka, PostgreSQL, GraphQL, and Angular.
2424+2525+### Lesson 1: Introduction to the Architecture
2626+2727+**Key Components:**
2828+2929+1. **Apache Kafka** : A messaging system for real-time data ingestion.
3030+3131+2. **PostgreSQL** : A relational database to persist anomaly data.
3232+3333+3. **GraphQL API** : Serves as the interface between backend and frontend, enabling queries and filtering.
3434+3535+4. **Angular** : Frontend framework used to create an interactive and user-friendly dashboard.
3636+3737+**Workflow:**
3838+3939+1. Anomaly data is generated by Siemens' Global Network Analysis (GNA) system.
4040+4141+2. Data flows through Apache Kafka to PostgreSQL for structured storage.
4242+4343+3. A GraphQL API exposes this data for frontend use.
4444+4545+4. Angular-based dashboards visualize the data in tables, graphs, and key performance indicators (KPIs).
4646+4747+### Interactive Question 1: Kafka’s Role
4848+4949+<Quiz title="What is Apache Kafka used for in this project?">
5050+ <QuizOption>Database management</QuizOption>
5151+ <QuizOption correct>Real-time data ingestion</QuizOption>
5252+ <QuizOption>Frontend visualization</QuizOption>
5353+ <QuizOption>API implementation</QuizOption>
5454+</Quiz>
5555+5656+### Lesson 2: Backend Details
5757+5858+**Apache Kafka** :
5959+6060+- Provides a publish-subscribe messaging model.
6161+6262+- Guarantees high throughput and fault tolerance.
6363+6464+- Messages persist for later consumption if needed.
6565+ **PostgreSQL** :
6666+- Relational storage optimized for anomaly data.
6767+6868+- Queries can be filtered, sorted, and paginated.
6969+ **GraphQL API** :
7070+- Flexible querying capabilities, reducing over-fetching.
7171+7272+- Facilitates frontend data access with structured responses.
7373+ **Key Consideration** : The decoupling of the backend from data sources and consumers ensures scalability and reliability.
7474+7575+### Interactive Question 2: Backend Technologies
7676+7777+<Quiz title="Which technologies form the backend of the application?" multiple>
7878+ <QuizOption correct>Kafka</QuizOption>
7979+ <QuizOption correct>PostgreSQL</QuizOption>
8080+ <QuizOption correct>GraphQL API</QuizOption>
8181+ <QuizOption>MySQL</QuizOption>
8282+</Quiz>
8383+8484+### Lesson 3: Frontend Visualization
8585+8686+**Angular Framework** :
8787+8888+- Enables dynamic and responsive UI.
8989+9090+- Used to design key components:
9191+9292+ - **Anomalies Table** : Searchable, paginated, and filterable table for anomaly data.
9393+9494+ - **Graph View** : Visual representation of the power grid, pinpointing sources of issues.
9595+9696+ - **Dashboard Overview** : Displays aggregated metrics for quick insights.
9797+ **Best Practices for Visualization** :
9898+9999+- Intuitive design with interactive elements.
100100+101101+- Use of frameworks like Cytoscape.js for graph rendering.
102102+103103+### Interactive Question 3: Frontend Framework
104104+105105+<Quiz title="Why was Angular chosen for this project?">
106106+ <QuizOption>Its support for backend integration</QuizOption>
107107+ <QuizOption>Inherent support for SQL queries</QuizOption>
108108+ <QuizOption>It is a messaging framework</QuizOption>
109109+ <QuizOption correct>Responsive and dynamic UI capabilities</QuizOption>
110110+</Quiz>
111111+112112+### Lesson 4: Deployment and Integration
113113+114114+**Deployment** :
115115+116116+- Docker containers ensure consistency across environments.
117117+118118+- The SOA allows for modular development and maintenance.
119119+ **Integration with Siemens Infrastructure** :
120120+- Kafka seamlessly integrates for data transmission.
121121+122122+- PostgreSQL supports Siemens' existing data workflows.
123123+ **Outcome** :
124124+ The solution enhances anomaly analysis by transforming unstructured logs into actionable insights, significantly reducing resolution time for Siemens engineers.
125125+126126+### Interactive Question 4: Integration
127127+128128+<Quiz title="Which feature enhances the system's modularity and scalability?">
129129+ <QuizOption correct>Service-Oriented Architecture</QuizOption>
130130+ <QuizOption>Direct database access</QuizOption>
131131+ <QuizOption>Monolithic architecture</QuizOption>
132132+ <QuizOption>Hardcoded endpoints</QuizOption>
133133+</Quiz>