Professional Documents
Culture Documents
1. INTRODUCTION
Automatic Timetable Generator is a Java based software used to generate
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.
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
these wiil not be difficult. Considering workload with this scheduling will make it
those cases timetable generation will become more complex. Also , it is a time
consuming process.
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
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.
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
Wil lhelp you to manage all the periods automatically and also will be
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 .
that timetable generation is done manually. Manually adjust the timetable when
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
absent is their , then assigning that period to another Faculty is a not an easy job
because at that time we should consider the Maximum workload for a Faculty
will help you to manage all the periods automatically. Faculty can recieve their
workloads for a Faculty in a day, week and month. Main challenge is to manage
timetable when any Faculty is absent. By using this software it will be very easy
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 .
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.
3.2.3 Behavioral Feasibility
There are various life cycle models to improve the software processes.
➔ WATERFALL MODEL
➔ PROTOTYPE MODEL
➔ ITERATIVE ENHANCEMENT MODEL
➔ EVOLUTIONARY MODEL
➔ SPIRAL MODEL
Prototype Model
• Since in this methodology a working model of the system is provided, the
users get a better understanding of the system being developed.
• Errors can be detected much earlier.
• Quicker user feedback is available leading to better solutions.
• Missing functionality can be identified easily
Confusing or difficult function can be identified requirments
validation, Quick implementation , incomplete but functional, application.
Automatic Timetable Generator is a creative and scientific system through which
colleges and other institutions can easily handle timetable management.
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.
Software Specification
➢ Operating System : Windows/Linux
➢ Technology : JSP/SERVLET
➢ Web Technologies : XHtml, JavaScript, CSS
➢ Web Server : Appache Tomcat/Glassfish
➢ Design Tools :NetBeans IDE
➢ Compiler : JDK
➢ Database : MySQL
➢ Web Browser :Mozilla Firefox/Google Chrome
Hardware Specification
➢ Hardware : Pentium
➢ Speed : 2 Ghz
➢ RAM : 2GB
➢ Hard Disk : 80 GB
Faculty
Principal
3.5.3.1 Faculty does
View Timetable
View request for leave
View substitut's response
Approve or Reject request for leave
4. 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.
4.1 UML Diagrams
4.1.1 Use-Case diagram
Principal
Faculty
Admin
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.
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.
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. Data Flow symbols are
annotated with corresponding data names.
Data Store Symbol
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 data structure or a physical file on disk.
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 functions, and represent
them appropriately in the diagram.
Procedure to develop a DFD model of a system:
1. The SRS document is examined to determine:
• Different high-level functions that the system need to perform.
• Data input to every high-level function
• Data output from every high-level functions
• Interactions among the identified high-level functions
These aspects of the high-level functions are then represented in a diagrammatic
form. This forms the top level Data Flow Diagram, usually called DFD.
2. 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
functions through the following set of activities.
Level 0
Level 1
Level 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:
• To structure the data so that perfect relationship between entries can be
represented.
• To permit simple retrieval of data in response query and report requests.
• To reduce the need to restructure or reorganize data when new application
requirement arises.
5.1 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 {
protected void processRequest(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
String path="index.jsp#overlay";;
try {
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");
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 {
}
response.sendRedirect(path);
}
protected void doGet(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
processRequest(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
processRequest(request, response);
}
public String getServletInfo() {
return "Short description";
}
}
Substitute request
<%@page import="java.sql.ResultSet"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<jsp:useBean id="object" class="autotimetable.DB" />
<%
ResultSet r=object.getSubst(session.getAttribute("id")+"");
out.print("<table id='admin_menu'>");
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>");
5.2 Tables
Admin Table:
Course Table:
Faculty_hour:
Facleave:
Fac_Sub:
Semester:
Faculty:
Subject:
Timetable:
6. TESTING
Many different types of tests are conducted at each of this level of detail
the following tests are conducted.
➔ Application function tests
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.
Server performance is also considered.
➔ 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 and retrieved. Archiving is also tested.
➔ Network communication tests
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
7. OUTPUT SCREENS
Login Page
View Timetable
Registration
8. CONCLUSION
Automatic Timetable Generator is a web based application for
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
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
BOOKS
Publication, 1997
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
11. APENDICES
➢ Java EE. Provides tools for developing Java SE and Java EE applications
as 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.
➢ At the License agreement page, review the license agreement, click the
acceptance check box, and click Next.
➢ At the JUnit License Agreement page, decide if you want to install JUnit
and click the appropriate option, click Next.
➢ If you are installing Apache Tomcat, on its installation page, accept the
default installation directory or specify another installation location. Click
Next.
➢ At the Setup Complete page, provide anonymous usage data if desired, and
click Finish.
➔ 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".
Step 2: Install JDK and JRE
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 "C:\Program Files\Java\jdk1.7.0_xx", where xx denotes the latest
upgrade number; and JRE in "C:\Program Files\Java\jre7".
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 inspecting these folders using
Windows' Explorer.
Step 5 :Tick Configure the MySQL Server now -> Click Finish
Step 6 :Select Reconfigure Instance then click Next >
Step 7 : Select Detailed Configuration then click Next >
Step 8 : Select Developer Machine then click Next >
Step 9 : Select Non-Transactional Database Only then click Next >
Step 10 : Select Decision Support (DSS)/OLAP then click Next >
Step 11 : Select both (default) options: Enable TCP/IP Networking and
Enable Strict Mode then click Next >
Step 12 : Select (Default) Standard Character Set then click Next >
Step 13 : Select both options: Install As Windows Service and Include Bin
Directory in Windows Path then click Next >
If you have a previous install you must enter Current root password - if no
previous install you will not see this
Enter New root password and Confirm
Make sure you record the Root Password . The default username is root.
Step 14 : Click Execute to configure your database server.
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 admin need an username and password.After the admin has
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. Allow
view of generated timetable
Faculty User: The staff also has an username and password to be logged
in. . After logging into it the faculty also has the following functions to be
performed:-
Apply leave : By using this Faculty can apply for leave with
appropriate reason ,date and Substitute.
Approve /Reject Substutute request : Other faculty can suggest a faculty when
they are requesting for a leave.
Substitute can Approve/ Reject
Substitute request.
View leave request : This field allows to check leave requests forwarded by
Faculty's. Principal also can view Substitutes response
also. By looking at that Principal can Approve /
Reject leave requsts