Part 3

Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

4.

Accessibility:

 Users shall have the ability to conveniently access and print their class
schedules at any time, from any location, using a wide range of devices,
including desktop computers, laptops, and mobile devices.
 The system's user-friendly interfaces and intuitive navigation, built using the
principles of modern user experience design, shall ensure that all students,
faculty, and administrative staff can easily interact with the scheduling
system, regardless of their technical expertise or accessibility requirements.
5. Error Reduction:

 The proposed system shall incorporate advanced error-checking mechanisms


and validation routines, leveraging the type-safety and exception-handling
capabilities of the C# language, to minimize the potential for human errors
that can occur in manual scheduling processes.
 By eliminating the need for manual data entry, transcription, and cross-
referencing, the system shall significantly reduce the risk of scheduling
conflicts, class overlap, and other logistical issues that can disrupt the
academic calendar.
 Robust data integrity and backup procedures, utilizing the features of the
.NET Framework, shall be implemented to ensure the reliability and
consistency of the scheduling data, providing a trustworthy platform for all
stakeholders.

By addressing these key design goals using the C# programming language and the
.NET ecosystem, the proposed class scheduling system aims to deliver a
comprehensive, efficient, and user-centric solution that can significantly enhance the
overall scheduling experience for educational institutions and their communities.

3.4 Current software architecture


The current system resides on a central computer (server) that is connected to a
TCP/IP network and has a unique IP address. It allows connections from clients and
communicates with them using IP. The Application serves as a node for clients. That
is, it is able to share data committed by one client to other clients that request it. It
saves its data in a relational database. It is integrated with the existing Registrar
System for the purpose of importing Course Offerings and other related data.

3.5 Proposed software architecture


The proposed System will be based on Layered software architecture which provides
clear separation of concerns, scalability, flexibility, reusability, and making it well-suited
for a large-scale, high-traffic platform with complex timetable generation requirements.

89 | P a g e
The architecture can be broadly divided into several components:
1. Presentation Layer:
Web Application: Developed using React.js, this layer handles the user
interface and user interactions.
 Components: Components for schedule visualization, input forms, and result
kdsjdisplays.
 State Management: React state management using Context API.
 Routing: React Router for managing application navigation.
2. Application Layer:
 Web API: C# and ASP.NET Core Web API to expose endpoints for the
frontend.
 Orchestration: Coordinates communication between the Presentation,
Business, and Data layers.
 Authentication and Authorization: Handles user authentication and
authorization using ASP.NET Core Identity.
3. Business Layer:
 Scheduling Service: Implements the core timetable generation logic using a
Genetic Algorithm.
 Genetic Algorithm: Optimization algorithms to generate optimal timetables.
 Fitness Function: Defines the criteria for evaluating the quality of generated
timetables.
 Genetic Operators: Selection, Crossover, and Mutation operations to evolve
the population of timetable solutions.
 Constraint Handling: Manages various constraints (e.g., room availability,
instructor schedules) in the timetable generation process.
 Reporting and Analytics: Provides reporting and analytical capabilities for
generated timetables.
4. Data Layer:
 Database: integration of both SQL Server and Mysql for storing timetable
data, course information, instructor schedules, and other relevant data.
 Repository Pattern: Implements a repository layer to abstract data access and
provide a consistent API for the Business Layer.
 Entity Framework Core: Used for ORM and database operations.
5. Infrastructure:
 Cloud Platform: Deploy the application on a cloud platform like Microsoft
Azure.
 Containerization: Use Docker for containerizing the application components.
 Orchestration: Leverage Kubernetes (e.g., Azure Kubernetes Service) for
container orchestration and management.

90 | P a g e
 Monitoring and Logging: Integrate with Azure Monitor, Application Insights,
and Log Analytics for monitoring and logging.
6. Cross-Cutting Concerns:
 Logging and Exception Handling: Implement a consistent logging and
exception handling strategy across the application.
 Configuration Management: Manage application configuration, including
environment-specific settings.
 Security: Implement secure communication (HTTPS), RBAC, and other
security measures.

This architecture combines the Layered Pattern, and the Genetic Algorithm to create a
scalable, flexible, and optimized Automatic Timetable Generator. The separation of
concerns across the layers, the use of a Genetic Algorithm in the Business Layer, and
the cloud-based infrastructure provide a robust and maintainable solution

3.5.1 Subsystem decomposition


The proposed system's subsystem decomposition is a hallmark of its architectural
design, leveraging a modular approach to tackle the inherent complexities of academic
timetabling. By dividing the application into a set of interconnected, specialized
subsystems, each responsible for a specific aspect of the timetabling workflow, the
system achieves remarkable scalability, reliability, maintainability, and testability.

This modular structure is underpinned by the principles of high cohesion and low
coupling. Each subsystem is designed to have a high degree of internal cohesion, with
its components tightly integrated and focused on a well-defined set of related
functionalities. Conversely, the coupling between subsystems is minimized, with
clearly defined interfaces and loose dependencies, enabling individual components to
be updated, scaled, and deployed independently.

This balance of cohesion and coupling enables the system to achieve a range of
benefits, including flexible resource optimization, enhanced interoperability, and
seamless integration with other campus systems. The modular approach facilitates the
scaling, updating, and deployment of individual components, empowering institutions
to harness the power of automation, optimize resource utilization, and provide a
superior timetabling experience for students, faculty, and administrators.

The principles of separation of concerns and focused development are central to this
subsystem decomposition, ensuring that each component can be thoroughly tested,
maintained, and evolved without disrupting the overall system. This architectural
approach establishes a robust, scalable, and adaptable foundation for academic ti
metabling, meeting the evolving needs of modern educational institutions.
91 | P a g e

You might also like