System Architecture Documentation
Application Design
Languages
C#
XAML
Frameworks / Libraries
Avalonia - Develop Desktop, Embedded, Mobile and WebAssembly apps with C# and XAML
MessageBox.Avalonia - MessageBox for AvaloniaUI
Autofac - .NET IoC container
OpenAI Dotnet - Official .NET library for the OpenAI API
CommunityToolkit.Mvvm - .NET MVVM library with helpers
HotAvalonia - .NET library crafted to seamlessly integrate hot reload functionality into Avalonia applications
Serilog - Simple .NET logging with fully-structured events
NRedisStack - Redis Stack .Net client
Build System
MSBuild - Build platform for .NET and Visual Studio
Testing
Development Tools
Rider - IDE
Visual Studio - IDE
Context Diagram

Component | Description |
---|---|
Course Recommendation System | Central system that processes user queries, generates course recommendations, and manages user and course data. |
Student | Users of the system who seek recommendations for courses and manage their course selections. |
Admin | Administrators who use the system to access aggregated data on user interactions and course selections for analysis and decision-making. |
System Database | The storage system for user data, thread data, course information, and other related data required by the course recommendation system. |
OpenAI API | External API used to process user queries and generate course recommendations using natural language processing and machine learning. |
Component Diagram

Component | Description |
---|---|
User Interface | Provides a user-friendly interface for students to interact with the course recommendation system. |
Academic Calendar | Provides the User Interface component access to the academic calendar. |
Feedback System | Allows students to post threads and view other users' threads. |
OpenAI API | Analyzes user queries, extracts relevant information, and processes course descriptions to provide course recommendations. |
User Database | Stores and manages user account information, including login credentials and profile information. |
Course Database | Stores and manages the university's course catalog data, including course descriptions, credits, prerequisites, instructor information, and schedules. |
Forum Database | Stores and manages the threads and posts of the community forums. |
Deployment Diagram

Node | Description | Components Deployed | Connected To |
---|---|---|---|
Client Devices (Desktops) | Machines used by students and administrators to run the desktop application. | - CourseRecommendationApp.exe (Windows) - CourseRecommendationApp.dmg (macOS) | Application Server |
Application Server | Server running the main application logic and processing requests from the desktop application. | - NLPProcessing.jar - RecommendationEngine.jar | Database Server External Services |
Database Server | Server for managing the databases. | - UserDatabase.db - CourseDatabase.db - ForumDatabase.db | Application Server |
External Services | External APIs and services integrated with the application. | - OpenAIService - EmailService | Application Server |
System Architecture Diagram

Component | Description | Connected To | Role/Function |
---|---|---|---|
System Users | Individuals interacting with the system (Admins and Users). | Admin, User | Primary actors who use the system. |
Admin | University Officials | Admin's Visual Interface | Uses the system to view analytics. |
User | General user of the system. | User's Visual Interface | Uses the system to get course recommendations. |
Admin's Visual Interface | User interface for the admin. | Admin Logic | Allows admins to view the analytics. |
User's Visual Interface | User interface for general users. | Application Logic | Allows users to interact with the system. |
Admin Logic | Backend logic specific to admin functionalities. | NPL Module (OpenAI) | Processes admin-specific operations and data. |
Application Logic | Backend logic for handling user interactions and data processing. | Course Database | Processes user queries and manages user interactions. |
NPL Module (OpenAI) | Natural Language Processing module using OpenAI API. | Recommendation Engine | Interprets user inputs and generates recommendations. |
Course Database | Database containing course information. | NPL Module (OpenAI), Application Logic | Stores and retrieves course data. |
Recommendation Engine | Component that generates course recommendations based on processed data | NPL Module (OpenAI) | Produces personalized course recommendations. |