Professional Documents
Culture Documents
Project Report Ishika - Gupta
Project Report Ishika - Gupta
Project Report Ishika - Gupta
SUBMITTED TO SUBMITTED BY
MRS. RENU MISHRA ISHIKA GUPTA - 1900970130053
Assistant Professor
1
CONTENTS
1. Abstract 3
2. List of Tables 4
3. List of Figures 5-6
4. Language Choice 7 - 14
5. System Analysis 15 - 17
Present System 15
Proposed System 15
Software Requirement Specification 15 - 17
6. System Specification 18
Software Specification 18
Hardware Specification 18
7. System Design (Low Level Design) 19 - 20
8. Detailed Design 21 - 28
Module 21 - 25
Data Flow Design 25 - 27
Database Design 27 - 28
9. Testing 29
10. Conclusion 30
11. Appendix (Coding/Screenshots) 31 - 35
12. References 36
2
1. Abstract
For the past few years the number of educational institutions is increasing rapidly and thereby, the number
of hostels is also increasing for the accommodation of the students studying in the institutions. Hence, there
is a lot of strain on the person who is running the hostel and usually software’s are not used in this context.
This “HOSTEL MANAGEMENT SYSTEM” project deals with the problems which occur when carried
out manually. Identification of the drawbacks of the existing system leads to the development of
computerized hostel management system that will be compatible to the existing system with the system
which is more user friendly and more GUI oriented. We can improve the efficiency of the system, and thus
overcome the drawbacks of the existing system. Less human error, strain of manual labor can be reduced,
high security, data redundancy can be avoided to some extent, data consistency, easy to handle, easy data
updating, easy record keeping, and backup data can be easily generated.
This project is made with the use of Java(IDE Netbeans) and MYSQL(For database).
The main objectives of this project work include: student will no longer apply for their hostels manually, it
will reduce the manual work of the persons in admin panel, the admin can see and access the student’s data,
help the admin to keep the information of its room, edit the details of the students and modify the students
records and many such activities.
This solution is developed on the plight of the hostel management team, through which they do not require
very efficient person to handle and manage the affairs of the students in the hostel, all you need to do is to
login as the administrator and you can see the information of all the students who have obtained and
registered their hostel form, click verify to ascertain their eligibility and allocate them to the available
hostel. It helps them to get rid of the boring manual work from which it is very difficult to find the record
of the students and rooms.
3
2. List of Tables
3. List of Figures
4
FIGURE 7.1 DFD for Allotment Process 19
5
FIGURE 11.7 Fee Structure 33
6
4. Language Choice
The frontend language in this project is JAVA and the backend is designed with MYSQL.
Java is the core programming language for this project. To perform bean operation, the logical operation
we are using java. In the project, we are using the object model which is followed by the java. It is open-
source programming and provides all the support at the client-side as well as server-side.
Java applications are typically compiled to byte code that can run on any Java virtual machine (JVM)
regardless of the underlying computer architecture. The Java runtime provides dynamic capabilities (such
as reflection and runtime code modification). As of 2019, Java was one of the most popular programming
languages in use according to GitHub, particularly for client-server web applications.
Swing was developed to provide a more sophisticated set of GUI components than the earlier Abstract
Window Toolkit (AWT). Swing provides a look and feel that emulates the look and feel of several
platforms, and also supports a pluggable look and feel that allows applications to have a look and feel
unrelated to the underlying platform. It has more powerful and flexible components than AWT. In addition
to familiar components such as buttons, check boxes and labels, Swing provides several advanced
components such as tabbed panel, scroll panes, trees, tables, and lists.
Unlike AWT components, Swing components are not implemented by platform-specific code. Instead, they
are written entirely in Java and therefore are platform independent.
Java Swing tutorial is a part of Java Foundation Classes (JFC) that is used to create window-based
applications. It is built on the top of AWT (Abstract Windowing Toolkit) API and entirely written in java.
Unlike AWT, Java Swing provides platform-independent and lightweight components. The javax.swing
package provides classes for java swing API such as JButton, JTextField, JTextArea, JRadioButton,
JCheckbox, JMenu, JColorChooser etc.
7
Java.swing.JFrame class is a type of container which inherits the java.awt.Frame class. JFrame works like
the main window where components like labels, buttons, textfields are added to create a GUI. Unlike
Frame, JFrame has the option to hide or close the window with the help of setDefaultCloseOperation(int)
method. JFrame() constructs a new frame that is initially invisible.
The JButton class is used to create a labeled button that has platform independent implementation. The
application result in some action when the button is pushed. It inherits AbstractButton class. JButton()
creates a button with no text and icon.
The object of JLabel class is a component for placing text in a container. It is used to display a single line
of read only text. The text can be changed by an application but a user cannot edit it directly. It inherits
JComponent class. JLabel creates a JLabel instance with no image and with an empty string for the title.
The object of a JTextField class is a text component that allows the editing of a single line text. It inherits
JTextComponent class.
The object of a JPasswordField class is a text component specialized for password entry. It allows the
editing of a single line of text. It inherits JTextField class. JPasswordField() constructs a new
JPasswordField, with a default document, null starting text string, and 0 column width.
The JCheckBox class is used to create a checkbox. It is used to turn an option on (true) or off (false).
Clicking on a CheckBox changes its state from "on" to "off" or from "off" to "on ".It
inherits JToggleButton class. JCheckBox() Creates an initially unselected check box button with no text, no
icon.
The JRadioButton class is used to create a radio button. It is used to choose one option from multiple
options. It is widely used in exam systems or quiz. It should be added in ButtonGroup to select one radio
button only. JRadioButton() creates an unselected radio button with no text.
The object of Java JComboBox or Choice class is used to show popup menu of choices. Choice selected by
user is shown on the top of a menu. It inherits JComponent class.
The JTable class is used to display data in tabular form. It is composed of rows and columns. JTable()
creates a table with empty cells.
The object of JList class represents a list of text items. The list of text items can be set up so that the user
can choose either one item or multiple items. It inherits JComponent class.
The JOptionPane class is used to provide standard dialog boxes such as message dialog box, confirm dialog
box and input dialog box. These dialog boxes are used to display information or get input from the user.
The JOptionPane class inherits JComponent class.
8
The JMenuBar class is used to display menubar on the window or frame. It may have several menus. The
object of JMenu class is a pull down menu component which is displayed from the menu bar. It inherits the
JMenuItem class. The object of JMenuItem class adds a simple labeled menu item. The items used in a
menu must belong to the JMenuItem or any of its subclass.
The JPanel is a simplest container class. It provides space in which an application can attach any other
component. It inherits the JComponents class. It doesn't have title bar.
Contains all of the classes for creating user interfaces and for painting graphics and images. A user
interface object such as a button or a scrollbar is called, in AWT terminology, a component. The
Component class is the root of all AWT components. See Component for a detailed description of
properties that all AWT components share.
Some components fire events when a user interacts with the components. The AWTEvent class and its
subclasses are used to represent the events that AWT components can fire. See AWTEvent for a description
of the AWT event model.
A container is a component that can contain components and other containers. A con tainer can also have a
layout manager that controls the visual placement of components in the container. The AWT package
contains several layout manager classes and an interface for building your own layout manager. See
Container and LayoutManager for more information.
Each Component object is limited in its maximum size and its location because the values are stored as an
integer. Also, a platform may further restrict maximum size and location coordinates. The exact maximum
values are dependent on the platform. There is no way to change these maximum values, either in Java
code or in native code. These limitations also impose restrictions on component layout. If the bounds of a
Component object exceed a platform limit, there is no way to properly arrange them within a Container
object. The object's bounds are defined by any object's coordinate in combination with its size on a
respective axis.
9
example, click on button, dragging mouse etc. The java.awt.event package provides many event classes and
Listener interfaces for event handling.
The root event class for all AWT events. This class and its subclasses supercede the original java.awt.Event
class. Subclasses of this root AWTEvent class defined outside of the java.awt.event package should define
event ID values greater than the value defined by RESERVED_ID_MAX.
The event masks defined in this class are needed by Component subclasses which are using
Component.enableEvents() to select for event types not selected by registered listeners. If a listener is
registered on a component, the appropriate event mask is already set internally by the component. The
masks are also used to specify to which types of events an AWTEventListener should listen. The masks are
bitwise-ORed together and passed to Toolkit.addAWTEventListener.
The Color class is used to encapsulate colors in the default sRGB color space or colors in arbitrary color
spaces identified by a ColorSpace. Every color has an implicit alpha value of 1.0 or an explicit one
provided in the constructor. The alpha value defines the transparency of a color and can be represented by a
float value in the range 0.0 - 1.0 or 0 - 255. An alpha value of 1.0 or 255 means that the color is completely
opaque and an alpha value of 0 or 0.0 means that the color is completely transparent. When constructing
a Color with an explicit alpha or getting the color/alpha components of a Color, the color components are
never premultiplied by the alpha component. The default color space for the Java 2D(tm) API is sRGB, a
proposed standard RGB color space.
The abstract class Image is the superclass of all classes that represent graphical images. The image must be
obtained in a platform-specific manner.
ActionListener in Java is a class that is responsible for handling all action events such as when the user
clicks on a component. Mostly, action listeners are used for JButtons. An ActionListener can be used by the
implements keyword to the class definition. It can also be used separately from the class by creating a new
class that implements it. It should also be imported to your project. The method actionPerformed handles
all the actions of a component, and inside this method, you will define or write your own codes that will be
executed when an action occurred. Here’s an example on how to implement ActionListener in Java.
ActionListener is notified whenever you click on the button or menu item. It is notified against
ActionEvent. The ActionListener interface is found in java.awt.event package. It has only one method:
actionPerformed().
The object of a TextArea class is a multi-line region that displays text. It allows the editing of multiple line
text. It inherits TextComponent class.
10
We can close the AWT Window or Frame by calling dispose() or System.exit() inside windowClosing()
method. The windowClosing() method is found in WindowListener interface and WindowAdapter class.
The WindowAdapter class implements WindowListener interfaces. It provides the default implementation
of all the 7 methods of WindowListener interface. To override the windowClosing() method, you can either
use WindowAdapter class or WindowListener interface. If you implement the WindowListener interface,
you will be forced to override all the 7 methods of WindowListener interface. So it is better to use
WindowAdapter class.
The MenuBar class encapsulates the platform's concept of a menu bar bound to a frame. In order to
associate the menu bar with a Frame object, call the frame's setMenuBar method. A menu bar handles
keyboard shortcuts for menu items, passing them along to its child menus. (Keyboard shortcuts, which are
optional, provide the user with an alternative to the mouse for invoking a menu item and the action that is
associated with it.) Each menu item can maintain an instance of MenuShortcut. The MenuBar class defines
several methods, shortcuts() and getShortcutMenuItem(java.awt.MenuShortcut) that retrieve information
about the shortcuts a given menu bar is managing.
All items in a menu must belong to the class MenuItem, or one of its subclasses. The
default MenuItem object embodies a simple labeled menu item. When a menu item is selected, AWT sends
an action event to the menu item. Since the event is an instance of ActionEvent, the processEvent method
examines the event and passes it along to processActionEvent. The latter method redirects the event to
any ActionListener objects that have registered an interest in action events generated by this menu item.
Note that the subclass Menu overrides this behavior and does not send any event to the frame until one of
its subitems is selected.
Java Applet is a special type of program that is embedded in the webpage to generate the
dynamic content. It runs inside the browser and works at client side.
For creating any applet java.applet.Applet class must be inherited. It provides 4 life cycle methods of
applet:
public void init(): is used to initialized the Applet. It is invoked only once.
public void start(): is invoked after the init() method or browser is maximized. It is used
to start the Applet.
public void stop(): is used to stop the Applet. It is invoked when Applet is stop or
browser is minimized.
public void destroy(): is used to destroy the Applet. It is invoked only once.
11
JDBC stands for Java Database Connectivity. The java.sql package contains classes and
interfaces for JDBC API. JDBC is a Java API to connect and execute the query with the database.
It is a part of JavaSE (Java Standard Edition). JDBC API uses JDBC drivers to connect with the
database. A JDBC driver is a software component enabling a Java application to interact with
a database.[1] JDBC drivers are analogous to ODBC drivers, ADO.NET data providers, and OLE
DB providers.
To connect with individual databases, JDBC (the Java Database Connectivity API) requires drivers for each
database. The JDBC driver gives out the connection to the database and implements the protocol for
transferring the query and result between client and database. There are four types of JDBC drivers:
We can use JDBC API to access tabular data stored in any relational database. By the help of JDBC API,
we can save, update, delete and fetch data from the database. It is like Open Database Connectivity
(ODBC) provided by Microsoft.
The current version of JDBC is 4.3. It is the stable release since 21st September, 2017. It is based on the
X/Open SQL Call Level Interface. A list of popular interfaces of JDBC API is given below:
Driver interface
Connection interface
Statement interface
PreparedStatement interface
CallableStatement interface
ResultSet interface
ResultSetMetaData interface
DatabaseMetaData interface
RowSet interface
DriverManager class
Blob class
12
Clob class
Types class
Before JDBC, ODBC API was the database API to connect and execute the query with the database. But,
ODBC API uses ODBC driver which is written in C language (i.e. platform dependent and unsecured).
That is why Java has defined its own API (JDBC API) that uses JDBC drivers (written in Java language).
We can use JDBC API to handle database using Java program and can perform the following activities:
It is a relational database management system. In this project, we are using MySQL to store the data of
employee. There is a separate table to divide the data and each table is related to others. Unique and foreign
keys are responsible for the relations between the tables. To operate the database we are using MYSQL
workbench which is quite simple and easy to understand. MYSQL server is running on the port number
3306 with the username “root” and password “root”.
JDBC ('Java Database Connectivity') allows multiple implementations to exist and be used by the same
application. The API provides a mechanism for dynamically loading the correct Java packages and
13
registering them with the JDBC Driver Manager. The Driver Manager is used as a connection factory for
creating JDBC connections.
JDBC connections support creating and executing statements. These may be update statements such as
SQL's CREATE, INSERT, UPDATE and DELETE, or they may be query statements such as SELECT.
Additionally, stored procedures may be invoked through a JDBC connection. JDBC represents statements
using one of the following classes:
Statement - the statement is sent to the database server each and every time.
PreparedStatement – the statement is cached and then the execution path is pre-determined on
the database server allowing it to be executed multiple times in an efficient manner.
CallableStatement – used for executing stored procedures on the database.
Update statements such as INSERT, UPDATE and DELETE return an update count that indicates how
many rows were affected in the database. These statements do not return any other information. Query
statements return a JDBC row result set. The row result set is used to walk over the result set.
Individual columns in a row are retrieved either by name or by column number. There may be any number
of rows in the result set. The row result set has metadata that describes the names of the columns and their
types.
There is an extension to the basic JDBC API in the javax.sql. JDBC connections are often managed via
a connection pool rather than obtained directly from the driver.
14
5. System Analysis
The present system is manual based, need lot of efforts and consume much time. In the present system, we
can apply for the hostels online but the allotment processes are done manually. It may lead to corruption in
the allocation processes as well as hostel fee calculation. The existing system does not deal with the overall
expense calculations and complaint registration.
Disadvantages:
The project is aimed at developing a system for keeping records and showing information about or in the
hostel. The system will help the hostel admin to manage and regulate the hostel affairs efficiently. It will
provide full information about a student residing in the hostel as well as of pass out students. It can show
the number of rooms available in the hostel, it’s cleaning status, the type of room whether it is single,
double or triple sharing, the number of students residing in a room. It will also provide information of
students who have cleared their dues and those who still owe.
This system will also provide a report on the summary detail regarding fees and its details. There will also
be an administrator module which can only be accessed by the admin and it has the ability to delete, add ad
edit employee, students and rooms records.
15
5.3 Software Requirement Specification
17
6. System Specification
A major element in building a system is the section of compatible software since the software in the market
is experiencing in geometric progression. Selected software should be acceptable by the firm and one user
as well as it should be feasible for the system. It allows the developer or analyst to understand the system,
function to be carried out, the performance level to be obtained and corresponding interfaces to be
established.
This section is an important task related to the software development. Insufficient random access memory
may affect adversely on the speed and efficiency of the entire system. The process should be powerful to
handle the entire operations efficiently. The hard disk should have sufficient capacity to store the file and
applications.
18
7. System Design
System design is the process of defining the architecture, modules, interfaces, and data for a system to
satisfy specified requirements. The low level designs of the project are –
19
FIGURE 7.5 DFD for login page
20
8. Detailed Design
8.1 Module
21
FIGURE 8.1.4 Add Staff Module
22
FIGURE 8.1.6 Fee Module
23
FIGURE 8.1.9 Update Fee Module
24
FIGURE 8.1.12 Search Rooms
25
FIGURE 8.2.3 DFD of room allotment
26
8.3 Database Design
27
Table 8.3.3 Add Employee
28
9. Testing
As the part of system testing, we execute the program with the intent of finding errors and missing
operations and also a complete verification to determine whether the objectives are met and user
requirements are satisfied. The ultimate aim is to provide quality assurance.
Tests are carried out and the results are compared with the expected document. In the case of erroneous
results, debugging is done. Using detailed testing strategies a test plan is carried out on each module. The
various tests performed are –
Unit Testing
The software units in the system are modules and routines that are assembled and integrated to
perform a specific function. As a part of unit testing we executed the program for individual
modules independently. This enables to detect errors in coding and logic that are contained within
each of the module. This testing includes entering data that is filling forms and ascertaining if the
value matches to the type and entered into the database. The various controls are tested to ensure
that each module performs its action as required.
Integration Testing
Data can be lost across any interface; one module can have adverse effect on other, sub functions
when combined may not produce the desired major functions. Integration testing is a systematic
testing to discover errors associated within the interface. The objective is to take unit tested
modules and build a program structure. All the modules are combined and tested as a whole. Here
the admin module, employee module, student module and room module options are integrated and
tested. This testing provides the assurance that the application is well integrated functional unit
with smooth transition of data.
29
10. Conclusion
To conclude the description about the project, it is developed using Java swing and MySQL. It is based on
the requirement specification of the user and the analysis of the existing system, with flexibility for future
enhancement.
Hostel Management System is very useful for hostel allotment and to calculate overall expenditure and
income of the hostel. This application is designed for people who want to manage various activities in the
hostel.
This project is aimed at developing a system for keeping records and showing information about or in the
hostel. It will provide complete information about a student in the hostel. It will show rooms available or
not and number of people in a particular room. It will also provide information about those students who
have full fees and those who still owe. It also contains employee module which can show each and every
detail of the employee working in the hostel.
This project deals with the problems which occur when carried out manually. Identification of the
drawbacks of the existing system leads to the development of computerized hostel management system that
will be compatible to the existing system with the system which is more user friendly and more GUI
oriented. We can improve the efficiency of the system, and thus overcome the drawbacks of the existing
system. Less human error, strain of manual labor can be reduced, high security, data redundancy can be
avoided to some extent, data consistency, easy to handle, easy data updating, easy record keeping, and
backup data can be easily generated.
This solution is developed on the plight of the hostel management team, through which they do not require
very efficient person to handle and manage the affairs of the students in the hostel, all you need to do is to
login as the administrator and you can see the information of all the students who have obtained and
registered their hostel form, click verify to ascertain their eligibility and allocate them to the available
hostel. It helps them to get rid of the boring manual work from which it is very difficult to find the record
of the students and rooms.
This project is built to manage the details of beds, hostel staff members, rooms, allotters, hostel rent, etc.
This project is totally built at administrative end and thus only the administrator is guaranteed the access.
The purpose of the project is to build an application program to reduce the manual work for managing the
beds, hostel, payment, rooms. It tracks all the details whether the room is accommodated or not, whether
30
the room is dirty or clean and what not. It also provides the information about those students who did not
pay the fees.
31
Figure 11.3 Add Rooms
32
Figure 11.5 Reception
33
Figure 11.7 Fee Structure
34
Figure11.9 Update Check-in
35
12. References
1. https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/
2. http://iprodeveloper.com/rpg-programming/access-external-databases-rpg-jdbcr4
3. https://codebun.com/hostel-management-system-project-in-java-with-source-code-and-project-report/
4. http://www.ohloh.net/p/mysql/analyses/latest
5. https://en.wikipedia.org/wiki/MySQL
6. https://www.freeprojectz.com/java-projects-projects/java-project-hostel-management-system
7. https://sites.google.com/site/ignoufreebcaproject/java-project-source-code/hostel-management-
system-project
8. https://www.slideshare.net/PrasoonRawat/hostel-management-system-report
9. https://www.youtube.com/watch?v=eVTmf4KNn5g
10. https://www.youtube.com/watch?
v=MlHSmVvEf64&list=PLdRq0mbeEBmxkcuasB3D1grHjNFwwrMeo
11. https://www.youtube.com/watch?v=TuK8OWf8wGo&t=38s
36
12. https://www.academia.edu/9234897/Project_Report_On_HOSTEL_MANAGEMENT_SYSTEM_Sub
mitted_by
13. https://codebun.com/hostel-management-system-project-in-java-with-source-code-and-project-report/
14. https://www.youtube.com/watch?v=jz2oTZiUXRA
15. https://www.youtube.com/watch?v=yG_jtEOFb7k
16. https://www.youtube.com/watch?v=n2jIBlRoSS8
17. https://www.youtube.com/watch?v=R8Qc0rGfrv4&t=445s
18. https://github.com/topics/hostel-management-system?l=java
19. https://github.com/topics/hostel-management-system?o=asc&s=forks
20. https://www.kashipara.com/project/java/189/download-hostel-management-system-java-source-code
21. https://www.university.youth4work.com/mait_maharaja-agrasen-institute-of-technology/study/2842-
source-code-for-java-hostel-management-system
22. http://dspace.cusat.ac.in/jspui/bitstream/123456789/8250/1/ONLINE%20HOSTEL
%20MANAGEMENT%20SYSTEM.pdf
23. https://en.wikipedia.org/wiki/JDBC_driver
24. https://docs.oracle.com/javase/10/docs/api/java/sql/package-summary.html
25. https://docs.oracle.com/javase/10/docs/api/javax/sql/package-summary.html
37