University Adminstration Portal With Clean Architecture, Microservices And Blazor

Lesson 1: Introduction to University Administration Portal

Table of Contents

  1. Overview
  2. Importance of University Administration Portals
  3. Technologies Used
  4. Understanding ASP.NET Web API
  5. Introduction to Microservices
  6. Overview of Blazor
  7. Using Radzen Blazor Components

Overview
University administration portals streamline administrative tasks, enhance communication, and provide seamless access to information for students, faculty, and staff. In this Lesson, we'll explore the significance of these portals, the technologies we'll be using, and how they integrate to create an efficient system.

Importance of University Administration Portals
University administration portals serve as a centralized platform to manage various administrative functions. They provide:

Efficiency: Automating administrative tasks reduces manual effort and errors.
Accessibility: Easy access to information for students, faculty, and staff.
Communication: Enhanced communication channels between different stakeholders.
Data Management: Centralized data management ensures data consistency and integrity.

Technologies Used
This Lesson will guide you through building a university administration portal using the following technologies:

  1. ASP.NET Web API: For creating robust and scalable backend services.
  2. Microservices Architecture: For breaking down the application into smaller, independently deployable services.
  3. Blazor: For building interactive web UIs using C# instead of JavaScript.
  4. Radzen Blazor Components: For rapid application development using pre-built Blazor components.

Understanding ASP.NET Web API
ASP.NET Web API is a framework for building HTTP services that can be consumed by various clients, including browsers and mobile devices. It is built on top of the .NET framework and provides a simple way to create RESTful services.

Key Features

  • Scalability: Supports the creation of scalable services.
  • Flexibility: Can be consumed by different types of clients.
  • Interoperability: Easily integrates with other technologies and platforms.

Introduction to Microservices
Microservices architecture is a design pattern that structures an application as a collection of loosely coupled services. Each service is responsible for a specific business functionality and can be developed, deployed, and scaled independently.

Benefits

  • Scalability: Each service can be scaled independently based on demand.
  • Flexibility: Allows using different technologies best suited for each service.
  • Resilience: Failure in one service does not affect the entire system.

Overview of Blazor
Blazor is a framework for building interactive web applications using C#. It allows developers to create rich web UIs using .NET and run them in the browser using WebAssembly.

Key Features

  • Component-based Architecture: Build UIs as a collection of reusable components.
  • Server-side and Client-side Hosting Models: Supports both server-side and client-side hosting.
  • Full-stack Development: Use C# for both client and server code.

Using Radzen Blazor Components
Radzen Blazor Components is a library of UI components for Blazor. It provides pre-built components that help in rapid application development.

Key Features

  • Rich Set of Components: Includes components for forms, data presentation, navigation, and more.
  • Customization: Highly customizable to fit various design requirements.
  • Integration: Seamlessly integrates with Blazor applications.

Conclusion
This Lesson provided an overview of the technologies and concepts that will be used to build a university administration portal. In the following Lessons, we will dive deeper into each technology and guide you through the development process step-by-step.

1 Like

Lesson 2: Identifying Microservices for University Administration Portal

Lesson 2: Identifying Microservices for University Administration Portal

Introduction
This lesson delves into the microservices necessary for a university administration portal. Unlike monolithic architectures, microservices break applications into smaller, independent services that can be developed, deployed, and scaled independently.

  1. Student Management Microservice
  • Overview: Central to the portal, managing student information from enrollment to academic records.
  • Key Features:
    • Student Information Management
    • Enrollment Management
    • Academic Records
    • Notifications
  • Data Model: Includes entities such as Student, Enrollment, Course, Grade, and Notification.
  • Integration Points: Interfaces with Course Management, Examination and Grading, and Financial Management Microservices.
  1. Course Management Microservice
  • Overview: Manages the creation, scheduling, and management of courses.
  • Key Features:
    • Course Creation and Management
    • Scheduling
    • Enrollment Management
    • Resource Allocation
  • Data Model: Key entities include Course, Schedule, Instructor, Classroom, and Enrollment.
  • Integration Points: Works with Student Management, Faculty Management, and Communication Microservices.
  1. Faculty Management Microservice
  • Overview: Handles information related to faculty members.
  • Key Features:
    • Faculty Information Management
    • Assignment Management
    • Schedule Management
    • Performance Tracking
  • Data Model: Entities include Faculty, Course Assignment, Schedule, and Evaluation.
  • Integration Points: Connects with Course Management, Examination and Grading, and Communication Microservices.
  1. Examination and Grading Microservice
  • Overview: Manages examination schedules, grade recording, and transcript generation.
  • Key Features:
    • Exam Scheduling
    • Grade Management
    • Transcript Generation
    • Notifications
  • Data Model: Entities include Exam, Grade, Transcript, and Notification.
  • Integration Points: Integrates with Student Management, Faculty Management, and Communication Microservices.
  1. Financial Management Microservice
  • Overview: Manages financial transactions, including tuition payments and scholarships.
  • Key Features:
    • Payment Processing
    • Scholarship Management
    • Financial Records
    • Billing and Invoicing
  • Data Model: Entities include Payment, Scholarship, Financial Record, and Invoice.
  • Integration Points: Links with Student Management and Communication Microservices.
  1. Communication Microservice
  • Overview: Manages announcements and messaging within the university.
  • Key Features:
    • Announcements
    • Messaging
    • Notifications
    • Feedback and Surveys
  • Data Model: Entities include Announcement, Message, Notification, and Survey.
  • Integration Points: Integrates with all other microservices.
  1. Authentication and Authorization Microservice
  • Overview: Manages user authentication and role-based access control.
  • Key Features:
    • User Authentication
    • Role Management
    • Access Control
    • Audit Logs
  • Data Model: Entities include User, Role, Permission, and Audit Log.
  • Integration Points: Interfaces with all other microservices for secure access control.

Conclusion
The lesson outlines essential microservices for a university administration portal, each designed for specific functions to ensure efficient management. Adopting a microservices architecture enhances scalability, flexibility, and maintainability in university operations.

1 Like

Lesson 3: Solution Setup and Creation Of Project Structure For Student Management Microservice

In Lesson 3, we focus on setting up the solution and establishing a structured project framework for developing a Student Management Microservice. This crucial step involves laying the foundation for our application, ensuring scalability, maintainability, and efficiency throughout the development process. By the end of this lesson you will have a clear understanding of how to organize your project, to build a robust microservice tailored for student management. Source code can be found at GitHub - benjaminsqlserver/UniversityAdministrationProject at Chapter3

1 Like

LESSON 4:IMPLEMENTATION OF DOMAIN LAYER FOR STUDENT MANAGEMENT MICROSERVICE

Source code can be found at GitHub - benjaminsqlserver/UniversityAdministrationProject at Chapter4

1 Like

LESSON 5: CREATION OF ALL LAYERS OF STUDENT MANAGEMENT MICROSERVICE USING WRAPT

YAML FILE:
DomainName: UniversityAdministrationPortal
BoundedContexts:

  • ProjectName: StudentManagement
    Port: 5001
    DbContext:
    ContextName: StudentManagementDbContext
    DatabaseName: StudentManagement
    Provider: sqlserver
    Entities:
    • Name: Student
      Features:
      • Type: AddRecord
      • Type: GetRecord
      • Type: GetList
      • Type: UpdateRecord
      • Type: DeleteRecord
        Properties:
      • Name: MatriculationNumber
        Type: string
      • Name: FirstName
        Type: string
      • Name: LastName
        Type: string
      • Name: DateOfBirth
        Type: DateTime
      • Name: GenderId
        Type: guid
      • Name: Email
        Type: string
      • Name: PhoneNumber
        Type: string
      • Name: StudentContactInformations
        Relationship: 1tomany
        ForeignEntityName: StudentContactInformation
        ForeignEntityPlural: StudentContactInformations
      • Name: StudentNextOfKins
        Relationship: 1tomany
        ForeignEntityName: StudentNextOfKin
        ForeignEntityPlural: StudentNextOfKins
    • Name: StudentContactInformation
      Features:
      • Type: AddRecord
      • Type: GetRecord
      • Type: GetList
      • Type: UpdateRecord
      • Type: DeleteRecord
        Properties:
      • Name: HouseAddress
        Type: string
      • Name: City
        Type: string
      • Name: State
        Type: string
      • Name: ZipCode
        Type: string
      • Name: CountryID
        Type: guid
      • Name: StudentID
        Type: guid
    • Name: StudentNextOfKin
      Features:
      • Type: AddRecord
      • Type: GetRecord
      • Type: GetList
      • Type: UpdateRecord
      • Type: DeleteRecord
        Properties:
      • Name: FirstName
        Type: string
      • Name: LastName
        Type: string
      • Name: DateOfBirth
        Type: DateTime
      • Name: GenderId
        Type: guid
      • Name: Email
        Type: string
      • Name: PhoneNumber
        Type: string
      • Name: StudentID
        Type: guid
      • Name: RelationshipID
        Type: guid
      • Name: NextOfKinContactInformations
        Relationship: 1tomany
        ForeignEntityName: NextOfKinContactInformation
        ForeignEntityPlural: NextOfKinContactInformations
    • Name: NextOfKinContactInformation
      Features:
      • Type: AddRecord
      • Type: GetRecord
      • Type: GetList
      • Type: UpdateRecord
      • Type: DeleteRecord
        Properties:
      • Name: HouseAddress
        Type: string
      • Name: City
        Type: string
      • Name: State
        Type: string
      • Name: ZipCode
        Type: string
      • Name: CountryID
        Type: guid
      • Name: NextOfKinID
        Type: guid
    • Name: Gender
      Features:
      • Type: AddRecord
      • Type: GetRecord
      • Type: GetList
      • Type: UpdateRecord
      • Type: DeleteRecord
        Properties:
      • Name: GenderName
        Type: string
      • Name: Students
        Relationship: 1tomany
        ForeignEntityName: Student
        ForeignEntityPlural: Students
      • Name: StudentNextOfKins
        Relationship: 1tomany
        ForeignEntityName: StudentNextOfKin
        ForeignEntityPlural: StudentNextOfKins
    • Name: Country
      Features:
      • Type: AddRecord
      • Type: GetRecord
      • Type: GetList
      • Type: UpdateRecord
      • Type: DeleteRecord
        Properties:
      • Name: CountryName
        Type: string
      • Name: StudentContactInformations
        Relationship: 1tomany
        ForeignEntityName: StudentContactInformation
        ForeignEntityPlural: StudentContactInformations
      • Name: NextOfKinContactInformations
        Relationship: 1tomany
        ForeignEntityName: NextOfKinContactInformation
        ForeignEntityPlural: NextOfKinContactInformations
    • Name: Relationship
      Features:
      • Type: AddRecord
      • Type: GetRecord
      • Type: GetList
      • Type: UpdateRecord
      • Type: DeleteRecord
        Properties:
      • Name: RelationshipName
        Type: string
      • Name: StudentNextOfKins
        Relationship: 1tomany
        ForeignEntityName: StudentNextOfKin
        ForeignEntityPlural: StudentNextOfKins
        Source code for this lesson can be found at GitHub - benjaminsqlserver/StudentManagementMicroservice
1 Like

Lesson 6: Creation Of All Layers Of Course Management Microservice Using Wrapt

Source code can be found at GitHub - benjaminsqlserver/AddCourseMgtMicroservice
Steps

  1. We are going to start by creating a yaml file to describe the Course Management Microservice.
  2. I am going to save the yaml file for the Course Management Microservice in the same folder where I saved the yaml file for the Student Management Microservice
  3. I am now going to get the full object name of the yaml file for Course Management Microservice. I will copy the full object name.
  4. I will now paste that full object name into an empty Sublime Text file.
  5. I will add the craftsman add bc command
  6. I will now open the folder where the Visual Studio solution file is. I will run the command I formulated in step 5 there.
  7. I will now open the updated Visual Studio Solution.
  8. I will now go to Solution Explorer
  9. I will set CourseManagement as startup project in Solution Explorer
  10. I will now update database connection string in appsetting.development.json file of CourseManagement Microservice to point to the default instance of SQL SERVER on my PC.
  11. I will now open Package Manager Console
  12. Please ensure your default project is set to Course Management in Package Manager Console
  13. Type the command Add-Migration GenerateDb and press Enter.
  14. Let us take some time to examine generated migration file.
  15. Let us now update the database
  16. Let us run the Course Management Microservice for the first time
  17. Thank you for watching.
1 Like

Lesson 7: Creation Of Faculty Management Microservice

Source code can be found at GitHub - benjaminsqlserver/AdditionOfFaultyMicroservice

1 Like