Part 3
Part 3
Part 3
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:
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.
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
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