Professional Documents
Culture Documents
A Project Report on
1
Directorate of Distance Education
Swami Vivekanand Subharti University
Certificate
This is to Certify that AJIT KUMAR PANIGRAHI has carried out the
Project work presented in this entitled “AUTOMATIC TIME TABLE
GENERATION SYSTEM” under my supervision and merits the award of
Master in Business Administration from Swami Vivekanand Subharti
University. The Project embodies result of original work and studies carried out
by Student himself/herself and the contents of the Project do not form the basis
for the award of any other degree to the candidate or to anyone else.
2
ACKNOWLEDGEMENTS
The satisfaction that accompanies that the successful completion of any task would be
incomplete without the mention of people whose ceaseless cooperation made it possible,
whose constant guidance and encouragement crown all efforts with success. First and
foremost we wish to thank our project guide Mr. Amit Nayyer whose advice support and
patience this major project had not been possible.
We want to formally acknowledge our sincerest gratitude to all those who assisted and guided
us in completing this minor project report and making it a memorable and successful
experience.
Words defeat us in expressing our deep sense of gratitude for our group mates, whose
continual support and guidance enabled us all the challenges posed by this project, who
provided us all the relevant information and the necessary Hardware, Software, and new
ideas that really helped us a lot. Special thanks are due to all the other friends for all the
encouragement, inspiration and motivation. Finally, we also thank parents who were constant
source of encouragement.
iv
TABLE OF CONTENTS
Title Page No
CERTIFICATE……………………………………………………….. i
STUDENT’S DECLARATION…………………………………….... ii
ABSTRACT…………………………………………………………... iii
ACKNOWLEDGEMENTS…………………………………………... iv
CHAPTER 1 INTRODUCTION TO THE PORJECT 1-9
1.1Introduction…………………………………………………...
1.2 Motivation ………………………………………………….
1.3 Problemdefinition…………………………………………...
1.4 Methodology… …………………………………………….
1.5Feasibility Study…………………………………………….
1.1 INTRODUCTION
Automatic Timetable Generator is a Java based software used to generate timetable
automatically. Currently timetable is managed manually. It will help to manage all the
periods automatically and also will be helpful for faculty to get timetable in their phone
by using application. It will also manage timetable when any teacher is absent , late coming
or early going. Maximum and minimum work load for a Faculty for a day, week and month
will be specified for the efficient generation of timetable.
By using this software users can apply for leave by providing leave required date, reason and
also with substitute faculty. When selecting a faculty as substitute it allows to view
timetable of that faculty for ensure that the faculty is free at that particular period.
Substitute can approve or reject request. Principal can also view the request send by faculty
and can also view substitute response.
help to overcome the challenges in mannually setting the timetable. By using this
software it will be very easy for faculty to get timetable in their phones
1
Existing and Proposed system
Normally timetable generation done manually. As we know all institutions/organizations
have its own timetable, managing and maintaining these wiil not be difficult. Considering
workload with this scheduling will make it more complex. As mentioned , when Timetable
generation is being done, it should consider the maximum and minimum workload that is in
a college. In those cases timetable generation will become more complex. Also , it is a time
consuming process.
When selecting a faculty as substitute it allows to view timetable of that faculty for ensure
that the faculty is free at that particular period. Substitute can approve or reject request.
Principal can also view the request send by faculty and can also view substitute response.
Principal can approve / reject request. It is a comprehensive timetable management
solutions for Colleges which helps to overcome the challenges in current system.
2
Salient features of the system
Automatic Timetable manger is a Java based software used to generate timetable
automatically.
Will help you to manage all the periods automatically and also will be helpfull for
faculty who will get timetable in their phone as a
notification.
It will also manage timetable when any teacher is absent late coming or
early going.
Proposed system will help to generate it automatically also helps save the
time .
Institution automatically.
any of the faculty is absent, and this is the big challenge for Automatic Timetable
Generator that managing the timetable automatically when any of the faculty is
absent.
managing and maintaining these wiil not be difficult. Considering workload with
1.2 Motivation
The motivation to devlop this time table generation system came from the fact that lecture
Timetable scheduling is still mostly done manually due to its inherent difficulties.
Universities,Collage,high school and other academic institutions are supposed to make time
tables for each semester or term.
Manually creating timetables is a very boring, tedious and a pain staking job. Hence the
project’s idea to computerize this hectic process.
=> Allocation of periods to classes and instructors is completely mechanized and does not
restrict the user any processing.
=> A compatible and accurate timetable is guaranteed and the system is therefore well
organized and reliable.
5
1.3Problem Definition
Planning timetable is one of the most complex and error prone application. There are still
serious problems like generation of high cost time table are occurring while scheduling and
these problems are repeating frequently also the difficulty faced during timetabling can be
represented as a constraint satisfaction problem with loose parameters and many
constraints. In the manual lecture timetabling, one of the major problems is dealing with
clashes and finding clash free slots. Making a change requires that one has to undo previous
lecture allocation and look for a new allocations. This creates a series of backtracks which
are difficult to resolve. To overcome these problems, the university system needs an
automated and feasible timetable generator that satisfies all hard constraints conditions
and as much as soft constraints highlighted. For example, the same faculty member
teaching two courses cannot be assigned the same time slot. On the other hand, two
different courses to be attended by the same group of students also should not clash.
Therefore there is a great requirement for an application distributing the course evenly and
without collisions. Automated timetabling, on the other hand, is a great task that saves a lot
of man-hours work and provides optimal solutions with constraint satisfaction within
minutes. The aim is here to develop a simple, easily understandable, efficient and portable
application which could automatically generate good quality time table with in a second.
6
1.4 METHODOLOGY
structure of time table generator consist Input Date Module, relation between the input
data module, time interval, time slots module. On the basis of these modules the automatic
timetable generator system is generated.
A. Input Data The input data module is described by a type of data from the database.
The data contains:
B. • Person: Data describe the name of lecturers.
C. • Subject: Data describe the name of the subjects belonging to desired year and
semesters.
D. • Room: Data describe the name of the classes.
E. • Time Interval: It is a time slot with a starting time and duration.
1) Validity violation constraints: There are the constraints which are needed to be
incorporated necessarily otherwise there is no guarantee of valid time tables generated.
They are included as a part of initial generation of population, as they cannot be violated.
• There are certain lectures that may or may not appear at the same time in more than
one class.
• The most trivial violation constraint is that a teacher must not clash in two different tables
of a time table.
Strong constraints
1. More than one lecture cannot be allotted to a classroom at the same time.
3. Courses for the same year-session students of a department should occupy different time
slots.
5. The classrooms should be effectively provided with necessary amenities for the classes.
Weak constraints
1. The lectures are not allotted to time slots which come under the lecturer’s prohibited
time zones.
2. The teaching hours on an instructor should be limited within the allowed maximum
hours.
3. The classes should be scheduled in accordance with the lecturer’s favoured time zones.
5. The classes must not be scheduled late at nights, if possible. 6. The theory courses are
scheduled on Monday and Tuesday, and the practical courses are scheduled on Wednesday,
Thursday, and Friday.
8
1.5 Feasibility Study
A feasibility study was an evaluation of a proposal designed to determine the difficulty in
carrying osut a designated task. Generally, a feasibility study precedes technical
development and project implementation. 3.2.1 Economic Feasibility
To develop the proposed system, it needs no extra facilities and devices. All dependencies
are satisfied from the open source projects. All tools used are free, open source and the
programming language is JSP and hence its development is economically . 3.2.2 Technical
Feasibility
Proposed system is technically feasible because the proposed system requires only those
H/W and S/W tools that are available in the system. It requires the installation of JSP and
MYSQL which can be done for free. More over expandability will be maintained in the new
system. New modules can be added later on the application, if required in the future.
Additionally the application will have Userfriendly Forms and Screens.
Behavioral Feasibility
Behavioral feasibility determines how much effort will go in the proposed information
system, and in educating and training the users on the new system. Since the user interface
is very simple and easily understandable , no training is required for using this software. 3.3
Methodology The establishment and use of sound engineering principles in order to obtain
economically developed software that is reliable and works efficiently on real machines is
called software engineering. Software engineering is the discipline whose aim is:
Software process is the way in which we produce the software. Apart from hiring smart,
knowledgeable engineers and buying the latest development tools, effective software
development process is also needed, so that engineers can systematically use the best
technical and managerial practices to successfully complete their projects. A software life
cycle is the series of identifiable stages that a software product undergoes during its lifetime
.A software lifecycle model is a descriptive and diagrammatic representation of the software
life cycle .
9
CHAPTER 2 PROJECT REQUIREMENTS ANALYSIS AND
SPECIFICAITON
2.1 INTRODUCTION:
Project Requirement Analysis and Specification is the starting point of the webpage
development. Before designing this desktop application, it is very important to define precise
requirements of the Automatic time table generation system which specify the software
function and performance indicate software interface with other system elements, and set up
constraints that software meet and Requirement Specification is produced at the end of the
analysis work.
The aim of the requirements analysis and specification phase is to understand the
exact requirements of the customer and to document them properly. This phase
consists of two distinct activities, namely requirements gathering and analysis, and
requirement specification
The goal of the requirements gathering activity is to collect all relevant information
from the customer regarding the product to be developed. This is done to clearly
understand the customer requirements so that incompletes and inconsistencies are
removed.
The requirements analysis activity is begun by collecting all relevant data regarding
the product to be developed from the users of the product and from the customer
through interviews and discussions.
The data collected from such a group of users usually contain several contradictions
and ambiguities, since each user typically has only a partial and incomplete view of
the system. Therefore it is necessary to identify all ambiguities and contradictions in
the requirements and resolve them through further discussions with the customer
10
2.2 FUNDAMENTAL REQUIREMENTS:
System Requirements
(a)Hardware Requirements:
One must know that what the problem is before it can be solved. The first step of system
analysis involves the identification of need. The analysis meets with customer and end user.
Hardware and Software analysis are very important before the development of any project.
So hardware use our project are:
3. RAM 2GB
(b)Software Requirements:
2. Database MySQL
3. IDE ECLIPSE
11
SOFTWARE AND HARDWARE REQUIREMENTS
Software Specification
➢ Database : MySQL
Hardware Specification
➢ Hardware : Pentium
➢ Speed : 2 Ghz
➢ RAM : 2GB
➢ Hard Disk : 80 GB
2.3 REQUIREMENTS ELICITATION
approach, second is indirect approach. First one classifies the method by whom we interact
with the domain expert and second There are different ways to get the required information
and approach problem. One is direct one classifies them by what type of information is
obtained.
Requirement Sources
The source for requirements of this project is basically internet. I searched on the internet that
what are basic requirements for this project and hence requirements are specified and
selected.
Elicitation Techniques
The information about requirement for this project is gather from internet and some person
with knowledge about the JAVA language. Other methods used:
Direct Approach:
In direct approach the purpose is to enhance the understanding of the problems of system that
is currently is used. Most common techniques used are Interviews, case study, Prototyping.
With these tool a comprehensive analysis of total procedure can been done. In this loom it is
good to get the more knowledge about system and genuine data. In order for these method to
be victories, the domain expert has to be reasonably coherent and willing to share
information.
Indirect Approach:
Indirect methods are used in order to obtain information that cannot be easily articulated
directly. Questioners, documents analysis are its examples. Important thing in this approach
is, how thing are clarify by using figures and statistics. In it a large quantity of data can be
gathering from analyzing the documents. Some of the selected elicitation techniques which
are used in this research are as follows, List of these techniques is given below:
Document Analysis:
Document analysis involves gathering information from existing documentation. It may or
may not involve interaction with a human expert to confirm or add to this information. This is
indirect method and varies depending on available documents, interaction with experts.
Observation:
In observation methods, the knowledge engineer observes the experts performing a task. This
prevents the knowledge engineer from inadvertently interfering in the process.
13
2.4 REQUIREMENTS ANALYSIS
One must know that what the problem before it can be solved. The basic for Automatic time
table generation system is that it must be easy to use by the user. The first step of requirement
analysis involves identification of need.
Requirements Classification:
Hardware interfaces:
Screen resolution of a least 800X600 is required for proper and complete viewing of
screens.
Higher resolution will be accepted.
Database to store the data.
Software interface:
Any windows based operating system.
MySQL for database.
JAVAfor developing code.
14
This software requirement specification provide a complete description of all the features of
the Automatic time table generation system. It emphasizes on the essential specification data
to be kept in mind while designing and implementing the page.
User module:
The user can first open the application and enter all the fields and after that data store in the
database.
CHAPTER3: PROJECT DESIGN
3.1 INTRODUCTION:
In order to deal with the timetabling issue, we are putting forward a system which would
mechanically generate timetable for the different courses of the institute. Courses and
lectures will be scheduled in accordance with all the possible constraints and the given
inputs and thus, a timetable will be generated. The system will allow interaction between
the staff and students and at the same time enable them to upload their queries, notes,
presentations and e-books. Two distinctly different approaches are available: the traditional
design approach and the abject oriented design approach.
Traditional design consists of two different activities; first structured analysis of the
requirements specification is carried out where the detailed structure of the problem is
examined. This is followed by a structured design activity. During structured design, the
results of structure analysis are transformed into the software design.
In this technique, various objects that occur in the problem domain and the solution domain
are first identified, and the different relationships that exist among these objects are
identified. The object structure is further refined to obtain the detailed design.
3.2 Preliminary Design:
It is the first phase of the design process. It is also known as conceptual design or
architectural design. During this phase the high level design concept is created, which will
implement the complex electronic requirement. The objective of design phase is to create a
design that will correctively and completely implement the requirement. The main design
activities for the preliminary design phase are:
SOFTWARE DESIGN
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.
Admin
18
3.3 Detailed design
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 addition 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. The logical view is what the data look
like, regardless of how they are stored. The physical view is the way data exist in physical
storage. Tables are carefully designed aiming to achieve its main objectives is, to make
information access easy, quick, inexpensive and flexible for user.
PROJECT DESIGN
Our Timetabling Algorithm is main component of our project which produces JAVA based
timetable even / odd semester sheet as the output.
Our project takes various inputs from the user such as Teacher List, Course List, Semester
List, Room List, Day List and Timeslot as well as various rules, facts and constraints using
web based forms, which are stored in XML based knowledge base.
This knowledge base serves as input to our Timetable Generator Algorithm residing on
server machine. Our knowledgebase is in the middle, because it is between our timetabling
algorithm and GUI front end which is designed in the last. After the representation of GPWK
is standardized, we designed the timetabling algorithm.
The design of timetabling algorithm took most of our total time. During design of algorithm,
first problem was, from where to start? Second problem was, does it really going to work?
But after all due to our superior design of knowledgebase, flowcharts and enough thinking
on timetabling data structure representation helped us to really boosted building our fine
working algorithm.
19
The proposed system is a website, which allows the student a good user interface also it
provides a good user interface to admin & faculties, and they can easily get the required
information. The web site provides a variety of facilities to students, admin and faculties. The
main modules of the proposed system are Administrator, faculties & students.
The security feature is very strong therefore record can be only updated by Admin & related
faculty to that subject. The home page contains three categories of user. By clicking on any of
them the related login screen will come. Password screen includes the username and
password. On being entered, the password is evaluated and the entry is given only to the
correct password entry.
There are one types of login, administrator login which will make the time table and do all
the changes i.e., add or delete the rooms , add or delete the teachers etc.
20
The proposed system is used to generate time table automatically. This ensures the following
features
• Easier slot assigning
• Less time consumption
• NO slot clashes
• Always considers the other department slots first
• Various possible slot combinations can be acquired
• User friendly
day. In worst case only one faculty may have 3 lectures in day.
21
CHAPTER 4 PROJECT IMPLEMENTATION
4.1 INTRODUCTION:
PlANNING:
The amount of surplus funds the corporative has available, the experience of its
employees, and the influence of local computer hardware suppliers will have an
impact on project size and time frame. One major cause of computerization project
failure is the tendency to start on too large a scale.
22
4.2 Managing Implementation
JAVA
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 languages that can be characterized by all the
following:
➢ Simple
➢ Object-Oriented
➢ Distributed
➢ Multi-threaded
➢ Dynamic
➢ Portable
➢ Architecture Neutral
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 Javac compiler. A.
class file does not contain code that is native to your processer: it instead contain byte
codes- the machine language of Java Virtual
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.
23
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 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.
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
commandlines 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.
Install MySQL
1 Install the MySQL database server on your PC. We will do this using the 'MSI' one-
click installer for Windows. Go to http://dev.mysql.com/downloads/ and download
the 'MySQL Installer for Windows'. At the time of writing this was from a very
obvious graphic at the top of the screen .
2 Run the installation. Click...
25
Eclipse
The initial codebase originated from IBM VisualAge. The Eclipse software development kit
(SDK), which includes the Java development tools, is meant for Java developers. Users can
extend its abilities by installing plug-ins written for the Eclipse Platform, such as
development toolkits for other programming languages, and can write and contribute their
own plug-in modules. Since the introduction of the OSGi implementation (Equinox) in
version 3 of Eclipse, plug-ins can be plugged-stopped dynamically and are termed (OSGI)
bundles
Eclipse software development kit (SDK) is free and open-source software, released under
the terms of the Eclipse Public License, although it is incompatible with the GNU General
Public License. It was one of the first IDEs to run under GNU Classpath and it runs without
problems under IcedTea.
26
Eclipse: (Oxygen)
The Eclipse download requires about 300 MB of disk space; keep it on your machine, in case
you need to re-install Eclipse. When installed, Eclipse requires an additional 330 MB of disk
space.
Downloading
Eclipse is hosted on many mirrors around the world. Please select the one closest to you and
start to download the Installer
For Windows users, after the Eclipse Installer executable has finished downloading it should
be available in your download directory. Start the Eclipse Installer executable. You may get a
security warning to run this file. If the Eclipse Foundation is the Publisher, you are good to
select Run.
For Mac and Linux users, you will still need to unzip the download to create the Installer.
Start the Installer once it is available.
27
3. Select the package to install
The new Eclipse Installer shows the packages available to Eclipse users. You can search for
the package you want to install or scroll through the list.
28
4. Select your installation folder
Specify the folder where you want Eclipse to be installed. The default folder will be in your
User directory.
29
5. Launch Eclipse
Once the installation is complete you can now launch Eclipse. The Eclipse Installer has done
it's work.
4.3 Practical Considerations
OUTPUT SCREEN
Select Semester
38
5.1 INTRODUCTION:
Testing is an activity performed for evaluating product quality, and for improving
it, by identifying defects and problems.
It is a process use to help identify the correctness, completeness and quality of
developed computer software.
It is not a distinct phase in system development but should be applicable
throughout the all phases i.e. design, development and maintenance.
Testing time and resources should be limited i.e. avoid redundant testing.
It is impossible to test everything.
Test should be planned long before testing begins i.e. after requirement phase.
Test for invalid and unexpected input conditions as well as valid conditions.
Testing should begin in “in the small” and progress towards testing “in the large”.
For the most effective testing should be conducted by an independent party.
Documents test cases and test results.
Examining what the software not doing which is expected to do and also
checking.
41
TESTING
Software validation is achieved through a series of tests that demonstrate conformity with
requirements. Validation succeeds when software functions in a manner that can be
reasonably expected by the customer. Here line by line checking is used to find errors.
Comment line facility is used for checking errors. Testing is necessary for the success of the
system. During testing, program to be tested is executed with a set of test data and the
output of the program for test data is evaluated to determine if the programs are
performing as expected. Validation means checking the quality of software in both
simulated and live environments. System validation ensures that the user can in fact match
his/her claims, especially system performance. True validation is verified by having each
system tested. First the application goes through a phase often referred as alpha testing in
which the errors and failures based on simulated user requirements are verified and
studied. The modified software is then subjected to phase two called beta testing in the
actual user’s site or live environment. After a scheduled time, failures and errors are
documented for final correction and enhancements are made before the package is
released.
Testing objectives are :
• A good test case is one that has a high probability of finding an as-yet- undiscovered
error .
Test Types
1.Unit testing
2.Integration testing
3.System testing
4.Acceptance testing
42
Unit Testing:
Unit testing focuses verification effort on the smallest unit software design the
module.
It is basically done by the developers to make sure that their code is working fine and
meet the user specification.
They test their piece of code which they have written like classes, functions,
interfaces and procedures.
Integration Testing:
It is done when two modules are integrated, in order to test the behaviour and
functionality of both the modules after integration.
In integration testing the two programs are integrated and then testing is done by the
run the programs.
Below are few types of integration testing:
Top down
Bottom up
Functional incremental
System Testing:
In system testing the testers basically test the compatibility of the application with the
system.
System testing for this subject is done by run the program and then check that whether
it works properly or not to run the program command prompt is used and then
program is run by the user.
Acceptance Testing:-
It is basically done to ensure that the requirements of the specifications are met.
Here all the requirements of specification are met because all functions are working
properly according to need.
43
There are different methods that can be used for software testing.
Black-Box Testing:-
The techniques of testing without having any knowledge of the interior workings of the
applications Is called black-box testing. The tester is oblivious to the system architecture and
does not have access to the source code. Typically, while performing a black-box test a tester
will interact with the system’s user interface by providing inputs and examining outputs
without knowing how and where the inputs are worked upon.This testing is done by simply
running the source code program and observing that it shows the output. Means that no error
in running the source code.
White-Box Testing:
It is the detailed investigation of internal logic and structure of the code. White-box testing is
also called glass testing or open box testing.In order to perform white-box testing on an
application a tester needs to know the internal workings of the code. The tester needs to have
a look inside the source code and find out which unit/chunk of the code is behaving
inappropriately.The testing is done by running the source code program and then checking
every function of the project. If some function does not works properly then the source code
is checked for correct this.
44
REFERENCES / BIBILIOGRAPHY
The following books were very helpful during the completion of project:
Software Engineering
-Roger S.Pressman.
Web Enabeled Commercial Application Development.
-Ivan Bayross.
Following websites that are very useful for the completion of project:
WWW.wikipedia.com
WWW.w3school.com
WWW.tutorialspoint.com
44
CONCLUSION
The application will make the procedure of time table generation easier consistently which
may otherwise need to be done using spread sheet manually which might lead to
constraints problem that are strenuous to establish when time table is generated physically.
The purpose of the algorithm is to generate a timetable schedule mechanically. The
algorithm includes many techniques, aimed at improving the efficiency of the search
operation. It also addresses the chief hard constraints .
45