0% found this document useful (0 votes)
16 views91 pages

PBL Report1

The document is a project report on the 'Online-Security-Guard-Hiring-System' submitted for a Bachelor of Engineering degree in Computer Engineering. It outlines the project's objectives, methodologies, and the significance of developing an efficient online platform for hiring security personnel. The report includes various sections such as certificates, acknowledgments, literature survey, system design, implementation, and results, highlighting the project's contributions to improving security hiring processes.

Uploaded by

Vaibhav Bhamare
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views91 pages

PBL Report1

The document is a project report on the 'Online-Security-Guard-Hiring-System' submitted for a Bachelor of Engineering degree in Computer Engineering. It outlines the project's objectives, methodologies, and the significance of developing an efficient online platform for hiring security personnel. The report includes various sections such as certificates, acknowledgments, literature survey, system design, implementation, and results, highlighting the project's contributions to improving security hiring processes.

Uploaded by

Vaibhav Bhamare
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 91

A

PROJECT REPORT
ON

“ Online-Security-Guard-Hiring-System ”

SUBMITTED TO

SAVITRIBAI PHULE PUNE UNIVERSITY, PUNE


In partial fulfillment of the requirements for the award of degree of
Bachelor of Engineering in

COMPUTER ENGINEERING

SUBMITTED BY
Bhamare Vaibhav Popat [72037252G]
Deore Krushna Anil [72037260H]
Bhamare Raj Hitesh [72037275F]
Sarode Kishor Nanasaheb [
Sonawane Anand Sharad [72177493J]

UNDER THE GUIDANCE OF


Dr. Md. Salman Baig

DEPARTMENT OF COMPUTER ENGINEERING


MAULANA MUKHTAR AHMAD NADVI TECHNICAL CAMPUS

ACADEMIC YEAR 2024-2025

i
MAULANA MUKHTAR AHMAD NADVI TECHNICAL CAMPUS

DEPARTMENT OF COMPUTER ENGINEERING

CERTIFICATE
This is to certify that,
Bhamare Vaibhav Popat, Deore Krushna Anil ,Bhamare Raj Hitesh ,Sarode Kishor Nanasaheb
Sonawane Anand Sharad has satisfactorily completed the Project Phase-II Work entitled “Online-
Security-Guard-Hiring-System”. This work is being submitted in the partial fulfilment of
the requirements for the award of degree of Bachelor of Engineering in Computer Engineering
for the Academic Year 2022- 2024.

The project has made a significant contribution to the field of study and has been
implemented with utmost dedication, diligence and creativity. The findings and
conclusions of the project are original and made significant contribution to the existing
knowledge.

Dr. Md. Salman Baig Dr. Md. Salman Baig


(Guide) (Project Coordinator)

Dr. Md. Salman Baig Dr. Shah Aqueel Ahmed


(Head of Department) (Principal)

Date :
Place : Malegaon.

ii
MAULANA MUKHTAR AHMAD NADVI TECHNICAL CAMPUS

DEPARTMENT OF COMPUTER ENGINEERING

CERTIFICATE OF APPROVAL
The Dissertation entitled “Online-Security-Guard-Hiring-System”
being submitted by ACF, YHJ, IOP, WER has been examined by us and is hereby
approved in partial fulfillment for the award of degree of Bachelor of Engineering in
Computer Engineering.

The work represents a significant accomplishment. It has been found to be of


satisfactory quality. The project work has been conducted in the approved manner by
the student. It is understood that by this approval the undersigned do not necessarily
endorse or approve any statement made, opinion expressed or conclusion drawn therein.

Internal Examiner External Examiner


Name: Name:
Date: Date:

iii
MAULANA MUKHTAR AHMAD NADVI TECHNICAL CAMPUS

DEPARTMENT OF COMPUTER ENGINEERING

DECLARATION
We declare that this written submission represents our ideas in our own words
and we have adequately cited and referenced the original sources. We also declare that
We have adhered to all principles of academic honesty and integrity and have not
misrepresented or fabricated any idea/data/fact/source in our submission. We
understand that any violation of the above will be cause for disciplinary action by the
Institute and can also evoke penal action from the sources which have not
been properly cited.

Name Seat no. Signature

Bhamare Vaibhav Popat


Deore Krushna Anil
Bhamare Raj Hitesh
Sarode Kishor Nanasaheb
Sonawane Anand Sharad

Date:
Place: Malegaon.

iv
ABSTRACT

Generating an optimized academic Timetable is a complex task. Various


constraints and parameters have to be considered in generating an optimized timetable.
In literature, the timetable is generated using different techniques and algorithms. The
report presents a comparative review of the existing techniques and algorithms used for
timetable generation. A comparative analysis was done on the Evolutionary Algorithms,
Stochastic Algorithms, Heuristic Algorithms, Greedy-based Algorithms, and Genetic
Algorithms. Further, this report also presents a comparative analysis of the different
techniques used in the Genetic Algorithm. This report addresses the problems that arise
in generating a timetable, and provides solution to deal with the arising problems.

The traditional method of scheduling time table, with satisfactory and efficient
output was very challenging. Genetic algorithms, inspired by the principles of natural
evolution, have emerged as a powerful tool for solving optimization problems. In this
study, the utilization of genetic algorithms is explored for addressing problem that arise
in timetable scheduling. The main objective is to develop an efficient algorithm that can
generate high-quality timetables while satisfying the diverse constraints and objectives
involved.

The report begins with introduction of the fundamentals of genetic algorithms


and their suitability for scheduling timetable. The encoding schemes, representation of
the timetable, and the selection, crossover, and mutation operators specifically designed
for the timetabling domain. Additionally, the importance of fitness evaluation functions,
which measure the quality of generated timetables based on various criteria such as
room capacity, instructor availability, and student preferences.

The results obtained from the experiments demonstrate the effectiveness of the
genetic algorithm in generating high-quality timetables within reasonable
computational time. The algorithm successfully balances conflicting objectives, such as
minimizing clashes and maximizing resource utilization. Moreover, the limitations and
potential extensions of the genetic algorithm approach, including the integration of
additional constraints and the incorporation of advanced search strategies.

vi
ACKNOWLEDGEMENT
It is our great pleasure to acknowledge sense of gratitude to all, who have made it
possible for us to complete this Project work with success. It gives us great pleasure to expressour
deep gratitude to our Project guide Dr. Md. Salman Baig for his support and help fromtime to
time during Project work.

It is our pleasure to acknowledge sense of gratitude to Head of Department Dr. Md.


Salman Baig for his great support and encouragement in project work. we would also like to
thank our Principal Dr. Aqueel Ahmad Shah for his valuable recommendations.

We would like to express our gratitude towards our dear parents for their support, and
constant encouragement.

At last, but not in least, we would like to thank everyone who directly and indirectly
helped and motivated us to work on this project.

vi
TABLE OF CONTENTS
Chapter Title Page No.

- CERTIFICATE ii

- CERTIFICATE OF APPROVAL iii

- DECLARATION iv

- Abstract V

- Acknowledgement Vi

- Table of Content Vii

- List of Figures X
- List of Tables Xi
1 INTRODUCTION 1
1.1 Motivation 2
1.2 Importance of Automatic Timetable Generation in various fields 3
1.3 Traditional Methods for Creating Timetables 4
1.4 Project Requirements 5
1.4.1 Hardware Requirements 5
1.4.2 Software Requirements 5
1.4.3 Eclipse 6
1.4.4 The Java Programming Language 7
1.4.5 MySQL 7
1.4.6 Interfaces 8
1.5 Problem Statement 8
1.6 Objectives 9

2 LITERATURE SURVEY 10
2.1 A Multistage Evolutionary Algorithm for the Timetable Problem 10
2.2 Stochastic Optimization Timetabling Tool for University Course Scheduling 10
2.3 A Two-Phase Heuristic Evolutionary Algorithm for Personalizing 11
2.4 Paperless Master Timetable Scheduling System 11
2.5 A Greedy-based Algorithm in Optimizing Student’s Recommended 11
2.6 GATT: A Genetic Algorithm-based Tool for Automating Timetable 12
2.7 Existing systems 14
2.7.1 Drawbacks of Existing Systems 14
2.7.2 Advantages of Proposed System 15
3 BACKGROUND & METHODOLOGIES 16
3.1 Genetic Algorithm 16

vii
3.2 Working of Genetic Algorithm 16
3.3 Key Features of Genetic Algorithm 18
3.4 Genetic Algorithms as a Powerful Optimization Technique 20
3.5 Automatic Timetable Generation 20
3.6 Examples of successful applications of genetic algorithms in various fields 21
3.7 Constraints 23
3.7.1 Hard Constraints 23
3.7.2 Soft Constraints 24
3.8 Key Challenges of Generating Timetables using Genetic Algorithms 24
4 SYSTEM DESIGN & DATA FLOW DIAGRAMS 26
4.1 Use Case Diagram 26
4.2 Flowchart 28
4.2.1 Master Module 29
4.2.2 Allotment Module 29
4.2.3 Timetable Generation Module 29
4.2.4 Print and Export Module 29
4.3 Class Diagram 29
4.4 Dataflow Diagrams 30
4.4.1 Function Symbol 31
4.4.2 External Entity Symbol 31
4.4.3 Data Flow Symbol 31
4.4.4 Output Symbol 31
4.5 Context Diagram 31
5 SYSTEM IMPLEMENTATION 32
5.1 Genetic Algorithm Implementation 32
5.2 Vaadin Framework Integration 32
5.3 Genetic Algorithm Customization 33
5.4 Testing and Refinement 33
5.5 Implementation 34
5.6 Detail Design 34
5.6.1 Database Design 34
5.6.2 Normalization 35
5.7 Activity Diagram 35
5.8 Entity-Relationship Diagram 37
6 RESULTS & DISCUSSION 38
6.1 Comparison with Existing systems 38
6.1.1 Quality 38
6.1.2 Efficiency 38
6.1.3 Scalability 38
6.2 Analysis of the Fitness Function and its Impact on the Results 39

6.3 Effectiveness of the Genetic Algorithm: 40


6.4 Results 41

viii
7 CONCLUSION & FUTURE WORK 50
7.1 Conclusion 50
7.2 Future Work 50
REFERENCES 52
APPENDIX-A (Coding) 55
APPENDIX-B (Conference Certificate) 79

viii
LIST OF FIGURES
Figure No. Figure Name Page No.

3.2 Working of Genetic Algorithm 18


3.5 Automatic Timetable Generation 21
4.2 Use Case Diagram 27
4.3 Flow Chart 28

4.7 Class Diagram 30

5.7 Activity Diagram 36


5.8 Entity-Relationship Diagram 37

6.4.1 Login View 41


6.4.2 Organization View 41

6.4.3 Dashboard View 42

6.4.4 Day View 42


6.4.5 Periods Per Day View 43

6.4.6 Subject view 43


6.4.7 Subject Period view 44
6.4.8 Teacher view 44

6.4.9 Class view 45


6.4.10 Class Teacher View 45

6.4.11 User 46
6.4.12 Allotment 46
6.4.13 Timetable view 47
6.4.14 Classwise view 47

6.4.15 Teacherwise View 48

6.4.16 Schoolwise view 48

x
LIST OF TABLES

Table No. Table Name Page No.

1.4.1 Hardware Requirement 05

1.4.2 Software requirement 06

2 Literature Survey 13

xi
eTimeTabler Using Genetic Algorithm

CHAPTER 1
INTRODUCTION

Online Security Guard Hiring System” is a web-based technology which manages security guards details.
In this project it is easy to get security guards for any farm or individual only by filling one form and get
response quickly by admin. When user fill the security guard required form they get booking number by
which they search what is status of their security booking. This web application provides a way to
effectively control record & track the booking application and security guard details. An “Online Security
Guard Hiring System” effectively manages and handles all the functioning of a security hiring farms. The
software system can store the data of security guard and booking application. Online Security Guards
Hiring System is developed using PHP with MySQLi extension. It’s a web-based application used to hire
security guards.

Advantages:
• It helps the security farms to handle and manage guard details and booking details of guards.
•Reduce time consumption.
• Reduce error scope.
• All system managements are automated.
• Centralized database management.
• Easy operations for operator of the system.
• No paper work requirement.

Disadvantages:
• The system can only handle Single security farms.

Applications:
• To be used in security farms

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

1.1 Motivation
The motivation behind developing an online security guard hiring system project
stems from the need to streamline the hiring process, improve efficiency, and enhance
security standards by providing a centralized platform for finding, vetting, and managing
security personnel.

 Efficiency and Speed:

Traditional hiring processes can be time-consuming and involve numerous steps. An


online system can automate tasks, reduce paperwork, and expedite the hiring process,
allowing companies to quickly find and deploy security personnel.

 Centralized Management:

A single platform can centralize all information related to security guard hiring,
including applications, resumes, background checks, and performance records, making it
easier to manage and track security personnel.

 Improved Security Standards:

Online systems can facilitate rigorous background checks, skills assessments, and
training certifications, ensuring that only qualified and trustworthy individuals are hired for
security positions.

 Cost Reduction:

By automating tasks and streamlining the hiring process, an online system can
reduce administrative overhead and associated costs, such as advertising and recruitment
fees.

 Enhanced Security:

A well-designed online system can help ensure that security personnel are properly
vetted and trained, leading to a more secure environment for businesses and individuals.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

 Accessibility:

An online system provides accessibility for security guard applicants and employers,
regardless of their location, allowing for a wider pool of candidates and a more efficient
hiring process.

 Scalability:

An online system can be easily scaled to accommodate the needs of different


businesses, whether they require a few security guards or a large security force.

 Data Analysis:

The system can collect and analyze data related to hiring, performance, and security
incidents, providing valuable insights for improving security practices and making informed
decisions.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

1.2 Importance of security guard hiring system fields:

A robust security guard hiring system is crucial for businesses and organizations
because it ensures the selection of competent, reliable individuals, leading to
enhanced property protection, improved safety, and a more secure environment for
employees and customers.
1. . Enhanced Security and Protection:
Deterrence of Crime:
The presence of security guards, especially those hired through a well-structured
system, can deter potential criminals and vandals, reducing the risk of theft,
vandalism, and other security breaches.
Asset Protection:
Security guards, trained and equipped through a good hiring system, can effectively
safeguard valuable assets, both physical and intellectual, from theft, damage, or
unauthorized access.
Emergency Response:
A well-hired security team is equipped to handle emergencies and security incidents
effectively, ensuring a swift and appropriate response to minimize damage and
ensure the safety of personnel.
2. Improved Safety and Well-being:
Safe and Secure Environment:
A strong security presence, facilitated by a reliable hiring system, creates a sense of
safety and security for employees, customers, and visitors, promoting a productive
and positive environment.
Reduced Stress and Anxiety:
Knowing that a competent security team is in place can significantly reduce stress
and anxiety for both employees and management, allowing them to focus on their
work and responsibilities.
Enhanced Customer Service:
Well-trained security personnel, hired through a good system, can also contribute to
positive customer experiences by providing assistance, answering questions, and
ensuring a safe and welcoming environment.
.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

3 . Key Features of a Good Security Guard Hiring System:


Thorough Screening and Background Checks:
A robust system should include comprehensive background checks, criminal history checks,
and verification of qualifications and experience.
Rigorous Training Programs:
Security guards should receive thorough training in security protocols, emergency
procedures, de-escalation techniques, and other relevant skills.
Clear Job Descriptions and Expectations:
Well-defined job descriptions and expectations help ensure that security guards understand
their roles and responsibilities, leading to better performance and accountability.
Performance Evaluation and Monitoring:
Regular performance evaluations and monitoring can identify areas for improvement and
ensure that security guards are meeting the required standards.
Legal Compliance:
The hiring system should adhere to all relevant laws and regulations regarding security guard
employment and operations.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

1.3 Traditional Methods for online security guard hiring system :

A traditional approach to creating an online security guard hiring system


involves using established web development technologies like PHP and MySQL, and
following a structured development process, starting with requirements gathering and
ending with testing and deployment.

1. Requirements Gathering & Planning:

Define Scope:

Clearly outline the features and functionalities of the system, including user roles
(admin, security guard, client), application capabilities (job posting, application
submission, communication), and any specific requirements.

2. Technology Stack:

Choose the technologies to use, such as PHP for server-side logic, MySQL for the
database, and HTML/CSS/JavaScript for the front-end.

3. Database Design:

Plan the database schema, including tables for users, jobs, applications, and other
relevant data.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

1.4 Project Requirements

Platform forms the foundation on which the architecture, design, and


implementation of a product is built. System specification defines the full functionality of
the system. In many systems we work on, some functionality performed in hardware and
some in software. System specification documents can thus be defined as the requirements
documentation that formally specifies the system level requirements of an application. This
application developed in Windows platform.

1.4.1 Hardware Requirements

The minimum hardware and software required to run/develop the system is as listed
below. The only runtimes are required to run on production mode. Tools are required to be
installed on development machine only.

Table 1.4.1 Hardware Requirements

Software Type Internet


Processor Core i3 or Above

Memory Size 4GB RAM (min)

Storage / Hard Disk 40 GB hard disk min

Display 1024*768 pixels

Printer (If required) Laser Jet Printer (Black & White)

1.4.2 Software Requirements

The software requirement is for development and or in implementation phase.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

Table 1.4.2 Software requirements

Operating System Windows 10,


Ubuntu Linux 14.01
or above

Platform Java, J2EE

Runtime JRE 1.8 or above

Browser Any HTML5 Supported Brower

Google Chrome Preferred

Server TOMCAT Server latest

Development Tools Eclipse Kepler or Above


Database Apache Derby 10 or above
Technologies HTML, CSS3, Java
Frameworks AJAX

1.4.3 Eclipse

In the context of computing, Eclipse is an integrated development environment


(IDE) for developing applications using the Java programming language and other
programming languages such as C/C++, Python, PERL, Ruby etc. [30]

The Eclipse platform which provides the foundation for the Eclipse IDE is composed
of plug-ins and is designed to be extensible using additional plug-ins. Developed using Java,
the Eclipse platform can be used to develop rich client applications, integrated development
environments and other tools. Eclipse can be used as an IDE for any programming language
for which a plug-in is available.

The Java Development Tools (JDT) project provides a plug-in that allows Eclipse
to be used as a Java IDE, PyDev is a plugin that allows Eclipse to be used as a Python IDE,
C/C++ Development Tools (CDT) is a plug-in that allows Eclipse to be used for developing
application using C/C++, the Eclipse Scala plug-in allows Eclipse to be used an IDE to
develop Scala applications and PHP eclipse is a plug-in to eclipse that provides complete
development tool for PHP.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

1.4.4 The Java Programming Language

Java is a programming language originally developed by Sun Microsystems and


released in 1995 as a component of Sun Microsystems platform. The language derives much
of its syntax from C and C++, but has a simpler object model and fewer low-level facilities.
Java applications are typically compiled to byte code that can run on any Java Virtual
Machine (JVM) regardless of computer architecture. The Java programming language is a
high-level language that can be characterized by all the following: [30]

 Simple
 Object-Oriented
 Distributed
 Multi-threaded
 Dynamic
 Portable

In Java programming language all source code is written in plain text files
ending with Java extension. Those source files then compiled into class files by the Java
compiler. A. class file does not contain code that is native to your processer: it instead
contains byte codes- the machine language of Java Virtual.

1.4.5 MySQL

MySQL is the world's most used open-source Relational Database


Management system (RDBMS) as of 2008 that runs as a server providing multiuser access
to a number of databases. It is named after co-founder Michael Widenius' daughter, My.
The SQL phrase stands for Structured Query Language. The MySQL development project
has made its source code available under the terms of the GNU General Public License, as
well as under a variety of proprietary agreements. MySQL was owned and sponsored by a
single for-profit firm, the Swedish company MySQL Lab, now owned by Oracle
Corporation.

MySQL is a popular choice of database for use in web applications, and is a central
component of the widely used LAMP open-source web application software stack—LAMP

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

is an acronym for "Linux, Apache, MySQL, Perl/PHP/Python." Free-software open-source


projects that require a full-featured database management system often use MySQL. [30]

1.4.6 Interfaces

MySQL is primarily an RDBMS and ships with no GUI tools to administer


MySQL databases or manage data contained within the databases. Users may use the
included command lines tools, or use MySQL "front-ends", desktop software and web
applications that create and manage MySQL databases, build database structures, back up
data, inspect status, and work with data records. The official set of MySQL front-end tools,
MySQL workbench is actively developed by Oracle, and is freely available for use. [30]

1.5 Problem Statement

The problem of automatic timetable generation involves creating a schedule that assigns
resources, such as classrooms, teachers, and time slots, to a set of activities, such as courses,
exams, or meetings, while satisfying multiple constraints and objectives.

 Time and duration constraints: Events often have specific time windows during
which they can be scheduled. Moreover, events may have fixed durations that need
to be accounted for when creating the timetable.
 Resource availability: The availability of resources such as teachers, classrooms,
and equipment need to be considered. Each event must be assigned to an available
resource at a suitable time slot.
 Precedence and sequencing: Certain events may have dependencies or sequencing
requirements. For example, a lab session may require a preceding lecture. Such
dependencies need to be incorporated into the timetable. Instructor availability and
preferences: In educational settings, instructors may have specific availability times
or preferences regarding the scheduling of their classes, which need to be taken into
account.
 Breaks and downtime: Adequate breaks and downtime need to be incorporated
into the timetable to ensure that instructors and students have time to rest and
transition between events.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

 Optimization objectives: The timetable generation process aims to optimize


various objectives, such as minimizing scheduling conflicts, maximizing room and
resource utilization, minimizing gaps in the timetable, and satisfying instructor and
student preferences.

1.6 Objectives

To develop an efficient and effective system that generates an accurate timetable based
on user inputs. To save time and effort and reduce errors. To develop a user interface that
provides smooth integration as well as paperless environment, which is user friendly, takes
input from the user, and generate the time table.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

CHAPTER 2

LITERATURE SURVEY

2.1 A Multistage Evolutionary Algorithm for the Timetable Problem

E. K. Burke and J. P. Newall [9] use the Evolutionary Algorithm to solve the
timetable problem. This advanced search method can be breakdown larger problems into
smaller components, and these components can be handled effectively by EA. Evolutionary
Algorithms not only can be reduced the execution time but also improve the quality of the
solution. Where timetabling problem is nothing but a problem that assigns several events to
a finite number of different time intervals in which all compulsory constraints are fulfilled.
In this problem, optimizing the number of conflicts between the periods is the most onerous
task to perform. This problem occurs because of time limits and the availability of rooms.

2.2 Stochastic Optimization Timetabling Tool for University Course Scheduling

P. poncharoen et al [18] has described that the university timetabling is an NP-hard


problem. The paper introduced a stochastic optimization tool for university timetabling. As
SOTT is a combination of GA, simulated Annealing, and random search. They also focused
on soft constraints like minimizing student movement GA and SA contributed together an
optimizing timetable, but according to the result obtained. The paper declared that GA and
SA both produced optimizing timetables, according to the result obtained from SA are
slightly better than the result obtained from GA. However, GA was 54% faster than SA.
The GA is a repair process that includes all timetabling problem that is generated infeasible
during the evolutionary process. The algorithm evaluated in terms of soft constraints is how
much effectively. The GA in the paper is the combination of six steps.1] gene encoding 2]
chromosomes initialization and representation 3] genetic operator 4] repair 5] fitness
measurements and 6] chromosome selection.

2.3 A Two-Phase Heuristic Evolutionary Algorithm for Personalizing

Course Timetable Ricardo Santiago-mozos et al [20] describe the application of two


phases heuristic evolutionary algorithm two acquire a personalized timetable. These two
types of constraints can be defined in every timetabling problem. The responsibility of the

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

timetable which is obtained is normally called a hard constraint and the feasibility of the
solution not found is called a soft constraint. These methods highlighted the constraint-
based approach and solve the timetabling problem. Graph colouring algorithm called
sequential method is called an emerging algorithm which consists of heuristic and
metaheuristic algorithms is applied for large classroom scheduling problems.

2.4 Paperless Master Timetable Scheduling System

Paul Godwin Daniel et al [22] in his paper we use Quicksort algorithm as logarithmic
algorithm. The algorithm focusses on elimination of conflicts that arise in the algorithm and
make the function in a parallel way. The splatted the process in 6 parts and made them all
function together at the same time. Paul Godwin Danie et al [23] paper focused on Aims, to
scheduled time table system semester course and examination to make the application easy,
fast and efficient to avoid venue and lectures differences.

This design system provides GUI (graphical user interface). It provides the user
access to register and access the system. This system will collect the information from
different sources and generate the tameable. Making results there are some test cases are
used to run the system. Some test case run independently and some anode the whole system
to reedy before execution. Unit test are done on components before integration of
components to evaluate the performance of the algorithm.

2.5 A Greedy-based Algorithm in Optimizing Student’s Recommended

Timetable Generator with Semester Planner In this paper timetable is an essential


for school, colleges it might help to understand the schedule of study. We face some
difficulties during Covid-19 pandemic. To organised and managing the timetable. To
optimize the recommended timetable schedule, it used the Greedy algorithm to enhance the
efficiency of the timetable [24]. We identify some functions for to store the information.
The following functions are as follows: First it checks the feed information is valid or not
and also check the redundancy. This function focuses on scalability. It checks the period of
time to finish the activity. Now we calculate the precedence task to obtained the good result.
The Greedy algorithm solve problem in optimal solution.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

In this paper the Greedy algorithm-based methodology is divided into 4 parts. First,
we gather the information second, we design the system third deployment and the last is
system validation. Gathering Information: In gather information we conduct the real
problem faced by them.

2.6 GATT: A Genetic Algorithm-based Tool for Automating Timetable

Scheduling at Netaji Subhas University of Technology Harnirvair Singh et al [25]


proposed a Genetic Algorithm (GA) to solve a timetable problem. This paper discusses the
design of a Genetic Algorithm based timetable Scheduling Tool for Netaji Subhas
University of Technology (NSUT) related on courses, Teachers, classrooms and periods.
This tool also has the integrated database for data storage. Therefore, this tool is named as
Genetic Algorithm (GA) based Timetabling (GATT) tool and it is web-based. This paper
contains the many sections, where the section-1 describes the introduction part related to.
Time Table problems and design of Genetic Algorithms. Section-2 provides an overview of
existing work which is related to the university timetable problems. Section-3 explains the
problem statement and the proposed approach. The architecture and details regarding the
implementation are present in the section-4. In section-5 represented a results and findings.
Then finally last section refers a conclusion and discusses the future work of our proposed
tool, as describes below:

Many universities faced the challenges of course scheduling problem. Where the
constraints are nothing but the rules and policies are assigned to the algorithm. The main
goal is to minimize conflicts between the constraints. This paper describes that the Time
Table problems are NP- Hard (Nondeterministic Polynomial) problem [26]. Such type of
problems having no specific solutions to figure out the number of calculations needed for
the solution. Therefore, to find the successful solution for NP- hard problems, there are
many metaheuristics techniques are used to produce the optimize solutions. They have used
Genetic Algorithm to successfully solve the NP-hard problem where Genetic Algorithm is
a search heuristic technique [27]. Genetic algorithms are used to solve the complex
optimization problem like TimeTable scheduling problems [29]. In GA all solutions are
correspond to the chromosomes and genes which refers to the parameters. Genetic
Algorithm contain four main components such as Fitness function, Initial population,
Selection, Crossover and Mutation [28].

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

Table 2 Literature Survey

Sr Author Algorithm
Title Merits Demerits
no. & year Used
A Multistage E. K. Evolutionary i. Reduce the amount of It is dependent on another
Evolutionary Burke and Algorithm time taken to find the algorithm for optimal solution.
Algorithm for the J. P. solution.
Timetable Problem Newall ii. Improved the quality
1. 1999 of solution.
iii. More convenient than
conventional method.

Stochastic P. Stochastic i. Prevents clashes. i. GA, SA and random


Optimisation Pongcharo Optimisation ii. Avoiding search are embedded
Timetabling Tool for en et al Timetabling fragmentation. in the SOTT program.
university course 2008 Tool (SOTT) iii. Satisfied all hard ii. The amount of
2. scheduling constraints. computation required
iv. Allows user to easily increases
modify the number exponentially with
and duration of problem size.
timeslot.
A two-phase heuristic Ricardo two-phase i. Student allow to i. Difficult to maintain
evolutionary algorithm Santiago- heuristic choose set of priority ii. Complex Functioning
for personalizing Mozos et evolutionary subjects.
3. course timetables: a al algorithm ii. Compactness of
case study in a 2005 timetables.
Spanish university iii. Hybrid method is
used.
Paperless Master Paul Logarithmic i. Easier and faster to i. Lack of acceptance
Timetable Scheduling Godwin Algorithm, completely eliminate and awareness of the
System Daniel et Quicksort the manual process. scheduling systems.
al Approach ii. Stand-alone or real- ii. Increased running
4. 2018 time system. costs of ICT
iii. Reduces the man infrastructure.
power. iii. Difficult to reuse.
iv. Eliminates all manual
paperwork.
A Greedy-based Khyrina Greedy- i. To optimise the A greedy-based algorithm
Algorithm in Airin based recommended produces a good solution to
Optimizing Student’s Fariza Algorithm semester planner some math but not others.
5. Recommended Abu
Timetable Generator Samah et
with Semester Planner al
2022
GATT: A Genetic Harnirvair Genetic i. Database integration. They are difficult to
Algorithm-based Tool Singh et al Algorithm ii. Satisfy the hard understand.
for Automating 2021 constraints.
6. Timetable Scheduling iii. Optimize the soft
at Netaji Subhas constraints.
University of iv. Flexibility.
Technology

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

2.7 Existing systems


Several existing systems and software tools have been developed to assist with
automatic timetable generation in various domains. Here are some examples:
 UniTime: UniTime is an open-source software solution designed for academic
institutions. It provides a comprehensive set of features for automated course
timetabling, including course offerings, room assignments, instructor availability,
and student scheduling preferences. UniTime utilizes different optimization
algorithms, such as constraint-based and local search algorithms, to generate feasible
and efficient timetables.
 Edval Timetables: Edval Timetables is another commercial software solution for
automatic timetable generation, primarily focused on the education sector. It offers
advanced features for handling complex constraints, including room capacities,
resource allocations, and curriculum requirements. Edval Timetables utilizes
optimization techniques to create efficient and conflict-free timetables.
 Tabu Search-based Systems: Tabu search is a metaheuristic algorithm commonly
employed in automatic timetable generation systems. These systems use tabu search
and related optimization techniques to explore the solution space and find near-
optimal timetables.
2.7.1 Drawbacks of Existing Systems
While existing systems for automatic timetable generation offer valuable features, they may
also have some drawbacks. Here are some common drawbacks associated with these
systems:

 Scalability Issues: Generating timetables for large institutions or complex


scheduling scenarios can be computationally intensive. Some existing systems may
struggle with scalability, leading to longer processing times or even system crashes
when dealing with significant amounts of data or intricate constraints.
 Inefficient Optimization: The optimization algorithms used in existing systems
may not always find the globally optimal solution or provide the most efficient
timetable. Depending on the algorithm employed, there may be instances where the
generated timetable could be improved further, resulting in suboptimal resource
utilization or increased conflicts.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

 Maintenance and Adaptability Challenges: Once a timetable is generated,


adapting to changes or handling unforeseen events can be challenging in some
existing systems. The process of modifying the timetable to accommodate changes,
such as adding new courses or addressing unexpected conflicts, may require manual
intervention or complex adjustments, impacting the efficiency of the system.
 Lack of Integration: While integration with other systems is a desirable feature,
some existing systems may have limitations in integrating with existing software or
databases used within an institution. This can result in manual data transfer, data
duplication, or inefficient workflows.

2.7.2 Advantages of Proposed System

Automatic timetable generation using a genetic algorithm offers several advantages over
traditional manual methods. Here are some key advantages:

 Optimization: Genetic algorithms are optimization techniques that can efficiently


search through a large solution space to find near-optimal or optimal timetables.
They can handle complex constraints and multiple objectives, ensuring that the
generated timetables are optimized in terms of resource utilization, scheduling
conflicts, and other relevant factors.
 Scalability: Genetic algorithms can scale well to handle timetables for institutions
of varying sizes. Whether it's a small school or a large university, the genetic
algorithm can handle the complexities and constraints inherent in generating
timetables for a considerable number of courses, instructors, and resources.
 Adaptability to Changes: Institutions frequently encounter changes in course
offerings, instructor availability, or room availability during the scheduling period.
Genetic algorithms can be adapted to accommodate such changes efficiently.
 Potential for Improvement: Genetic algorithms offer the potential for continuous
improvement. Institutions can refine and enhance the algorithm over time by
adjusting parameters, incorporating new constraints, or integrating feedback from
users. This iterative process ensures that the timetable generation becomes more
efficient and optimized with each iteration.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

CHAPTER 3

BACKGROUND & METHODOLOGIES

3.1 Genetic Algorithm:

Genetic algorithm are optimization techniques that simulate the process of natural
selection and evolution. They are based on the concept of chromosomes, which represent
possible solutions to the optimization problem. Each chromosome is composed of genes,
which represent the parameters or variables of the problem. The genes are encoded using a
binary or real-valued representation. The chromosomes are evaluated using a fitness
function, which measures the quality of the solution based on specific objectives and
constraints.

The genetic algorithm generates a population of chromosomes, evaluates their


fitness, and selects the fittest ones to reproduce and mutate. Reproduction involves selecting
two parent chromosomes and combining them to create a new offspring chromosome.
Mutation involves randomly changing some of the genes in the chromosome to create a new
solution. The process of selection, reproduction, and mutation is repeated for several
generations until a satisfactory solution is found.

Genetic algorithm has several advantages over other optimization techniques. They
are able to explore a large search space efficiently, handle complex constraints and
objectives, and avoid local optima. They are also flexible and can be adapted to different
types of optimization problems.

3.2 Working of Genetic Algorithm:

Genetic algorithm is a type of optimization algorithm that is inspired by the process


of natural selection and evolution. They are based on the principle of survival of the fittest,
where the best solutions are selected and recombined to produce even better solutions over
time. Genetic algorithm work by maintaining a population of candidate solutions, evaluating
the fitness of each solution, and iteratively refining the population by selecting and
recombining the fittest individuals.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

The following are the key steps in the working of genetic algorithm:[32]

1) Initialization: A population of potential solutions is randomly generated. Each


solution is represented as a chromosome, which is composed of genes that represent
the parameters or variables of the problem. The population size is determined by the
problem and can vary depending on the complexity of the problem.
2) Fitness Evaluation: Each chromosome in the population is evaluated based on a
fitness function that measures the quality of the solution. The fitness function is
problem-specific and reflects the objectives and constraints of the problem. The goal
is to maximize the fitness of the solutions.
3) Selection: A subset of the fittest chromosomes is selected from the population for
the next generation. The selection process is typically based on a proportional fitness
criterion, where the probability of selection is proportional to the fitness of the
chromosomes. The idea is to favour the fitter solutions and eliminate the weaker
ones.
4) Crossover: The selected chromosomes are combined to create new offspring
chromosomes through crossover or recombination. Crossover involves randomly
selecting two parent chromosomes and combining their genes to create a new
offspring chromosome. The crossover operation is problem-specific and can vary
depending on the problem.
5) Mutation: The offspring chromosomes are randomly mutated to introduce new
variations into the population. Mutation involves randomly changing some of the
genes in the chromosome to create a new solution. The mutation rate is typically low
to avoid too much disruption of the population.
6) Replacement: The new offspring chromosomes are used to replace the weakest
individuals in the current population. This ensures that the population remains
diverse and avoids convergence to a local optimum.
7) Termination: The algorithm terminates when a stopping criterion is met, such as a
maximum number of generations, a minimum fitness level, or a maximum
computation time. The best solution found is returned as the output of the algorithm.

The key advantages of genetic algorithm, has the ability to explore a large search space
efficiently, handle complex constraints and objectives, and avoid local optima. They are

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

also flexible and can be adapted to different types of optimization problems. However,
genetic algorithm can be computationally expensive and require careful tuning of the
parameters to achieve optimal performance.

Fig 3.2 Working of Genetic Algorithm [25]

3.3 Key Features of Genetic Algorithm:

A genetic algorithm is a computational technique that is based on the principles of


natural selection and evolution. The following are the key components of a genetic
algorithm:

1) Chromosome representation: In a genetic algorithm, a solution to the problem


being solved is represented as a chromosome, which is typically a binary string or
an array of numbers. Each element of the chromosome represents a possible solution
to a specific subproblem or parameter of the problem.
2) Fitness function: A fitness function is used to evaluate the quality of a solution
represented by a chromosome. The fitness function assigns a fitness score to each
chromosome based on how well it satisfies the objectives of the problem being

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

solved. The fitness score determines the probability of a chromosome being selected
for further processing.
3) Selection mechanism: In a genetic algorithm, a selection mechanism is used to
determine which chromosomes are selected for reproduction in the next generation.
The selection mechanism is usually based on the fitness scores of the chromosomes,
with fitter chromosomes having a higher probability of being selected. Some
common selection mechanisms include roulette wheel selection, tournament
selection, and rank selection.
4) Reproduction mechanism: Once the selection mechanism has identified the fittest
chromosomes, they are used to generate the next generation of solutions. This is
typically achieved through a combination of crossover and mutation. Crossover
involves exchanging some genetic material between two chromosomes, while
mutation involves randomly changing some of the genetic material of a
chromosome.
5) Termination criteria: The genetic algorithm continues to generate new generations
of solutions until a termination criterion is met. Termination criteria can be based on
a maximum number of generations, a minimum fitness level, or a fixed amount of
computational time.
6) Population size: The population size is the number of chromosomes that are
evaluated in each generation. A larger population size increases the diversity of the
solutions and helps to prevent premature convergence, but it also increases the
computational complexity of the algorithm.
7) Parameters: Genetic algorithms typically have several parameters that can be
adjusted to improve their performance, such as the mutation rate, crossover rate,
selection mechanism, and population size. The optimal values for these parameters
depend on the problem being solved.

In summary, the key components of a genetic algorithm are the chromosome


representation, fitness function, selection mechanism, reproduction mechanism, termination
criteria, population size, and parameters. By using these components together, genetic
algorithms can efficiently explore large search spaces and find optimal solutions to complex
problems.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

3.4 Genetic Algorithms as a Powerful Optimization Technique

Genetic algorithms are a powerful optimization technique that has been widely used
in various fields, including automatic timetable generation. This technique mimics the
process of natural selection and evolution to find the best solution to a given problem. In
the context of timetable generation, genetic algorithms work by creating a population of
potential timetables and iteratively improving them through a process of selection,
crossover, and mutation, until an optimized solution is found.

Genetic algorithms have several advantages over traditional methods for creating
timetables. They are highly efficient, able to generate high-quality timetables in a short
amount of time. They are also flexible, able to handle complex constraints and changes to
the timetable without the need for significant manual effort. Furthermore, genetic
algorithms can optimize multiple objectives simultaneously, such as minimizing conflicts
and maximizing resource utilization, which traditional methods may struggle to achieve.

By using genetic algorithms for automatic timetable generation, organizations can


ensure that their resources are used efficiently, minimize conflicts, and enhance the quality
of their services. This technique has been successfully applied in various domains, including
education, transportation, and healthcare, where efficient scheduling is crucial for the
smooth operation of services. In the following sections, we will explore the process of
genetic algorithms in more detail and how they can be applied to timetable generation.

3.5 Automatic Timetable Generation:

Automatic timetable generation is the problem of scheduling events, resources, and


people in an optimal way while satisfying various constraints and objectives. The problem
is common in various fields, such as education, transportation, and healthcare. The
constraints may include the availability of resources, the timing and duration of events, and
the preferences of people. The objectives may include minimizing the number of conflicts
between events, maximizing the utilization of resources, and minimizing the distance
between locations.

The problem of automatic timetable generation has been studied extensively in the
literature. Traditional methods include manual scheduling and rule-based systems.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

However, these methods are time-consuming, error-prone, and may not guarantee optimal
solutions. Optimization techniques, such as linear programming, simulated annealing, and
tabu search, have been used to tackle the problem. However, these techniques may not be
able to handle complex constraints and objectives or scale to large instances.

Fig 3.5 Automatic Timetable Generation [33]

3.6 Examples of successful applications of genetic algorithm in various fields:

Genetic algorithm has been successfully applied to a wide range of optimization


problems in various fields. Here are some examples of successful applications of genetic
algorithms:

 Engineering design: Genetic algorithm has been used to optimize the design of
complex engineering systems, such as aircraft wings, heat exchangers, and antennas.
By exploring a large design space and considering multiple design objectives and
constraints, genetic algorithms can generate high-quality designs that are difficult to
achieve using traditional methods.
 Robotics: Genetic algorithm has been used to optimize the behaviour and control of
robots, such as obstacle avoidance, path planning, and grasping. By evolving the
robot's behaviour through multiple generations of selection, crossover, and

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

mutation, genetic algorithms can generate adaptive and robust solutions that can
handle different environments and tasks.
 Finance: Genetic algorithm has been used to optimize investment portfolios by
selecting the best combination of assets that maximize returns while minimizing
risks. By considering multiple investment objectives and constraints, such as asset
allocation, diversification, and liquidity, genetic algorithms can generate portfolios
that outperform traditional methods.
 Transportation: Genetic algorithm has been used to optimize traffic flow and
routing in transportation systems, such as road networks, public transit, and logistics.
By considering multiple objectives and constraints, such as travel time, congestion,
emissions, and safety, genetic algorithms can generate optimal solutions that
improve efficiency and reduce costs.
 Manufacturing: Genetic algorithm has been used to optimize the scheduling and
routing of manufacturing processes, such as assembly lines, machining centres, and
supply chains. By considering multiple objectives and constraints, such as
throughput, lead time, inventory, and resource utilization, genetic algorithms can
generate optimal solutions that improve productivity and reduce costs.
 Image processing: Genetic algorithm has been used to optimize image processing
algorithms, such as edge detection, segmentation, and classification. By evolving
the parameters and structures of the algorithms through multiple generations of
selection, crossover, and mutation, genetic algorithm can generate solutions that
improve accuracy and reduce computation time.

In summary, genetic algorithm has been successfully applied to a wide range of


optimization problems in various fields, including engineering design, robotics, finance,
transportation, manufacturing, and image processing. By combining the principles of
natural selection and evolution with computational techniques, genetic algorithm can
generate optimal solutions that are difficult to achieve using traditional methods.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

3.7 Constraints

The constraints that must be satisfied in automatic timetable generation include:[32]

1. Availability: Resources must be available when needed. For example, a classroom


must be available at the time a course is scheduled.
2. Conflict avoidance: Resources must not be double-booked or assigned to
conflicting activities. For example, a teacher cannot be scheduled to teach two
courses at the same time.
3. Capacity: Resources must have sufficient capacity to accommodate the activities
assigned to them. For example, a classroom must be large enough to accommodate
the number of students enrolled in a course.
4. Optimization Objectives: The timetable should be optimized to achieve specific
objectives, such as maximizing resource utilization, minimizing conflicts, or
balancing teacher workloads.

The problem of automatic timetable generation is a complex optimization problem that


involves multiple constraints and objectives. It is further complicated by the fact that the
constraints and objectives may be interdependent and conflicting. For example, maximizing
resource utilization may require scheduling more activities in a smaller number of
classrooms, which may increase the likelihood of conflicts. As a result, developing an
efficient and effective automatic timetable generation system is a challenging task that
requires sophisticated optimization techniques, such as genetic algorithms.

In automatic timetable generation, constraints can be classified into two categories: hard
constraints and soft constraints.

3.7.1 Hard Constraints:

Hard constraints are the constraints that must be satisfied without exception. If a
hard constraint is violated, the solution is considered infeasible and is discarded. Hard
constraints are often related to the availability, capacity, and conflict avoidance of resources.

Examples of hard constraints in automatic timetable generation include:

Availability: A classroom must be available at the scheduled time for a course.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

Capacity: A classroom must be large enough to accommodate the number of students


enrolled in a course.

Conflict avoidance: A teacher cannot be scheduled to teach two courses at the same time.

3.7.2 Soft Constraints:

Soft constraints are constraints that are desirable but not strictly necessary. If a soft
constraint is violated, the solution is still considered feasible but is penalized in the fitness
function. Soft constraints are often related to optimization objectives, such as resource
utilization, teacher workload, and student preferences.

Examples of soft constraints in automatic timetable generation include:

Resource utilization: The timetable should maximize the utilization of resources, such as
classrooms and teachers.

Teacher workload: The timetable should balance the workload of teachers, such that no
teacher is assigned too many or too few courses.

Student preferences: The timetable should consider student preferences, such as avoiding
early morning or late afternoon classes.

The distinction between hard and soft constraints is essential in automatic timetable
generation, as it allows for the trade-off between different objectives. Hard constraints must
always be satisfied, while soft constraints can be relaxed to improve other optimization
objectives. The penalty function used to penalize the violation of soft constraints can be
adjusted to reflect the relative importance of the constraint. For example, violating a soft
constraint related to student preferences may be penalized less severely than violating a soft
constraint related to resource utilization.

3.8 Key Challenges of Generating Timetables using Genetic Algorithms

While genetic algorithms offer a powerful approach to automatic timetable


generation, they also face several key challenges. These challenges must be addressed to
ensure the successful application of genetic algorithms in this domain. Some of these
challenges include:

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

1. Diverse solutions: In automatic timetable generation, there are often multiple


feasible solutions that satisfy the constraints and objectives. Genetic algorithms need
to generate diverse solutions that cover a broad spectrum of the search space to avoid
getting stuck in local optima. Local optima are suboptimal solutions that appear to
be optimal based on the current search but are not the global optimum.
2. Efficient fitness evaluation: The fitness function used in genetic algorithms needs
to be fast and efficient to evaluate the fitness of each chromosome. As the population
size grows, the fitness evaluation can become computationally expensive, which can
significantly increase the running time of the algorithm.
3. Avoiding local optima: Genetic algorithms have a tendency to converge to local
optima when the search space is vast, and the fitness function is complex. This is
because the algorithm may focus on improving the chromosomes with higher fitness
values rather than exploring the search space to find potentially better solutions.
4. Handling constraints: In automatic timetable generation, there are often multiple
constraints that must be satisfied. These constraints can be difficult to enforce in the
genetic algorithm framework, especially if they are interdependent or conflicting.

To address these challenges, various modifications and extensions of genetic algorithms


have been proposed, such as multi-objective genetic algorithms, hybrid algorithms, and
penalty functions. These modifications aim to improve the diversity of solutions, enhance
the efficiency of the fitness evaluation, and overcome the local optima problem. By
addressing these challenges, genetic algorithms can provide an efficient and effective
solution to the problem of automatic timetable generation.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

CHAPTER 4

SYSTEM DESIGN & DATA FLOW DIAGRAMS

The most creative and challenging phase of the life cycle is system design. The term
design describes a final system and the process by which it is developed. It refers to the
technical specifications that will be applied in implementations of the system. The
importance of software design can be stated in a single word “Quality”. Design provides us
with representations of software that can be assessed for quality. Design is the only way
where we can accurately translate user requirements into a complete software product or
system. Without design we risk building an unstable system that might fail if small changes
are made. It may as well be difficult to test, or could be one who’s quality can’t be tested.
So, it is an essential phase in the development of a software product. [23]

4.1 Use Case Diagram


Use case diagram identify the interactions between the system and its actors. The
use case diagram in figure 4.1 describe the user that perform various operations such as
manage day, manage class, manage teacher, create and update organization, manage subject
teacher, manage class teacher, manage subject period, manage user, do allotment, generate
timetable, print timetable, change password and logout to the system. All together combines
and create the timetable.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

Fig 4.1 Use Case Diagram

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

4.2 Flowchart

Fig 4.2 Flow Chart

Flowchart is presented in figure 4.2 that describe several sequential steps require
to generate an optimise timetable. Flowchart, the starts with login page. The master modules
are created. Master modules contains subject, class, teacher & weekdays. Then allotment is

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

done among the master modules and constraints are set Genetic Algorithm is applied and
timetable is generated any modification in the timetable can be done and genetic algorithm
is applied and a new timetable get generated. The generated timetable is viewed according
to Classwise, Teacherwise and Schoolwise and the last gets printed.

The proposed system consists of the following modules:

4.2.1 Master Module

The Master modules contains

 Subject
 Class
 Teacher
 Weekdays

4.2.2 Allotment Module

Allotment of class and subject to the teacher. And allotment is done among the master
modules and constraints are set. Then Genetic Algorithm is applied and timetable is
generated any modification in the timetable can be done and genetic algorithm is applied
and a new timetable get generated.

4.2.3 Timetable Generation Module

It is the important part of project which generate Timetable automatically. This will
be generated by admin and viewed by Principal and Faculty who's are the users of the
system.

4.2.4 Print and Export Module: Printing time table in different formats and export.

4.3 Class Diagram

The figure 4.3 shows the class diagram. Class diagram is to model the objects that
make up the system to display the relationship between the objects, and to describe what
those objects do and the services they provide. The process begins with user identification.
In login view there is User ID, password, which add both User ID and password for
authentication. The main user Interface contain subject view, class view, organization

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

window, Allotment view, timetable and class teacher view. All above views contain
multiple operation for filling the required details.

Fig 4.3 Class Diagram

4.4 Dataflow Diagrams

The DFD is also known as the bubble chart. It is a simple graphical formalism that can
be used to represent a system in terms of the input data to the system, various processing
carried out in these data and the output data generated by the system. Starting with a set of
high-level functions, the systems performance of DFD model is hierarchically represents by
various sub functions. In a normal convention, logical DFD can be completed using only
four notations:

 Represents source or destination of data


 Represents Data Flow
 Represents a process that transforms incoming data into outgoing data
 Represents Data Source

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

4.4.1 Function Symbol

A function is represented using a circle. This symbol is called a process or a bubble.


Bubbles are annotated with the names of corresponding functions.

4.4.2 External Entity Symbol

An external entity such as a librarian, library member etc is represented by a


rectangle. The external entities are essentially those physical entities external to the software
system, which interact with the system by inputting data to the system or by consuming the
data produced by the system.

4.4.3 Data Flow Symbol

A directed arc or an arrow is used as a Data Flow Symbol. This represents the data
flow occurring between two processes or between an external entity and a process in
direction of the Data Flow Arrow.

4.4.4 Output Symbol

The output symbol is used when a hardcopy is produced and the user of the copies
cannot be clearly specified or there are several users of the output. The DFD at the simplest
level is referred to as the Context Analysis Diagram. These are expanded by level, each
explaining in process in detail. Processes are numbered for easy identification and are
normally labelled in block letters. Each data flow is labelled for easy understanding.

4.5 Context Diagram

` The context diagram is the most abstract data flow representation of a system. It
represents the entire system as a single bubble. This bubble is labelled according to the main
function of the system. The various external entities with the system interact and the data
input to the system and the data output from the system are represented as incoming and
outgoing arrows. These data flow arrows should be annotated with the corresponding data
names.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

CHAPTER 5

SYSTEM IMPLEMENTATION

The java programming language and relevant libraries can be integrated with the
specific problem being solved. For example, if the genetic algorithm is being used to
generate a timetable for a school, the code would need to incorporate the specific constraints
and objectives of the problem, such as the availability of teachers, classrooms, and students,
and the need to minimize conflicts and maximize utilization.

Finally, the implementation of the genetic algorithm would typically involve


multiple iterations of testing and refinement to ensure that it is effective and efficient for the
specific problem being solved. This might involve tweaking the parameters of the algorithm,
optimizing the fitness function, or incorporating additional features or constraints. [31]

In summary, implementing a genetic algorithm using a programming language and


relevant libraries involves developing the core logic of the algorithm, integrating it with the
specific problem being solved, and iteratively testing and refining the implementation to
ensure its effectiveness and efficiency.

5.1 Genetic Algorithm Implementation:

The core logic of the genetic algorithm can be implemented using Java programming
language. This involves creating classes and methods to generate the initial population of
chromosomes, evaluate the fitness of each chromosome, select the fittest chromosomes for
reproduction, and apply crossover and mutation to generate the next generation of solutions.
The Java code can use object-oriented programming principles to encapsulate the genetic
algorithm logic in classes and methods, making the code more modular, reusable, and
maintainable. [32]

5.2 Vaadin Framework Integration:

The Vaadin framework is a Java web application framework that can be used to
create user interfaces for web applications. To implement the genetic algorithm, the Vaadin
framework can be used to create a user interface that allows users to input the problem

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

parameters, such as the number of classes, teachers, and students, and view the timetable
generated by the algorithm. The Vaadin framework provides a set of UI components, such
as buttons, input fields, and tables, that can be used to create the user interface. The Java
code can be integrated with the Vaadin UI code to allow users to interact with the genetic
algorithm and view the results. [27]

5.3 Genetic Algorithm Customization:

The Java code and Vaadin UI code can be customized to suit the specific problem
being solved, such as generating a timetable for a school. This involves modifying the
genetic algorithm code to incorporate the specific constraints and objectives of the problem,
such as the availability of teachers, classrooms, and students, and the need to minimize
conflicts and maximize utilization. The Vaadin UI code can be customized to provide an
intuitive and user-friendly interface for inputting the problem parameters and viewing the
timetable results. [32]

5.4 Testing and Refinement:

The implementation of the genetic algorithm using Java and Vaadin involves
multiple iterations of testing and refinement to ensure that it is effective and efficient for the
specific problem being solved. This might involve tweaking the parameters of the algorithm,
optimizing the fitness function, or incorporating additional features or constraints. The
Vaadin UI code can be tested for usability and accessibility, and refined to improve the user
experience. [25]

In summary, implementing a genetic algorithm using Java programming language


and the Vaadin framework involves creating classes and methods to implement the core
logic of the algorithm, integrating the Java code with the Vaadin UI code to create a user
interface for the algorithm, customizing the code to suit the specific problem being solved,
and iteratively testing and refining the implementation to ensure its effectiveness and
efficiency.

 System Analysis
At this step the developers decide a roadmap of their plan and try to bring up the
best software model suitable for the project. System analysis includes Understanding of

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

software product limitations, learning system related problems or changes to be done in


existing systems beforehand, identifying and addressing the impact of project on
organization and personnel etc. The project team analyze the scope of the project and plans
the schedule and resources accordingly.
 Software Design
Next step is to bring down whole knowledge of requirements and analysis on the
desk and design the software product. The inputs from users and information gathered in
requirement gathering phase are the inputs of this step. The output of this step comes in the
form of two designs; logical design and physical design. Engineers produce meta-data and
data dictionaries, logical diagrams, data-flow diagrams and in some cases pseudo codes.
5.5 Implementation
This means installing the software on user machines. At times, software needs post-
installation configurations at user end. Software is tested for portability and adaptability and
integration related issues are solved during implementation.
 Operation and Maintenance
This phase confirms the software operation in terms of more efficiency and less
errors. If required, the users are trained on, or aided with the documentation on how to
operate the software and how to keep the software operational. The software is maintained
timely by updating the code according to the changes taking place in user end environment
or technology.
5.6 Detail Design

5.6.1 Database Design


The system is implemented in such a way that all the valid information’s are stored
in the database. Database design converts the data model developed in logical designing to
database definition. This is supported by database software. The management of data
involves both the definition of structure of the storage of information and provision of
mechanism for the manipulation of information. In additions database system must provide
safety of information handle, despite the system crashes due to attempts of unauthorized
access. A database is a collection of interrelated data stored with minimum redundancy to
serve many users quickly and efficiently. In database design, several views of data must be
considered along with the person who users them.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

5.6.2 Normalization
Normalization is the process of analyzing the given relation schemas based on their
Functional Dependencies and primary keys to achieve the desirable properties of
Minimizing Redundancy, Minimizing the insertion, deletion and updating anomalies.
Normalization is carried out for the following reasons:
Normalization consists of various levels:
1. First Normal Form (1NF):

A table is in 1NF if there are no duplicate rows in the table. Each cell is single valued.
Entries in a column are of the same kind.
2. Second Normal Form (2NF):

Second Normal form is based on the concept of full functional dependency. A table
(relation) is in 2NF if. It is in First Normal Form and if all non-key attributes are dependent
on the key. Dependent on only a part of the (composite) key, the definition of 2NF is
sometimes phrased as, "A table is in 2nF if it is in 1NF and if it has no partial dependencies.”
3. Third Normal Form (3NF):

Third Normal Form is based on the concept of transitive dependency. A table


(relation) is in 3NF if it is in Second Normal Form and if it has no transitive dependencies.
5.7 Activity Diagram
The purpose of activity diagram is to elaborate the flow of one activity to another, with
as system or process. The activity diagram shown in figure 5.7 elaborates the flow of
activities and their connections with each module the activity diagrams begin with the start
and the first step that come is the user validation phase.
When the user gets verified, the further flow of activity diagram is continued. There are
6 main modules, organization update, create subject, create class, create teacher, manage
day, manage user that are dependent on each other.
Create subject, create class and crate teacher shows activity relationship among them,
also assign class teacher, subject teacher and subject period are dependent on those 3
modules. For authentication the activity diagram includes password verification and change
password optimization when allotment gets completed.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

Fig 5.7 Activity Diagram

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

5.8 Entity-Relationship (ER) Diagram

Fig 5.8 Entity-Relationship Diagram

The figure 5.8 shows the Entity Relationship (ER) diagram represents the
relationship among the entites. The ER diagram has user type of timetable uses in
organization. The module subject and teacher contains relation with class acording to the
allotment of subject to teachers the relation is displayed with consideration of teacher and
class modules class teacher are assigned. The three main modules techer, class and subject
are related to the module day and together combine to make timetable of a particular class
with alloted teacher for ythe subject of that class with respect to the working days.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

CHAPTER 6

RESULTS & DISCUSSION

6.1 Comparison with Existing Systems

It is essential to consider several factors such as quality, efficiency, and scalability. While
comparing Automatic Timetable Generation using Genetic Algorithm with existing system.

6.1.1 Quality:

The quality of the generated timetables is crucial as it directly affects the educational
institution's ability to meet the constraints and requirements of the timetable. The genetic
algorithm approach can generate high-quality timetables by optimizing the fitness function,
which considers various constraints such as course offerings, teacher availability, and room
allocation. Additionally, the genetic algorithm approach allows for the inclusion of
additional constraints and preferences, which can lead to the generation of more
personalized timetables for students and teachers.

6.1.2 Efficiency:

The efficiency of the timetable generation process is another critical factor to


consider when comparing the genetic algorithm approach with existing approaches. The
genetic algorithm approach is computationally efficient as it uses a parallel evaluation of
fitness function and allows for the exploration of a large solution space in a relatively short
amount of time. In contrast, existing approaches, such as manual or rule-based approaches,
are time-consuming and require considerable effort from the administrator.

6.1.3 Scalability:

Scalability is the ability of the timetable generation approach to handle large-scale


problems. The genetic algorithm approach can scale efficiently as it can handle large and
complex datasets, making it suitable for institutions with a large number of courses,
teachers, and students. On the other hand, existing approaches may become unfeasible and
time-consuming when dealing with large datasets.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

6.2 Analysis of the Fitness Function and its Impact on the Results

The fitness function is a critical component of the genetic algorithm approach used
for automatic timetable generation. It is the function that evaluates the quality of the solution
represented by a particular chromosome and determines its fitness score. The fitness score
is used to select the best chromosomes for the next generation, ensuring the algorithm's
convergence towards the optimal solution.

The fitness function's design is essential as it determines the quality of the generated
timetables and impacts the algorithm's efficiency and convergence. Therefore, a thorough
analysis of the fitness function's design and its impact on the results is necessary.

The fitness function design should incorporate various constraints such as course
offerings, teacher availability, room allocation, and student preferences. Additionally, it
should prioritize certain constraints over others based on their importance and relevance to
the institution. For example, course offerings may be more critical than room allocation or
student preferences.

Furthermore, the fitness function should also consider the fairness of the generated
timetables by minimizing the number of conflicts and ensuring an equal distribution of
course offerings among teachers and students. The fairness component can be incorporated
by introducing a penalty term in the fitness function that penalizes the chromosomes with a
higher number of conflicts or uneven distribution of course offerings.

The impact of the fitness function design on the results is significant as it directly
affects the generated timetables' quality and the algorithm's efficiency and convergence. A
well-designed fitness function can lead to the generation of high-quality timetables that
satisfy the institution's requirements and constraints. On the other hand, a poorly designed
fitness function can result in the generation of low-quality timetables that may not meet the
requirements or constraints.

In conclusion, the fitness function's design is crucial to the success of the genetic
algorithm approach used for automatic timetable generation. It is necessary to carefully
consider the constraints and preferences relevant to the institution and prioritize them
appropriately. Additionally, fairness considerations should be incorporated to ensure equal

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

distribution and minimize conflicts. A well-designed fitness function can lead to the
generation of high-quality timetables, while a poorly designed one can led to suboptimal
results.

6.3 Effectiveness of the Genetic Algorithm:

The genetic algorithm approach for automatic timetable generation has been proven
to be an effective and efficient solution. The approach's effectiveness can be attributed to
several factors such as flexibility, scalability, and the ability to handle various constraints
and preferences.

 Flexibility:

The genetic algorithm approach is flexible and can accommodate various constraints
and preferences, making it suitable for different educational institutions. The algorithm can
be customized to incorporate specific constraints and preferences that are relevant to the
institution, leading to the generation of more personalized and optimized timetables.

 Scalability:

The genetic algorithm approach can handle large-scale problems, making it suitable
for institutions with a large number of courses, teachers, and students. The algorithm's
parallel evaluation of fitness function and exploration of a large solution space in a relatively
short amount of time make it computationally efficient and scalable.

 Handling Various Constraints and Preferences:

The genetic algorithm approach can handle various constraints and preferences such
as course offerings, teacher availability, room allocation, and student preferences. The
algorithm's ability to prioritize constraints and preferences based on their importance and
relevance to the institution leads to the generation of high-quality timetables that meet the
institution's requirements.

Additionally, the genetic algorithm approach's effectiveness can be


demonstrated by comparing the results obtained from the approach with other existing
approaches such as manual and rule-based approaches.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

6.4 Results
6.4.1 Login view

Fig 6.4.1: Login view

The figure 6.4.1 shows the user login page. In this view of timetable, a user login
page that allow users to access the timetable system by entering their username and
password. The page typically serves as a security measure to ensure that only authorized
user can access the timetable system.

6.4.2 Organization view

Fig 6.4.2: Organization View

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

The figure 6.4.2, an organization page that display information regarding the organization
and institution. The page contains some required fields such as name of the timetable and
organization name.

6.4.3 Dashboard view

Fig 6.4.3: Dashboard View

The above figure 6.4.3 shows dashboard view, a dashboard view provides an overview of
the timetable system which helps user to easily understand the functionality of the system.
The dashboard typically displays important information such as the user schedule, day,
subject period, class, teacher, allotment and generate the timetable. The timetable system,
can help user to easily access and manage their schedules.

6.4.4 Day view

Fig 6.4.4: Day View

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

The figure 6.4.4 shows Day View, day refers to the scheduling of the activities or classes
with in a specific time periods. A school day consist of several periods of time, with each
period being assigned to a specific subject or activity, the day may be divided in to multiple
session such as morning, afternoon, and evening with each session having a different set of
activities.

6.4.5 Periods Per Day view

Fig 6.4.5: Periods Per Day view

The figure 6.4.5 refer to the number of time slot or class period that are scheduled with in a
single day. The number of periods in a single day is depending upon the preference of the
institution or organization. But typically, it ranges from 4 to 8 periods per day.

6.4.6 Subject view

Fig 6.4.6: Subject view

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

The figure 6.4.6 show the subject view, in this view we can add Subject title, subject code,
and priority of the subject and assign the subjects to the session. And we can also add
different colour codes for more clarifications.

6.4.7 Subject period view

Fig 6.4.7: Subject Period

The figure 6.4.7 refer to the allotment of the subject to the class with respect to the priority
of the subject. When designing a timetable, it is important to assigned each subject to its
appropriate time slot and the consideration of availability of teachers and classrooms.

6.4.8 Teacher view

Fig 6.4.8: Teacher view

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

In figure 6.4.8 shows teacher view, there are several fields such as teacher’s name, teacher’s
short name, designation of the teacher qualification etc. In this module the teacher’s name,
teacher’s short name and designation is mandatory.

6.4.9 Class view

Fig 6.4.9: Class View

In figure 6.4.9, the class view shows the class, division and strength of the class.

6.4.10 Class Teacher view

Fig 6.4.10: Class Teacher View

In figure 6.4.10 class teacher view shows that which teacher assign to which class and which
division.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

6.4.11 User view

Fig 6.4.11: User View

The figure 6.4.11 shows user view, in user view module they are having three field such as
user id, password and user type that means the activity status of the user and it also shows
the activeness of the users.

6.4.12 Allotment view

Fig 6.4.12: Allotment View

The figure 6.4.12 shows the allotment page. The allotment is done weekly, so that the
allotment module shows teacher name and total lecture on a week. This view shows which
teacher allotted to which class and which subject they have to be taken.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

6.4.13 TimeTable view

Fig 6.4.13: Timetable View

The figure 6.4.13 shows timetable view, the timetable would show the schedules of all
classes, teachers, resources for a given period of time. The timetable shows which teacher
taken which subject in which class and division.

6.4.14 Classwise Timetable

Fig 6.4.14: Classwise Timetable

The figure 6.4.14 shows the timetable for students, this timetable helps the students to view
their daily schedule.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

6.4.15 Teacherwise Timetable

Fig 6.4.15: Teacherwise Timetable

The figure 6.4.15 shows the timetable for teachers, in this view the teacher can use their
schedule appropriately and take their lectures on respective class without any conflicts.

6.4.16 Schoolwise Timetable

Fig 6.4.16: Schoolwise Timetable

The figure 6.4.16 shows the timetable for school, the timetable would show the
schedules of all classes, teachers, resources for a given period of time. The school wise
timetable includes information on other activities such as breaks, lunchtime and extra
curriculum activities. A Schoolwise timetable can also help teachers to coordinate their

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

schedules, collaborate with one another and ensure that all classes are taught effectively and
efficiently.

The results obtained from the experiments conducted using the genetic algorithm
approach demonstrate its effectiveness in generating high-quality timetable. The algorithm
successfully balances conflicting objectives, such as minimizing clashes and maximizing
resource utilization, resulting in timetables that meet various constraints and requirements.
Utilization of genetic algorithms in eTimetables optimization demonstrates their
effectiveness in generating high-quality timetables. This approach offers improved
efficiency, adaptability, and scalability compared to traditional methods. The given results
satisfied the constraints, generated the timetable without any empty space and an optimised
timetable is obtained in less time.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

CHAPTER 7

CONCLUSION & FUTURE WORK

7.1 Conclusion

In conclusion, the genetic algorithm approach for automatic timetable generation is


an effective and efficient solution that can handle various constraints and preferences. The
approach's flexibility and scalability make it suitable for different educational institutions,
leading to the generation of personalized and optimized timetables. The approach's
effectiveness can be demonstrated by comparing the results obtained from the approach
with existing approaches, and it is observed that it generates higher-quality timetables while
maintaining efficiency and scalability.

Through the use of genetic operators such as selection, crossover, and mutation, the
algorithm iteratively improves the generated timetables over successive generations. The
selection process favors solutions with higher fitness, ensuring that only the best timetables
are carried forward. Crossover and mutation introduce diversity and exploration, allowing
the algorithm to search a wide range of possible solutions.
Additionally, the genetic algorithm is highly adaptable and flexible, capable of
handling various constraints and objectives simultaneously. It can incorporate constraints
such as room availability, instructor preferences, and student course preferences, ensuring
that the generated timetables satisfy multiple criteria. This versatility makes it an invaluable
tool for generating optimal timetables in complex and dynamic scheduling environments.
In conclusion, the utilization of genetic algorithm in the automatic timetable
generation process offers significant advantages in terms of efficiency, adaptability, and
scalability.

7.2 Future Work


Future work is necessary for further improvement in the genetic algorithm approach,
for automatic timetable generation. Some of the areas that require further investigation
includes:

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

Incorporating new constraints and preferences: While the genetic algorithm approach
can handle various constraints and preferences, there may be additional constraints or
preferences that are relevant to specific institutions that are not yet incorporated into the
algorithm.

Handling uncertainties: The approach should be able to handle uncertainties such as


sudden changes in teacher availability, room availability, or student preferences. The
algorithm should be able to quickly adapt to such changes and generate new timetables that
meet the new requirements.

Optimization of fitness function: The fitness function is a crucial component of the genetic
algorithm approach, and optimizing it can lead to the generation of more efficient and
effective timetables. Investigating and developing new fitness function designs or refining
existing designs can lead to improved results.

Comparison with other machine learning approaches: While the genetic algorithm
approach has been shown to be effective, comparing it with other machine learning
approaches such as neural networks, decision trees, or support vector machines can provide
a better understanding of its effectiveness and identify areas for improvement.

This project will be a great helpful for the institution’s because, it is a great difficult
task that to manage many Faculties and allocating subjects for them at a time manually and
this project will help to manage it properly. This manage timetable for faculty with
considering maximum and minimum workload, and can be managed easily.

In future, this work can be included, in the timetable generation using genetic algorithm.

1. Free teacher availability, for substitution day wise, period wise

2. Total number of periods subject wise

Adding the future work in upcoming time will make the project more robust and
scalable. The report concludes, with user friendly generating timetable using genetic
algorithm, optimizing fitness function, and comparing it with other machine learning
approaches.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

REFERENCES
[1] Burke EK, Ross P. The Practice and Theory of Automatic Timetabling: Selected Papers from the First
International Conference, Edinburgh, 1995, Lecture Notes in Computer Science, Vol. 1153. Berlin: Springer;1996.

[2] Burke EK, Carter MW. The Practice and Theory of Automatic Timetabling: Selected Papers from the Second
International Conference, Toronto, 1997, Lecture Notes in Computer Science, Vol. 1408. Berlin: Springer; 1998.

[3] Burke EK, Carter MW. The Practice and Theory of Automatic Timetabling: Selected Papers from the Third
International Conference, Konstanz, 2000, Lecture Notes in Computer Science, Vol. 2079. Berlin: Springer;
2001.

[4] Carter MW, Laporte G. Recent developments in practical course timetabling. In: Burke EK, Carter MW.The
Practice and Theory of Automatic Timetabling: Selected Papers from the Second International Conference,
Toronto,1997, Lecture Notes in Computer Science, Vol. 1408. Berlin: Springer; 1998. p. 3–19.

[5] Burke EK, Petrovic S. Recent research directions in automated timetabling. European Journal ofOperational
Research 2002;140(2):266–80.

[6] S. Petrovic and E. K. Burke, University Timetabling, 2004.

[7] Mooney EL, Rardin RL, Parmenter WJ. Large-scale classroom scheduling. IIE Transactions
1996;28(5):369–78.

[8] Colorni A, Dorigo M, Maniezzo V. Metaheuristics for high-school timetabling. Computational Optimization
and Applications 1998;9(3):275–98.

[9] Burke, Edmund K., and James P. Newall. "A multistage evolutionary algorithm for the timetable
problem." IEEE transactions on evolutionary computation 3.1 (1999): 63-74.

[10] E. K. Burke, D. G. Elliman, and R. F. Weare, “A hybrid genetic algorithm for highly constrained
timetabling problems,” in Genetic Algorithms: Proceedings of the 6th International Conference, L. J. Eshelman,
Ed. San Francisco,CA: Morgan Kaufmann, 1995, pp. 605–610.

[11] E. K. Burke, J. P. Newall, and R. F. Weare, “A memetic algorithm for university exam timetabling,” inThe
Practice and Theory of Automated Timetabling: Selected Papers from the 1st International Conference (Lecture
Notes in Computer Science 1153), E. Burke and P. Ross, Eds. Berlin, Germany: Springer-Verlag, 1996, pp. 241–
250.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

[12] D. Corne, P. Ross, and H. Fang, "Fast practical evolutionary timetabling," in Lecture Notes in
Computer Science 865 (AISB Workshop on Evolutionary Computing), T. C. Fogarty, Ed. Berlin: Springer-Verlag,
1994, pp. 250–263.

[13] B. Paechter, A. Cumming, and H. Luchian, “The use of local search suggestion lists for improving the
solution of timetable problems with evolutionary algorithms,” in Lecture Notes in Computer Science 993 (AISB
Workshop on Evolutionary Computing), T. C. Fogarty, Ed. Berlin: Springer-Verlag, 1995, pp. 86–93.

[14] R. M. Karp, “Reducibility among combinatorial problems,” in Complexity of Computer Computations,


R. E. Miller and J. W. Thatcher, Eds. New York: Plenum, 1972, pp. 85–103.

[15] D. J. A. Welsh and M. B. Powell, “An upper bound for the chromatic number of a graph and its application
to timetable problems,” Comput. J., vol. 10, pp. 85–86, 1967.

[16] J. M. Thompson and K. A. Dowsland, “General cooling schedules for a simulated annealing based
timetabling system,” in The Practice and Theory of Automated Timetabling: Selected Papers from the 1 st
International Conference (Lecture Notes in Computer Science 1153), P. Ross and E. Burke, Eds. Berlin:
Springer-Verlag, 1996, pp. 345–364.

[17] A. Hertz, “Tabu search for large scale timetabling problems,” Eur. J. Oper. Res., vol. 54, pp. 39–47, 1991.

[18] Pongcharoen, Pupong, et al. "Stochastic optimization timetabling tool for university course
scheduling." International journal of production economics 112.2 (2008): 903-918.

[19] Alvarez-Valdes, R., Crespo, E., Tamarit, J.M., 2002. Design and implementation of a course scheduling
system using tabu search. European Journal of Operational Research 137 (3), 512-523.

[20] Santiago-Mozos, Ricardo, et al. "A two-phase heuristic evolutionary algorithm for personalizing
course timetables: a case study in a Spanish university." Computers & operations research 32.7
(2005): 1761-1776.

[21] Burke EK, Elliman DG, Weare RF. A hybrid genetic algorithm for highly constrained timetabling
problems. In: Proceedings of the Sixth International Conference on Genetic Algorithms. San Francisco, CA:
Morgan Kaufmann;1995.

[22] Daniel, Paul Godwin, Alimi Olasunkanmi Maruf, and Bala Modi. "Paperless Master Timetable
Scheduling System.& quot; International Journal of Applied 8.2 (2018).

[23] R.K,.Ojha, D., Mohapatra D.P., and Patra, M.R. (2017).Automatic Generation and Optimization of
CourseTimetable using a Hybrid Approach. Journal of Theoretical and Applied Information Technology,
95(1):68-77, 15th January 2017.

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

[24] Samah, Khyrina Airin Fariza Abu, et al. "A Greedy-based Algorithm in Optimizing Student’s
Recommended Timetable Generator with Semester Planner." International Journal of Advanced Computer
Science and Applications 13.1 (2022).

[25] Singh, Harnirvair, Ritu Sibal, and Sulabh Tyagi. "GATT: A Genetic Algorithm-based Tool for
Automating Timetable Scheduling at Netaji Subhas University of Technology." 2021 Thirteenth
International Conference on Contemporary Computing (IC3-2021). 2021

[26] de Werra D. An introduction to timetabling. European Journal of Operational Research 1985;19:151–62.

[27] Burke EK, Carter MW. The Practice and Theory of Automatic Timetabling: Selected Papers from the
Second International Conference, Toronto, 1997, Lecture Notes in Computer Science, Vol. 1408. Berlin:
Springer; 1998.

[28] Gueret C, Jussien N, Boizumault P, Prins C. Building university timetables using constraint logic
programming. In: Burke EK, Ross P, editors. The Practice and Theory of Automatic Timetabling: Selected
Papers from the First International Conference, Edinburgh, 1995, Lecture Notes in Computer Science, Vol. 1153.
Berlin: Springer; 1996. p.130 – 45.

[29] White GM. Constrained satisfaction, not so constrained satisfaction and the timetabling problem. In: Burke
EK, Carter MW, editors. The Practice and Theory of Automatic Timetabling: Selected Papers from the Third
International Conference, Konstanz, 2000, Lecture Notes in Computer Science, Vol. 2079. Berlin: Springer;
2001. p. 32– 47.

[30] https://www.tutorialspoint.com/eclipse/eclipse_overview.htm

[31] Oladimeji, Ismaila W. "Automated Lectures-Based Timetabling Generation Using Evolutionary


Algorithm." LAUTECH JOURNAL OF COMPUTING AND INFORMATICS 1.1 (2020): 49-57.

[32] Oladipo, Williams Kehinde, Ajayi Olutayo Bamidele, and Ajinaja Micheal Olalekan. "Automatic Timetable
Generation using Genetic Algorithm." International Journal of Applied Information Systems (IJAIS) 12 (2019):
19.

[33] https://www.google.com/search?q=automatic+timetable+generator+using+genetic+algorithm&rlz=1C1
ONGR_enIN1055IN1055&sxsrf=APwXEdeh9ZrUqsx_hVobmw1gDElHRJBaQ:1684510767218&source=l
nms&tbm=isch&sa=X&ved=2ahUKEwijuJnP24H_AhWBnmMGHeY0AYcQ_AUoAnoECAEQBA&biw=
1366&bih=657&dpr=1#imgrc=9hspvh8nIufjZM&imgdii=Og0GCG4zAi5RGM

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

APPENDIX-A (Coding)

i. Login view:

package com.eneuron.views;

import java.io.File;

import java.io.FileInputStream;

import java.io.ObjectInputStream;

import java.util.List;

import com.eneuron.MainLayout;

import com.eneuron.backend.OrganizationRepository;

import com.eneuron.util.Base64;

import com.eneuron.util.Constants; import

com.vaadin.flow.component.Html;import

com.vaadin.flow.component.Text; import

com.vaadin.flow.component.UI;

import com.vaadin.flow.component.html.H1;

import com.vaadin.flow.component.html.H3;

import com.vaadin.flow.component.html.Image;

import com.vaadin.flow.component.html.Label;

import com.vaadin.flow.component.login.LoginForm;

import com.vaadin.flow.component.login.LoginOverlay;

import com.vaadin.flow.component.login.AbstractLogin.LoginEvent;

import com.vaadin.flow.component.orderedlayout.VerticalLayout;

import com.vaadin.flow.component.page.Viewport;

import com.vaadin.flow.router.PageTitle;

import com.vaadin.flow.router.Route;

import com.vaadin.flow.router.Router;

import com.vaadin.flow.server.PWA;

import com.vaadin.flow.server.VaadinSession;

import bean.User;

@Route("login")

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

@PageTitle("Login - eTimeTabler")

@Viewport(Constants.VIEWPORT)

public class LoginView extends VerticalLayout{

private OrganizationRepository organizationrepository;

LoginOverlay component;

public LoginView(OrganizationRepository organizationrepository) {

this.organizationrepository = organizationrepository;

setMargin(false);

component = new LoginOverlay();

component.setForgotPasswordButtonVisible(true);

H1 title = new H1();

title.setSizeFull();

//title.add(new Text(" Eccountant"));

Image img = new Image("/images/logo.png", "");

title.add(img);

component.setTitle(title); component.setDescription("TimeTable

Generator"); component.addLoginListener(e -> {

User euser = authenticate(e);if

(euser!=null) {

MainLayout.euser = euser;

try {

ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new


File("properties/company.properties")));

List<bean.Company> listcompany = (List<bean.Company>) ois.readObject();

ois.close()

if(listcompany.isEmpty()) {

getUI().ifPresent(ui -> ui.navigate("company"));

}else {

MainLayout.organization = organizationrepository.findByOrganizationid(1);

component.close();

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

getUI().ifPresent(ui -> ui.navigate(""));}

}catch(Exception e2) {

e2.printStackTrace();

} component.close();

getUI().ifPresent(ui -> ui.navigate(""));

} else {

component.setError(true);

});component.setOpened(true);

setAlignItems(Alignment.CENTER);

setSizeFull();

private User authenticate(LoginEvent e) {

try {

//List<Euser> list = euserrepository.authenticate(e.getUsername(), Base64.encode(e.getPassword()));

ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new


File("properties/users.properties")))

List<User> list = (List<User>) ois.readObject();

for(User user: list) {

if(user.getId().equals(e.getUsername())&&user.getPassword().equals(Base64.encode(e.getPasswor
d()))) {

return user;

}return null;

}catch(Exception e1) {

e1.printStackTrace();

return null;

ii. Organization view:


package com.eneuron.data.entity;

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

import java.util.Objects;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

import com.eneuron.data.AbstractEntity;
@Entity
@Table(name = "organization")
public class Organization extends AbstractEntity{

@NotEmpty
@NotNull
@Column(unique=true, nullable = false, length = 50)
private String name;

@NotEmpty
@NotNull
@Column(nullable = false, length = 50)
private String address;
@NotEmpty
@NotNull
@Column(nullable = true, length = 50)
private String city;
@NotNull
private Integer pincode;
@NotEmpty
@NotNull
@Column( length = 50)
private String email;
@NotEmpty
@NotNull
@Column( length = 15)
private String Mobile;

@Column( length = 50)


private String website ;

@NotNull
@Column( nullable = true)
private Integer regNo;

public String getName() {


return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public Integer getPincode() {
return pincode;
}
public void setPincode(Integer pincode) {
this.pincode = pincode;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getMobile() {
return Mobile;
}
public void setMobile(String mobile) {
Mobile = mobile;
}
public String getWebsite() {
return website;
}
public void setWebsite(String website) {
this.website = website;
}
public Integer getRegNo() {
return regNo;
}
public void setRegno(Integer regNo) {
this.regNo = regNo;
}
@Override
public String toString() {
return "Organization [name=" + name + ", address=" + address + ", city=" + city + ", pincode=" + pincode
+ ", email=" + email + ", Mobile=" + Mobile + ", website=" + website + ", regNo=" + regNo + "]";
}

@Override
public int hashCode() {
return Objects.hash(Mobile, address, city, email, name, pincode, regNo, website);
}

@Override
public boolean equals(Object obj) {if
(this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Organization other = (Organization) obj;

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

return Objects.equals(Mobile, other.Mobile) && Objects.equals(address, other.address)


&& Objects.equals(city, other.city) && Objects.equals(email, other.email)
&& Objects.equals(name, other.name) && Objects.equals(pincode, other.pincode) &&
Objects.equals(regNo, other.regNo) && Objects.equals(website, other.website);
}
}
iii. Dashboard:
package com.eneuron.views;

import com.eneuron.MainLayout;
import com.vaadin.flow.component.Html;
import com.vaadin.flow.component.html.H3;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.router.BeforeEnterEvent;
import com.vaadin.flow.router.BeforeEnterObserver;
import com.vaadin.flow.router.Route;
import com.vaadin.flow.server.VaadinSession;

import entity.Organization;

@Route( value = "", layout = MainLayout.class)

public class MainView extends VerticalLayout implements BeforeEnterObserver {

public MainView() {

H3 h3 = new H3("Welcome To eTimeTabler!");


h3.getStyle().set("font-family", "Helvetica");
add(h3);

Html html = new Html("<p> School Timetable generator utility.<br>developed by <a


href='http://www.eneuron.in'>eNeuron</a><br><br>contact: +91 9271711722</p>");
add(html);
}

@Override
public void beforeEnter(BeforeEnterEvent event) {

if(MainLayout.euser==null) {

event.forwardTo(LoginView.class);
}

if(MainLayout.organization==null) {

getUI().ifPresent(ui -> ui.navigate("company"));

}else {

MainLayout.lcompany.setText(MainLayout.organization.getOrganizationname());
}
}
}

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

iv. Day:
package com.eneuron.data.entity;

import java.util.List;
import java.util.Objects;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import com.eneuron.data.AbstractEntity;
@Entity
@Table(name = "day")
public class Day extends AbstractEntity{

@NotEmpty
@NotNull
@Column(unique=true, nullable = false, length = 50)
private String name;
@NotNull
@Column( nullable = false, length = 20)
private Integer noofPeroid;
@Column( nullable = false) private
Integer shortReccess;
@Column( nullable = false) private
Integer longReccess;
@Column( nullable = false)
@NotNull
private Boolean isholiday;
@OneToMany(mappedBy = "day")
private List<TimeTable>timetableList;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getNoofPeroid() {
return noofPeroid;
}
public void setNoofPeroid(Integer noofPeroid) {
this.noofPeroid = noofPeroid;
}
public Integer getShortReccess() {
return shortReccess;
}
public void setShortReccess(Integer shortReccess) {
this.shortReccess = shortReccess;
}
public Integer getLongReccess() {
return longReccess;
}
public void setLongReccess(Integer longReccess) {
this.longReccess = longReccess;
}

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

public Boolean getIsholiday() {


return isholiday;
}
public void setIsholiday(Boolean isholiday) {
this.isholiday = isholiday;
}
@Override
public String toString() {
return "Day [name=" + name + ", noofPeroid=" + noofPeroid + ", shortReccess=" +
shortReccess + ", longReccess="
+ longReccess + ", isholiday=" + isholiday + "]";
}
@Override
public int hashCode() {
return Objects.hash(isholiday, longReccess, name, noofPeroid, shortReccess);
}
@Override
public boolean equals(Object obj) {if
(this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Day other = (Day) obj;
return Objects.equals(isholiday, other.isholiday) && Objects.equals(longReccess,
other.longReccess)
&& Objects.equals(name, other.name) && Objects.equals(noofPeroid,
other.noofPeroid)
&& Objects.equals(shortReccess, other.shortReccess);
}
}

v. Periods Per Day:


package com.eneuron.data.entity;

import java.util.Objects;

import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import com.eneuron.data.AbstractEntity;
@Entity
@Table(name = "remainingperiod")
public class RemainingPeriod extends AbstractEntity{

@JoinColumn(name = "allotmentId", referencedColumnName = "id", nullable = false)


@ManyToOne(optional = false)
private Allotment allotment;

public Allotment getAllotment() {


return allotment;
}

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

public void setAllotment(Allotment allotment) {


this.allotment = allotment;
}

@Override
public String toString() {
return "RemainingPeriod [allotment=" + allotment + "]";
}

@Override
public int hashCode() {
final int prime = 31;
int result = super.hashCode();
result = prime * result + Objects.hash(allotment);
return result;
}

@Override
public boolean equals(Object obj) {if
(this == obj)
return true;
if (!super.equals(obj))
return false;
if (getClass() != obj.getClass())
return false;
RemainingPeriod other = (RemainingPeriod) obj;
return Objects.equals(allotment, other.allotment);
}
}

vi. Subject:
package com.eneuron.data.entity;

import java.util.List;
import java.util.Objects;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import com.eneuron.data.AbstractEntity;
@Entity
@Table(name = "subject")
public class Subject extends AbstractEntity {

@NotEmpty
@NotNull
@Column(nullable = false, unique=true , length = 50)
private String name;

@NotEmpty
@NotNull

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

@Column(nullable = false , unique=true , length = 50)


private String code;
@NotNull
@Column(nullable = false)
private int priority;

@NotNull
@Column(nullable = false)
private int sessionPeriod;

@NotEmpty
@NotNull
@Column(nullable = false, unique=true ,length = 7)
private String colorCode;

@OneToMany(mappedBy = "subject")
private List<SubjectTeacher> subjectteacherList;

@OneToMany(mappedBy = "subject")
private List<SubjectPeriod> subjectperiodList;

@OneToMany(mappedBy = "subject")
private List<Allotment> allotmentList;

@OneToMany(mappedBy = "subject")
private List<TimeTable> timetableList;

public String getName() {


return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public int getPriority() {
return priority;
}
public void setPriority(int priority) {
this.priority = priority;
}
public int getSessionPeriod() {
return sessionPeriod;
}
public void setSessionPeriod(int sessionPeriod) {
this.sessionPeriod = sessionPeriod;
}
public String getColorCode() {
return colorCode;
}
public void setColorCode(String colorCode) {
this.colorCode = colorCode;
}

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

public List<SubjectTeacher> getSubjectteacherList() {


return subjectteacherList;
}
public void setSubjectteacherList(List<SubjectTeacher> subjectteacherList) {
this.subjectteacherList = subjectteacherList;
}
public List<SubjectPeriod> getSubjectperiodList() {
return subjectperiodList;
}
void setSubjectperiodList(List<SubjectPeriod> subjectperiodList) {
this.subjectperiodList = subjectperiodList;
}
public List<Allotment> getAllotmentList() {
return allotmentList;
}
public void setAllotmentList(List<Allotment> allotmentList) {
this.allotmentList = allotmentList;
}
public List<TimeTable> getTimetableList() {
return timetableList;
}
public void setTimetableList(List<TimeTable> timetableList) {
this.timetableList = timetableList;
}
@Override
public String toString() {
return "Subject [name=" + name + ", code=" + code + ", priority=" + priority + ", sessionPeriod="
+ sessionPeriod + ", colorCode=" + colorCode + ",
subjectteacherList=" + subjectteacherList
+ ", subjectperiodList=" + subjectperiodList + ",
allotmentList=" + allotmentList
+ ", timetableList=" + timetableList + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = super.hashCode();
result = prime * result + Objects.hash(allotmentList, code, colorCode, name,
priority, sessionPeriod,
subjectperiodList, subjectteacherList, timetableList);
return result;
}

@Override
public boolean equals(Object obj) {if
(this == obj)
return true;
if (!super.equals(obj))
return false;
if (getClass() != obj.getClass())
return false;
Subject other = (Subject) obj;
return Objects.equals(allotmentList, other.allotmentList) &&
Objects.equals(code, other.code)
&& Objects.equals(colorCode, other.colorCode) &&
Objects.equals(name, other.name)

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

&& priority == other.priority && sessionPeriod ==


other.sessionPeriod
&& Objects.equals(subjectperiodList, other.subjectperiodList)
&& Objects.equals(subjectteacherList,
other.subjectteacherList)
&& Objects.equals(timetableList, other.timetableList);
}
}
vii. Subject Period:
package com.eneuron.data.entity;

import java.util.Objects;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import com.eneuron.data.AbstractEntity;
@Entity
@Table(name = "subjectperiod")
public class SubjectPeriod extends AbstractEntity {

@JoinColumn(name = "subjectId", referencedColumnName = "id", nullable = false)


@ManyToOne(optional = false)
private Subject subject;

@JoinColumn(name = "classId", referencedColumnName = "id", nullable = false)


@ManyToOne(optional = false)
private Class classs;

@NotNull
@Column(nullable = false)
private int weigtage;
public Subject getSubject() {
return subject;
}
public void setSubject(Subject subject) {
this.subject = subject;
}
public Class getClasss() {
return classs;
}
public void setClasss(Class classs) {
this.classs = classs;
}
public int getWeigtage() {
return weigtage;
}
public void setWeigtage(int weigtage) {
this.weigtage = weigtage;
}
@Override
public String toString() {
return "SubjectPeriod [subject=" + subject + ", classs=" + classs + ", weigtage=" + weigtage
+ "]";

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

}
@Override
public int hashCode() {
final int prime = 31;
int result = super.hashCode();
result = prime * result + Objects.hash(classs, subject, weigtage);
return result;
}
@Override
public boolean equals(Object obj) {if
(this == obj)
return true;
if (!super.equals(obj))
return false;
if (getClass() != obj.getClass())
return false;
SubjectPeriod other = (SubjectPeriod) obj;
return Objects.equals(classs, other.classs) && Objects.equals(subject, other.subject)
&& weigtage == other.weigtage;
}
}

viii. Teacher:
package com.eneuron.data.entity;

import java.time.LocalDate;
import java.util.Date; import
java.util.List;
import java.util.Objects;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import com.eneuron.data.AbstractEntity;
@Entity
@Table(name = "teacher")
public class Teacher extends AbstractEntity {

@NotEmpty
@NotNull
@Column(nullable = false, length = 50)
private String name;

@NotEmpty
@NotNull
@Column(unique=true, nullable = false, length = 20)
private String shortname;

@Column(nullable = true)
privateteger seniorityno;

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

@Column(nullable = true)
private LocalDate dob;

@Column(nullable = true)
private LocalDate doj;

@Column(nullable = true)
private LocalDate dor;

@Column(length = 100)
private String qualification;

@NotEmpty
@NotNull
@Column(nullable = false, length = 100)
private String address;

@NotEmpty
@NotNull
@Column(length = 12)
private String mobile;

@JoinColumn(name = "designationId", referencedColumnName = "id", nullable = false)


@ManyToOne(optional = false)
private Designation designation;

@OneToMany(mappedBy = "teacher")
private List<SubjectTeacher> subjectteacherList;

@OneToMany(mappedBy = "teacher") private


List<ClassTeacher> classteacherList;

@OneToMany(mappedBy = "teacher")
private List<Allotment> allotmentList;

@OneToMany(mappedBy = "teacher")
private List<TimeTable> timetableList;

public String getName() {


return name;
}
public void setName(String name) {
this.name = name;
}
public String getShortname() {
return shortname;
}
public void setShortname(String shortname) {
this.shortname = shortname;
}
public Integer getSeniorityno() {
return seniorityno;
}
public void setSeniorityno(Integer seniorityno) {
this.seniorityno = seniorityno;

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

}
public LocalDate getDob() {
return dob;
}
public void setDob(LocalDate dob) {
this.dob = dob;
}
public LocalDate getDoj() {
return doj;
}
public void setDoj(LocalDate doj) {
this.doj = doj;
}
public LocalDate getDor() {
return dor;
}
public void setDor(LocalDate dor) {
this.dor = dor;
}
public String getQualification() {
return qualification;
}
public void setQualification(String qualification) {
this.qualification = qualification;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public Designation getDesignation() {
return designation;
}
public void setDesignation(Designation designation) {
this.designation = designation;
}
public List<SubjectTeacher> getSubjectteacherList() {
return subjectteacherList;
}
public void setSubjectteacherList(List<SubjectTeacher> subjectteacherList) {
this.subjectteacherList = subjectteacherList;
}
public List<ClassTeacher> getClassteacherList() {
return classteacherList;
}
public void setClassteacherList(List<ClassTeacher> classteacherList) {
this.classteacherList = classteacherList;
}
public List<Allotment> getAllotmentList() {
return allotmentList;

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

}
public void setAllotmentList(List<Allotment> allotmentList) {
this.allotmentList = allotmentList;
}
public List<TimeTable> getTimetableList() {
return timetableList;
}
public void setTimetableList(List<TimeTable> timetableList) {
this.timetableList = timetableList;
}
@Override
public String toString() {
return "Teacher [name=" + name + ", shortname=" + shortname + ", seniorityno="
+ seniorityno + ", dob="
+ dob + ", doj=" + doj + ", dor=" + dor + ", qualification=" +
qualification + ", address="
+ address + ", mobile=" + mobile + ", designation=" +
designation + ", subjectteacherList="
+ subjectteacherList + ", classteacherList=" + classteacherList +
", allotmentList=" + allotmentList
+ ", timetableList=" + timetableList + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = super.hashCode();
result = prime * result + Objects.hash(address, allotmentList, classteacherList,
designation, dob, doj, dor,
mobile, name, qualification, seniorityno, shortname,
subjectteacherList, timetableList);
return result;
}

@Override
public boolean equals(Object obj) {if
(this == obj)
return true;
if (!super.equals(obj))
return false;
if (getClass() != obj.getClass())
return false;
Teacher other = (Teacher) obj;
return Objects.equals(address, other.address) && Objects.equals(allotmentList,
other.allotmentList)
&& Objects.equals(classteacherList, other.classteacherList) &&
Objects.equals(designation, other.designation) &&
Objects.equals(dob, other.dob)
&& Objects.equals(doj, other.doj) && Objects.equals(dor,
other.dor)
&& Objects.equals(mobile, other.mobile) &&
Objects.equals(name, other.name)
&& Objects.equals(qualification, other.qualification)
&& Objects.equals(seniorityno, other.seniorityno) &&
Objects.equals(shortname, other.shortname)
&& Objects.equals(subjectteacherList, other.subjectteacherList)
&& Objects.equals(timetableList, other.timetableList);
}

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

ix. Class:
package com.eneuron.data.entity;

import java.util.List;
import java.util.Objects;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull; import
com.eneuron.data.AbstractEntity;

@Entity
@Table(name = "class")
public class Class extends AbstractEntity{
@NotEmpty
@NotNull
@Column(nullable = false, length = 20)
private String division;
@JoinColumn(name = "baseclassId", referencedColumnName = "id", nullable = true)
@ManyToOne(optional = true)
private BaseClass baseClass;

@NotEmpty
@NotNull
@Column(nullable = false, length = 20)
private Integer strength;
@OneToMany(mappedBy = "classs")
private List<SubjectTeacher> subjectteacherList;

@OneToMany(mappedBy = "classs") private


List<ClassTeacher> classteacherList;

@OneToMany(mappedBy = "classs")
private List<SubjectPeriod> subjectperiodList;

@OneToMany(mappedBy = "classs")
private List<Allotment> allotmentList;

@OneToMany(mappedBy = "classs")
private List<TimeTable> timetableList;

public String getDivision() {


return division;
}
public void setDivision(String division) {
this.division = division;
}
public BaseClass getBaseClass() {
return baseClass;
}

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

public void setBaseClass(BaseClass baseClass) {


this.baseClass = baseClass;
}
public Integer getStrength() {
return strength;
}
public void setStrength(Integer strength) {
this.strength = strength;
}
public List<SubjectTeacher> getSubjectteacherList() {
return subjectteacherList;
}
public void setSubjectteacherList(List<SubjectTeacher> subjectteacherList) {
this.subjectteacherList = subjectteacherList;
}
public List<ClassTeacher> getClassteacherList() {
return classteacherList;
}
public void setClassteacherList(List<ClassTeacher> classteacherList) {
this.classteacherList = classteacherList;
}
public List<SubjectPeriod> getSubjectperiodList() {
return subjectperiodList;
}
public void setSubjectperiodList(List<SubjectPeriod> subjectperiodList) {
this.subjectperiodList = subjectperiodList;
}
public List<Allotment> getAllotmentList() {
return allotmentList;
}
public void setAllotmentList(List<Allotment> allotmentList) {
this.allotmentList = allotmentList;
}
public List<TimeTable> getTimetableList() {
return timetableList;
}
public void setTimetableList(List<TimeTable> timetableList) {
this.timetableList = timetableList;
}
@Override
public String toString() {
return "Class [division=" + division + ", baseClass=" + baseClass + ", strength=" +
strength
+ ", subjectteacherList=" + subjectteacherList + ", classteacherList=" +
classteacherList
+ ", subjectperiodList=" + subjectperiodList + ", allotmentList=" +
allotmentList + ", timetableList="
+ timetableList + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = super.hashCode();
result = prime * result + Objects.hash(allotmentList, baseClass, classteacherList, division,
strength,
subjectperiodList, subjectteacherList, timetableList);
return result;

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

}
@Override
public boolean equals(Object obj) {if
(this == obj)
return true;
if (!super.equals(obj))
return false;
if (getClass() != obj.getClass())
return false;
Class other = (Class) obj;
return Objects.equals(allotmentList, other.allotmentList) && Objects.equals(baseClass,
other.baseClass)
&& Objects.equals(classteacherList, other.classteacherList) &&
Objects.equals(division, other.division)
&& Objects.equals(strength, other.strength)
&& Objects.equals(subjectperiodList, other.subjectperiodList) &&
Objects.equals(subjectteacherList, other.subjectteacherList)&&
Objects.equals(timetableList, other.timetableList);
}
}

x. Class Teacher:
package com.eneuron.data.entity;

import java.util.Objects;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import com.eneuron.data.AbstractEntity;
import javax.persistence.*;

@Entity
@Table(name = "classteacher")
public class ClassTeacher extends AbstractEntity{

@JoinColumn(name = "classId", referencedColumnName = "id", nullable = true)@ManyToOne(optional


= true)
private Class classs;

@JoinColumn(name = "teacherId", referencedColumnName = "id", nullable = true)


@ManyToOne(optional = true)
private Teacher teacher;

public Class getClasss() {


return classs;
}
public void setClasss(Class classs) {
this.classs = classs;
}
public Teacher getTeacher() {
return teacher;
}
public void setTeacher(Teacher teacher) {
this.teacher = teacher;
}
@Override

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

public int hashCode() {


return Objects.hash(classs);
}
@Override
public boolean equals(Object obj) {if
(this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
ClassTeacher other = (ClassTeacher) obj;
return Objects.equals(classs, other.classs);
}
@Override
public String toString() {
return "ClassTeacher [classs=" + classs + "]";
}
}
xi. User:
package com.eneuron.data.entity;

import com.eneuron.data.AbstractEntity;
import com.eneuron.data.Role;
import com.fasterxml.jackson.annotation.JsonIgnore;
import java.util.Set;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Lob; import
javax.persistence.Table;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

@Entity
@Table(name = "user")
public class User extends AbstractEntity {

@NotEmpty
@NotNull
@Basic(optional = false)
@Column(nullable = false, length = 50)
private String username;

@NotEmpty
@NotNull
@Basic(optional = false)
@Column(nullable = false, length = 50)
private String name;

@JsonIgnore
@NotEmpty
@NotNull
@Basic(optional = false)

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

@Column(nullable = false)
private String hashedPassword;

@ElementCollection(fetch = FetchType.EAGER)
private Set<Role> roles;

@Lob
@Column(nullable = true)
private String profilePictureUrl;

public String getUsername() {


return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getHashedPassword() {
return hashedPassword;
}
public void setHashedPassword(String hashedPassword) {
this.hashedPassword = hashedPassword;
}
public Set<Role> getRoles() {
return roles;
}
public void setRoles(Set<Role> roles) {
this.roles = roles;
}
public String getProfilePictureUrl() {
return profilePictureUrl;
}
public void setProfilePictureUrl(String profilePictureUrl) {
this.profilePictureUrl = profilePictureUrl;
}
}
xii. Allotment:
package com.eneuron.data.entity;

import java.util.List;
import java.util.Objects;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import com.eneuron.data.AbstractEntity;
@Entity

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

@Table(name = "allotment")
public class Allotment extends AbstractEntity {
@NotEmpty
@NotNull
@Column(nullable = false, length = 20)
private String period;

@JoinColumn(name = "classId", referencedColumnName = "id", nullable = true)@ManyToOne(optional


= true)
private Class classs;

@JoinColumn(name = "teacherId", referencedColumnName = "id", nullable = true)


@ManyToOne(optional = true)
private Teacher teacher;

@JoinColumn(name = "subjectId", referencedColumnName = "id", nullable = true)


@ManyToOne(optional = true)
private Subject subject;

@OneToMany(mappedBy = "allotment")
private List<TimeTable> timetableList;
public String getPeriod() {
return period;
}
public void setPeriod(String period) {
this.period = period;
}
public Class getClasss() {
return classs;
}
public void setClasss(Class classs) {
this.classs = classs;
}
public Teacher getTeacher() {
return teacher;
}
public void setTeacher(Teacher teacher) {
this.teacher = teacher;
}
public Subject getSubject() {
return subject;
}
public void setSubject(Subject subject) {
this.subject = subject;
}
public List<TimeTable> getTimetableList() {
return timetableList;
}
public void setTimetableList(List<TimeTable> timetableList) {
this.timetableList = timetableList;
}
@Override
public String toString() {
return "Allotment [period=" + period + ", classs=" + classs + ", timetableList=" +
timetableList + "]";
}
@Override

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

public int hashCode() {


return Objects.hash(classs, period, timetableList);
}
@Override
public boolean equals(Object obj) {if
(this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Allotment other = (Allotment) obj;
return Objects.equals(classs, other.classs) && Objects.equals(period, other.period)
&& Objects.equals(timetableList, other.timetableList);
}
}

xiii. TimeTable:
package com.eneuron.data.entity;
import java.util.Objects;
import javax.persistence.Basic; import
javax.persistence.Column; import
javax.persistence.Entity; import
javax.persistence.JoinColumn; import
javax.persistence.ManyToOne;import
javax.persistence.Table;
import com.eneuron.data.AbstractEntity;
@Entity
@Table(name = "timetable")
public class TimeTable extends AbstractEntity{
@Basic(optional = false)
@Column(nullable = false)
private Integer periodNo;
@JoinColumn(name = "classId", referencedColumnName = "id", nullable = false)
@ManyToOne(optional = false)
private Class classs;

@JoinColumn(name = "dayId", referencedColumnName = "id", nullable = false)@ManyToOne(optional


= false)
private Day day;

@JoinColumn(name = "subjectId", referencedColumnName = "id", nullable = false)


@ManyToOne(optional = false)
private Subject subject;
@JoinColumn(name = "teacherId", referencedColumnName = "id", nullable = false)
@ManyToOne(optional = false)
private Teacher teacher;
@JoinColumn(name = "allotmentId", referencedColumnName = "id")
@ManyToOne
private Allotment allotment;
public Integer getPeriodNo() {
return periodNo;
}
public void setPeriodNo(Integer periodNo) {
this.periodNo = periodNo;
}

Computer Department, MMANTC


Page 18
eTimeTabler Using Genetic Algorithm

public Class getClasss() {


return classs;
}
public void setClasss(Class classs) {
this.classs = classs;
}
public Day getDay() {
return day;
}
public void setDay(Day day) {
this.day = day;
}
public Subject getSubject() {
return subject;
}
public void setSubject(Subject subject) {
this.subject = subject;
}
public Teacher getTeacher() {
return teacher;
}
public void setTeacher(Teacher teacher) {
this.teacher = teacher;
}
public Allotment getAllotment() {
return allotment;
}
public void setAllotment(Allotment allotment) {
this.allotment = allotment;
}
@Override
public String toString() {
return "TimeTable [periodNo=" + periodNo + ", classs=" + classs + ", day=" + day + ",
allotment=" + allotment + "]";
}
@Override
public int hashCode() {
return Objects.hash(allotment, classs, day, periodNo);
}
@Override
public boolean equals(Object obj) {if
(this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
TimeTable other = (TimeTable) obj;
return Objects.equals(allotment, other.allotment) && Objects.equals(classs, other.classs) &&
Objects.equals(day, other.day) && Objects.equals(periodNo,
other.periodNo);
}

Computer Department, MMANTC


Page 18

You might also like