Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
PROJECT REPORT ON
SUBMITTED BY
ANANDH T S
ALBIN P S
NESTO JHOSEPH
JOEL V JOY
CERTIFICATE
This is to certify that the project report entitled “AUTOMATIC TIME TABLE
GENERATER” is a bonafide project report on the projectpresented byMr. Anandh t s , Mr.Albin
p s,Mr nesto josephand Ms.joel v joyof fifth Semester BSc computer science for the partial
fulfilment of the requirements for the award of the Bachelors Degree in Electronics from Mahatma
Gandhi University, Kottayam.
ACKNOWLEDGEMENT
First and foremost we give all glory, honour and praise to God Almighty who enabled me to
complete this project successfully.
We would like to acknowledge to Mrs. Jaya Gokila P , for her kind patronage in allowing me
to carry out this project.
We express my sincere gratitude towards Mrs Arya M Nair, the project guide for providing
great support and encouragement for the successful completion of the project
We would like to thank Mrfor his valuable support and encouragement throughout this work.
We would like to thank ourPARENTS, for giving the financial aid and all support from their
side.
Last but not the least, Wecovey our sincere gratitude to all those who have contributed the
successful accomplishment of our project.
By,
ANANDH T S
ALBIN P S
NESTO JOSEPH
JOEL V JOY
TABLE OF CONTENTS
1. Introduction
1.1 . project overview
1.2 . project objective
1.3 . problem definition
2. System analysis
2.1 . purpose
2.2 . existing and proposed system
2.3 . limitations
2.4 . feasibility
2.5 . fact finding techniques
3. System requirements specification
3.1 . purpose, scope and overview
3.2 .general description
3.3 . functional requirements
3.4 . user interface requirements
3.5 . performance requirements
4. System environment
4.1 . hardware and software specification
5. table design
5.1 . normalization
5.2 . E R diagram
5.3 . Data structure
6. Data flow diagram
7. Source code
8. System testing
9. Screen shots
10. Conclusion
1. INTRODUCTION
1.1 . PROJECT OVERVIEW
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. Princiapl can also view the request send by faculty and can also view substitute response.
It is a comprehensive timetable management solutions for Colleges which help to overcome the
challenges in mannually setting the timetable. By using this software it will be very easy for faculty to
Avoid the complexity of setting and managing Timetable manually. Itwill help you to
manage all the periods automatically. Faculty can recieve theirperiods information in their
phone . Initially we will be setting the maximumworkloads for a Faculty in a day, week and
month. Main challenge is to managetimetable when any Faculty is absent. By using this
2. SYSTEM ANALYSIS
2.1 PURPOSE
Analysis can be defined as breaking up of any whole so as to find out their nature, function etc.
pattern outline for plan. To plan and carry out especially by artistic arrangement or
in a skilful way. System analysis and design can be characterized as a set of techniques and
Understanding application
Planning
Scheduling
Selling of system
Supervising, installing and maintaining the system
System analysis involves the study of an application area to fully understand the
of the existing system , its strengths and weaknesses and the reasons for the need to
restructure, replace, or automate the existing system. Risk assessments and risk
containment plan ,cost estimation and plans for the remainder of the development are
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
automatically. Will help you to manage all the periods automatically and also will be helpful 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 to save time . There is no need for Faculty to worry about their period details and maximum
workload. 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. Princiapl 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
2.3 LIMITATION
A feasibility study was an evaluation of a proposal designed to determine the difficulty in carrying out
a designated task. Generally, a feasibility study precedes technical development and project
implementation.
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
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 overexpandability will be maintained in the new
system. New modules can be added later on the application, if required in the future.
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
The project team studied about the running system and discussed it with the concerned authorities
and there by evolved a system that is feasible in every respect. The group accomplished these task
by studying about the present scenario through various fact finding techniques that made it more
clearly about the system to be developed. These technique include interview being accomplished
between the authorities that made the authority to clearly specify the system that they propose to
develop. The feature that must be included has been clearly specified at this stage. Also the
observation of present running technique were observed there by the limitations of the existing
PURPOSE
There are still serious problems like generation of high costtime tables are
scope
Timetable Generator, our software allows users to generate time table fornewly occurring
changes in less time, with less effort and with moreefficiency.It will allow users to work on
and view time tables in different platformsand view different information simultaneously.
Overview
Timetable Generator, our software allows users to generate time table fornewly occurring
It will allow users to work on and view time tables in different platformsand view different
information simultaneously.
Time table management system is a project which is developed to provide better support for
lecturers and students in a college. This Time Table Management System provides a function
to view timetable for the specific lecturer and the master timetable for that semester. Lecturer
can inquire about classes availability and can book for the free classes. Students can view
their functionality like adding and dropping subjects. Students can view and get the
registration slip from the system. Timetable management system also contains a database,
Functional requirement are statement of services the system should provide, how the system
should react to particular inputs and how the system should behave in particular situation.
User details
Time table details in in each period
The system should be designed in such a way that only authorized people should be allowed
to access some particular modules. The record should be modified by only administrator and
no one else the user should always be in control of the application and not the vice versa .
the user interface should be consistent so that the user can handle the application with ease
The system is developed keeping in mind both use and the administrator
All the user requests are to be processed instantaneously and thus enabling the results
to be
delivered on time
The entire process related tools has to be automated thus providing the user with
4 . SYSTEM ENVIROMENT
➢ Technology : JSP/SERVLET
➢ Compiler : JDK
➢ Database : MySQL
Hardware Specification
➢ Hardware : Pentium
➢ Speed : 2 Ghz
➢ RAM : 2GB
➢ Hard Disk : 80 GB
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
NetBeans IDE provides first-class comprehensive support for the newest Java technologies
and latest Java enhancements before other IDEs. With its constantly improving Java Editor,
many rich features and an extensive range of tools, templates and samples, NetBeans IDE sets
the standard for developing with cutting edge technologies out of the box
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
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
MySQL
MySQL is the world's most used open source Relational Database Management
databases. It is named after co-founder Michael Widenius' daughter, My. The SQL phrase
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
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
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
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
5. TABLE DESIGN
5.1 . NORMALIZATION
Normalization is the process of analyzing the given relation schemas based on their Functional
• To structure the data so that perfect relationship between entries can be represented.
• To reduce the need to restructure or reorganize data when new application requirement arises.
A table is in 1NF if there are no duplicate rows in the table. Each cell is single valued.
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.”
Third Normal Form is based on the concept of transitive dependency. A table (relation)
5.2 . E R DIAGRAM
Course Table:
Faculty_hour:
Facleave:
Fac_Sub:
1 id int NotNull
Semester:
Serial No: Column Name Datatype Constraints
Faculty:
Subject:
Timetable:
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 that a system performance of DFD model
Function Symbol
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
A directed arc or an arrow is used as a Data Flow Symbol. This represents the data flow
direction of the Data Flow Arrow. Data Flow symbols are annotated with
A Data Store represents a logical file; it is represented using two parallel lines. A
logical file can represent either Data Store Symbol, which can represent either
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 labeled in block letters. Each data flow is labeled for
easy understanding.
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 labeled 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.
Level-1 DFD
To develop the LEVEL-1 DFD, examine the high level functional requirements. It is between three
to seven high-level functional requirements then these can be directly represented as bubbles as in
the LEVEL-1 DFD. We can examine the input data to these functions and the data output by these
These aspects of the high-level functions are then represented in a diagrammatic form. This forms
The high-level functions described in the SRS Documents, and then each of the high-level functions
can be represented in form of a bubble. Each high-level function is decomposed into constituent sub
Step three is repeated recursively for each sub function until a simple algorithm can represent a
sub function
7. SOURCE CODE
Apply Leave
package autotimetable;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class signup extends HttpServlet {
DB d=new DB();
String uname=request.getParameter("name");
String pass1=request.getParameter("pass1");
String pass2=request.getParameter("pass2");
String fname=request.getParameter("fn");
String lname=request.getParameter("ln");
String addr=request.getParameter("addr");
String contactno=request.getParameter("cn");
String dob=request.getParameter("dob");
String doj=request.getParameter("doj");
String qualific=request.getParameter("qu");
IHRD college of applied science kanjirappally
27
String email=request.getParameter("email");
String maddr=request.getParameter("maddr");
String course=request.getParameter("course");
String
subjectlist[]=request.getParameterValues("subjectslist");
String slist="";
for(int i=0;i<subjectlist.length;i++){
/ System.err.println("subjectlist :"+subjectlist[i]);
slist=slist+subjectlist[i]+",";
}
ArrayList<String> a=new
ArrayList<String>(); a.add(uname);
a.add(pass1);
a.add(pass2);
a.add(fname);
a.add(lname);
a.add(addr);
a.add(contactno);
a.add(dob);
a.add(doj);
a.add(qualific);
a.add(email);
a.add(maddr);
a.add(course);
a.add(slist);
d.addTeacher(a);
path="index.jsp?
success"; } finally {
}
IHRD college of applied science kanjirappally
28
response.sendRedirect(path);
}
}
public String getServletInfo() {
return "Short description";
}
Substitute request
<%@page import="java.sql.ResultSet"%>
out.print("<th>");
out.print("</th>");
out.print("<th>");
out.print("</th>");
out.print("<th>");
out.print("Requested By</th>");
out.print("<th>");
out.print("Requested For</th>");
out.print("<th>");
while(r.next()){
out.print("<tr>");
out.print("<td>");
out.print("<div style='padding: 10px 10px 10px 10px;
background-color:green'><a
href='user/leaveAction.jsp?id="+session.getAttribute("id")
+"&date="+r.getString(2)+"&action=approved' style='text-
decoration:none;color:white'>Approve</a></div>");
out.print("</td>");
out.print("<td>");
out.print("<div style='padding: 10px 10px 10px 10px;
background-color:Red'><a
href='user/leaveAction.jsp?id="+session.getAttribute("id")
+"&date="+r.getString(2)+"&action=Rejected' style='text-
decoration:none;color:white'>Reject</a></div>");
out.print("</td>");
8 . SYSTEM TESTING
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
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
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
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.
In a software development project, errors can be injected at any stage during development.
Even if error detecting and eliminating techniques were employed in the previous analysis and
design phases, errors are likely to remain undetected. Unfortunately, these errors will be
reflected in the code. Since code is frequently the only product that can be executed and whose
actual behavior can be observed, testing is the phase where the errors remaining from
the earlier phases must be detected in addition to detecting the errors introduced
Having proper test cases is central to successful testing. We would like to determine a set of test
cases such that successful execution of all of them implies that there are no errors in the
program. Therefore, our project crew aimed at selecting the test cases such that the maximum
possible numbers of errors are detected by the minimum number of test cases.
For this we have adopted both manual testing techniques and automated testing techniques.
First and foremost, testing was done by means of Inspection, where participants manually
examine system deliverables for occurrences of well-known errors. Inspection team consists
of 5 members who are trained for their tasks. Items for inspection include completeness of
the design, and functional requirements, internal completeness and consistency in definition
and usage of terminology, and correctness of the interfaces between modules. Syntax,
grammar, and some other routine errors were checked by automated inspection software, so
manual inspection checks are used for more subtle errors. And we have done the testing
an error .
• 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
Unit testing
In unit testing different modules are tested against the specifications produced
during design phase for the modules in the project and the goal is to test the internal
In order to perform the unit testing, the best approach we adopted in this project is functional
testing in which inputs are given to the system for which the expected results are known,
boundary values and special values. For this the module selected was advance details where
the balance amount falls to negative indicating there is no more payment required. Secondly
performance testing was done to determine the amount of execution time spent in various
aspects like the module, program throughput, response time, and the device utilization by the
program unit.
Integration testing
The primary goal of the integration testing is to see if the modules can be integrated
properly. The integration testing is therefore considered as testing the design. Thus in
the integration testing step, all the errors uncovered are corrected for the next testing
steps.
System testing
System testing is similar to integration testing, but instead of integrating modules into
programs for testing, programs are integrated into systems for testing the interfaces
between programs in a system. System testing can be defined in many ways, but a
simple definition is that validation succeeds when the software functions in a manner
Acceptance testing
Once the system tests have been satisfactory completed, the system is ready for
acceptance testing. Acceptance testing is the process whereby actual users test a
used, the end result of which is the user’s acceptance or rejection. The admin and
to each other. These functionalities are added separately and tested after the
implementation of each.
The distributed nature of client/server systems pose a set of unique problems while
Many different types of tests are conducted at each of this level of detail the following tests
are conducted.
The functionality of client applications is tested using the methods discussed below.
➔ Server tests
The coordination and data management functions of the server are tested.
➔ Database tests
The accuracy and integrity of data stored by the server is tested. Transactions posted
by client applications are examined to ensure that data are properly stored, updated
These tests verify that communication among the nodes of the network occur are correct and that
message passing, transactions and related network traffic occurs without error. Network tests are also
being conducted. The strategy for testing c/s architecture is analogous to testing of other architecture.
Test Cases
No:
of Admin
of Faculty
of Principal
Password
me, y
address,conta
ct,dob,doj,
qualification,
e-
mail,macaddr
, course
9. SCREEN SHOTS
10. CONCLUSION
automatically. It is a great difficult task that to manage many Faculty's and allocating subjects for
them at a time manually. So proposed system will help to overcome this disadvantage. Thus we can
generate timetable for any number of courses and multiple semesters. This system will help to create
dynamic pages so that for implementing such an system we can make use of the different tools are
The Automatic Timetable Generator is driven portal for educational organization and is a web
based application which will be helpful for creating Timetabels . This project will be a great
helpful for the institiutions because, It is a great difficult task that to manage many Faculty's
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
REFERENCES / BIBILIOGRAPHY
BOOKS
WEBSITES
http://en.wikipedia.org/wiki/MySQL
http://edutechwiki.unige.ch/en/Educational_technology
http://www.wpi.edu/Images/Tutorial_JSP
http://en.wikipedia.org/wiki/JSP
APENDICES
The purpose of system implementation can be summarized as follows: making the new system
maintenance of the system within the performing organization. At a finer level, deploying the
system consists of executing all steps necessary to educate the consumers on the use of the
new system, placing the newly developed system into production, confirming that all data
required at the start of the operation are available and accurate, and validating that, the
Installation Manual
NetBeans Installation
The Java SE Development Kit (JDK) 6 Update 26 or later is required to install the
NetBeans IDE. The 7.2.1 version of the IDE cannot be installed using JDK 5.0. You can
On the NetBeans IDE Download pages, you can obtain one of several installers, each of
● Java SE. Supports all standard Java SE development features as well assupport for
➢ Java EE. Provides tools for developing Java SE and Java EE applicationsas well as support
for NetBeans Platform development and JavaFX 2.1.1 SDK. This download option also
includes GlassFish Server Open Source Edition 3.1.2.2, and Apache Tomcat 7.0.27
software.
a. For Windows, the installer executable file has the .exe extension. Double-click
➢ After downloading the All or Java EE bundle ,customize your installation. Perform the
a. Click Customize.
c. Click OK.
➢ At the License agreement page, review the license agreement, click the acceptance
➢ At the JUnit License Agreement page, decide if you want to install JUnit and click
a. Accept the default installation directory for the NetBeans IDE or specify another
directory.
➢ If the GlassFish Server Open Source Edition 3.1.2.2 installation page opens,
➢ If you are installing Apache Tomcat, on its installation page, accept the default installation
➢ At the Summary page, verify that the list of components to be installed is correct and
that you have adequate space on your system for the installation.
➢ At the Setup Complete page, provide anonymous usage data if desired, and click Finish.
JDK Installation
Install the latest JDK, but it can be messy if you have multiple versions of JDK/JRE.If you
http://oracle.com/technetwork/java/javase/download/index.html
➔ Choose your operating platform, e.g., Windows x86 for 32-bit Windows OS or Windows x64
for 64-bit Windows OS. You can check whether your Windows OS is 32-bit or 64-bit via
"Control Panel" ⇒ System ⇒ Under the
"System Type".
Run the downloaded installer which installs both the JDK (Java Development Kit)
and JRE (Java Runtime). By default, the JDK will be installed in directory
For novices, accept the defaults. Simply click "next"..."next"... to install JDK in "C:\Program
Files\Java\jdk1.7.0_xx" and JRE in "C:\Program Files\Java\jre7". Take note of your JDK installed
directory (which you will need to use in the next step). Check the JDK installed directory by
Place the JDK bin directory in front of "c:\windows\system32" and "c:\windows". This is because
some Windows systems may have an out-dated copy of JDK/JRE in these directories. Do a search for
Launch a CMD shell (Click "Start" button ⇒ run... ⇒ enter "cmd"; or "Start" button ⇒ All Programs ⇒ Accessories ⇒ Command Prompt).
✗ Issue a "path" command to list the contents of the PATH environment variable. Check the
✗ prompt>path
✗ Issue the following commands to verify that JDK/JRE are properly installed and display
their version:
✗ prompt>java -version
1.7.0_xx
MySQL Installation
Download MySQL
Initially Uninstall any previous versions through Control Panel prior to install.
Step 1 : Navigate to the folder you downloaded to and click on install package.
Step 2 :You may receive this security warning - clickRun ->ClickNext >
Step 3 :You may select Typical if you are have a limited hard disk capacity.
Step 13 : Select both options: Install As Windows Service and Include BinDirectory in Windows
Path then click Next >
If you have a previous install you must enter Current root password - if no previous install you will
Make sure you record the Root Password . The default username is root.
User Manual
timetable automatically. An user is a person who makes interactions with the system.
An user exchanges information with the system. The system needs to interact with a
Admin
Faculty
Principal
Admin user: The admin has the privilege to control the user faculty..
The admin has an account to login and admin has the following functions to be performed. The
Add faculty : This field will add a new faculty into this portal. By
adding all the fields the admin can add new Staff.
Remove faculty : This field will delete a faculty from this portal..
Timetable Generation : This field will generate Timetable for College. Allowview of
generated timetable
Faculty User: The staff also has an username and password to be loggedin. . After logging
by Admin.
Apply leave : By using this Faculty can apply for leave withappropriate
Approve /Reject Substutute request : Other faculty can suggest a faculty when
Substitute request.
Faculty's.
Principal User : The principal also need an username and password to belogged in. The
principal can also perform their own functions. They are followed below:-
View leave request : This field allows to check leave requests forwarded byFaculty's.
Admin.