Professional Documents
Culture Documents
Happy To HRLP
Happy To HRLP
A
PROJECT REPORT
ON
H2H (HAPPY 2 HELP)
AURO UNIVERSITY
SURAT
ACADEMIC YEAR – 2018-‘19
A
PROJECT REPORT
ON
H2H (HAPPY 2 HELP)
AURO UNIVERSITY
SURAT
ACADEMIC YEAR – 2018-‘19
A
PROJECT REPORT
ON
H2H (HAPPY 2 HELP)
AURO UNIVERSITY
SURAT
ACADEMIC YEAR – 2018-‘19
A
PROJECT REPORT
ON
H2H (HAPPY 2 HELP)
AURO UNIVERSITY
SURAT
ACADEMIC YEAR – 2018-‘19
CERTIFICATE OF UNDERTAKING
HARSHIL VANANI
(212015014)
This is to certify that the project entitled H2H (Happy 2 Help) has
been carried out by the student under my guidance in the partial
fulfilment of the Degree of Bachelor of Science in Information
Technology of AURO University, Surat during the academic year 2018-
‘19 (Semester-VI).
Team Members:
1. Avin Bhamani
2. Harshil Vanani
3. Mrugesh Ganghi
4. Mayank Amin
Place: Surat
ACKNOWLEDGEMENTS
CONTENTS
1. Introduction of Project 1
2. Requirement Specifications:
2.1 Business Requirement Specifications 2–5
2.2 System Requirement Specifications
4. Software Model 7
5. System Design:
5.1 Flow Chart 8 – 26
5.2 Data Flow Diagram
5.3 Entity–Relationship Diagram
6. Design:
6.1 Front-End Screenshots 27 – 57
6.2 List of Database Tables
6.3 Back-End Screenshots
7. Source Code 58 – 96
INTRODUCTION OF PROJECT
REQUIREMENT SPECIFICATIONS
1) FRONT OFFICE
- All the reservations, check-in, check-out procedures and
customer/guest details are feed in FIDELIO (PMS software) at
front office.
- Front office is connected with housekeeping, food and beverages
(service), engineering, IT, security, HR, finance, purchases and
stores, spa and gym and travel desk (part of front office).
2) HOUSEKEEPING
- Housekeeping helps in cleaning the hotel and also takes care of
laundry of guest and staff.
- Housekeeping is connected with front office (AYS also), food and
beverages (service), engineering, HR, IT, security and purchases
and stores.
5) ENGINEERING
- Engineering department maintains all the electrical equipments,
plants and machinery in hotel.
- Engineering is connected with front office (AYS also),
housekeeping, food and beverages (production and service), sales
and marketing, IT, HR, security, finance, purchases and stores and
spa and gym.
6) IT
- IT department is responsible for all the hardware and software
installation, updation and maintenance. They have all the admin
rights of all the software.
- IT is connected with front office (AYS also), housekeeping, food
and beverages (service), HR, security, finance and purchases and
stores.
7) SECURITY
- Security is done in three-tier i.e. at entry level, check-in and
luggage. They also keep an eye on people whom they find
suspicious.
- Security is connected with front office (AYS also), housekeeping,
food and beverages (service), engineering, HR and IT.
8) HR
- HR handles recruitment of all the departments and also manages
payroll management.
- HR is connected with front office, housekeeping, food and
beverages (production and service), sales and marketing,
engineering, IT, security and finance.
9) FINANCE
- Finance handles all the monetary transactions. It handles all the
income and expenditure of the hotel.
- Finance is connected with front office, sales and marketing,
engineering, IT, HR and purchases and stores.
FINDINGS
- Traditional File System (Manual entries)
- Time Consuming
- Data Redundancy
- Ineffective Storage
- Complexity in Accessing Information
- Challenge in Report Generation
- Communication Gap among Departments
SOLUTIONS
- Facilitates automation in day-to-day operations.
- Ease in communication with departments.
- Technology leads to reduce in time consumption.
- Generating meaningful and understandable reports for Hotel
Management.
- Information required can be found easily.
OBJECTIVE OF SOFTWARE
SOFTWARE MODEL
AGILE MODEL
- Firstly, we gathered new system requirements from product owner
and define the requirements in User story.
- So, till the final product is not achieved the same steps are repeated
SYSTEM DESIGN
1-LEVEL
DESCRIPTION
Processes:
PROCESS 1.0 ADMIN LOGIN –
Admin enters username and password, verifies through TBL_ADMIN.
PROCESS 2.0 PROPERTY REGISTRATION–
Admin can register a new property here, the details are saved to
TBL_PROPERTY.
PROCESS 3.0 ROOM REGISTRATION –
Admin can register a new room here, the details are saved to
TBL_ROOM.
PROCESS 4.0 DEPARTMENT REGISTRATION –
Admin can register a new department here, the details are saved to
TBL_DEPARTMENT.
PROCESS 5.0 LOCATION REGISTRATION –
Admin can register a new location here, the details are saved to
TBL_LOCATION
PROCESS 6.0 ASSOCIATE REGISTRATION –
Admin can register a new associate here, the details are saved to
TBL_USER.
PROCESS 7.0 FREQUENT REQUEST REGISTRATION –
Admin can register a new frequently used request here, the details are
saved to TBL_FREQUENT_REQUEST.
PROCESS 8.0 LOGIN –
Users enters username and password, verifies through TBL_USER.
AYS:
PROCESS 9.0 REQUEST REGISTRATION –
Operator feeds in the details of the request from the guests and associates
and saves details in TBL_REQUEST_AYS. After saving, manager of the
concerned department is notified.
TBL_FREQUENT_REQUEST
TBL_LOCATION
Location_ID(Primary Key),Admin_ID(Foreign Key – References to
tbl_admin to Admin_ID),P_ID(Foreign Key – References to tbl_property
to P_ID),Dept_ID(Foreign Key – References to tbl_department to
Dept_ID),Location_Name,Created_Date,Modified_Date,Disable_Date,Vi
sibility.
TBL_NOTIFICATION
Noti_ID(Primary Key), User_ID(Foreign Key – References to tbl_user to
User_ID),Token,device_ID.
TBL_PROPERTY
TBL_REQUEST_AYS
Req_ID(Primary Key),FR_ID(Foreign Key – References to
tbl_frequent_request to FR_ID),Dept_ID(Foreign Key – References to
tbl_department to Dept_ID),P_ID(Foreign Key – References to
tbl_property to P_ID),User_ID(Foreign Key – References to tbl_user to
User_ID),Room_ID(Foreign Key – References to tbl_room to
Room_ID),Guest_Name,Associate_Name,Associate_Department,Check_
In,Check_Out,Start_Time,Priority_Time,Status,Remarks,Details,Request
_By,Completed_Time,End_Time,Call_Duration,Assigned_To_AUID,As
signed_MID,Escalation_Count,Visibility.
TBL_REQUEST_IDC
Idc_Req_ID(Primary Key),User_ID(Foreign Key – References to
tbl_user to User_ID),Dept_ID(Foreign Key – References to
tbl_department to Dept_ID),P_ID(Foreign Key – References to
tbl_property to P_ID),Location_ID(Foreign Key – References to
tbl_location to
Location_ID),Idc_Req_Name,Start_Time,Completed_Time,Status,Idc_R
eq_Details,Remarks,Assigned_To_UID,Assigned_By,Request_By_Dept.
TBL_ROLES
Role_ID(Primary Key),Role_Name.
TBL_ROOM
Room_ID(Primary Key),Admin_ID(Foreign Key – References to
tbl_admin to Admin_ID),P_ID(Foreign Key – References to tbl_property
to
P_ID),Room_No,Room_Type,Floor_No,Visibility,Reason,Created_Date,
Modified_Date,Disable_Date.
TBL_USER
User_ID(Primary Key),Admin_ID(Foreign Key – References to
tbl_admin to Admin_ID),P_ID(Foreign Key – References to tbl_property
to P_ID),Dept_ID(Foreign Key – References to tbl_department to
Dept_ID),Role_ID(Foreign Key – References to tbl_roles to
Role_ID),Name,Username,Password,Employee_Code,Floor_No,Mobile_
No,Created_Date,Modified_Date,Disable_Date,Visibility,Email.
CARDINALITY RATIO
DESIGN
Fig (I)
ADMIN PANEL
ADMIN DASHBOARD
EXPLAINATION
- Admin will able to see details of the property.
Fig (II)
Fig (III)
PROPERTY REGISTRATION
EXPLAINATION
- Admin will able to register a new property here by adding a
property details and submitting it.
Fig (IV)
Fig (V)
Fig (VI)
ROOM REGISTRATION
EXPLAINATION
- Admin will able to register a new room here by adding room
details and submitting it.
Fig (VII)
UPDATE REGISTERED ROOM
EXPLAINATION
- Admin can able to update status of room and room category.
- If admin wants to disable room then reason is mandatory.
Fig (VIII)
Fig (IX)
DEPARTMENT REGISTRATION
EXPLAINATION
- Admin will able to register a new department here by adding
department details and submitting it.
Fig (X)
Fig (XI)
Fig (XII)
LOCATION REGISTRATION
EXPLAINATION
Fig (XIII)
UPDATE REGISTERED LOCATION
EXPLAINATION
- Admin can able to update status of location and change name of
location.
Fig (XIV)
- Admin will able to view and update frequent request that admin
has already registered.
Fig (XV)
FREQUENT REQUEST REGISTRATION
EXPLAINATION
- Admin will able to register a new frequent request according to
department and submitting it.
Fig (XVI)
Fig (XVII)
Fig (XVIII)
ASSOCIATE REGISTRATION
EXPLAINATION
- Admin will able to register a new associate by add associate details
and submitting it.
- If admin wants to give permission manager to access multi-
property then admin has to tick on property’s name.
- And for housekeeping associate admin has to assign floor number.
Fig (XIX)
Fig (XX)
OPERATOR PANEL
OPERATOR DASHBOARD
EXPLAINATION
- Operator can see the number of New, Work in progress, Pending
and Completed request on his dashboard.
Fig (XXI)
WEB NOTIFICATION
EXPLAINATION
- Operator will receive notification whenever status of request is
new.
Fig (XXII)
Fig (XXIII)
Fig (XXIV)
REQUEST STATUS(NEW)
EXPLAINATION
- Here, operator will able to see and can even assign the status of
request according to the actual status.
Fig (XXV)
ASSIGN STATUS
EXPLAINATION
- Here, operator can assign the status of request by assigning to
associate of concern department.
Fig (XXVI)
Fig (XXVII)
UPDATE STATUS
EXPLAINATION
- Here, operator updates the status of request by updating status and
remark in case of pending.
Fig (XXVIII)
Fig (XXIX)
REQUEST REPORTS
- Operator will able to generated reports by selecting date range.
- Operator can even filter the reports as per the requirement of higher
authorities.
- Operator can also extract into excel and pdf.
Fig (XXX)
Fig (XXXI)
Fig (XXXII)
- Operator will able to assign employee and update status for query
registered.
Fig (XXXIII)
QUERY STATUS–IDC
(WORKING IN PROGRESS, PENDING)
EXPLAINATION
- Operator can update the status of the query according to its
physical status.
Fig (XXXIV)
Fig (XXXV)
Fig (XXXVI)
MANAGER PANEL
MANAGER DASHBOARD
EXPLAINATION
- Manager can see the number of New, Work in progress, Pending
and Completed request on his dashboard.
Fig (XXXVII)
REQUEST STATUS (NEW)
EXPLAINATION
- Here, manager will able to see and can even assign the status of
request according to the actual status.
Fig (XXXVIII)
ASSIGN STATUS
EXPLAINATION
- Here, manager can assign the status of request by assigning to
associate of concern department.
Fig (XXXIX)
Fig (XL)
UPDATE STATUS
EXPLAINATION
- Here, manager updates the status of request by updating status and
remark in case of pending.
Fig (XLI)
Fig (XLII)
REQUEST REPORTS
- Manager will able to generated reports by selecting date range.
- Manager can even filter the reports as per the requirement of higher
authorities.
- Manager can also extract into excel and pdf.
Fig (XLIII)
Fig (XLIV)
QUERY STATUS – IDC (NEW)
EXPLAINATION
- Manager can assign the status of the query according to its physical
status.
Fig (XLV)
Fig (XLVI)
QUERY STATUS–IDC
(WORKING IN PROGRESS, PENDING)
EXPLAINATION
- Manager can update the status of the query according to its
physical status.
Fig (XLVII)
Fig (XLVIII)
Fig (XLIX)
USER PANEL
USER DASHBOARD
EXPLAINATION
- Associate can see the number of New, Pending and Completed
request on his dashboard.
Fig (L)
Fig (LI)
Fig (LII)
UPDATE STATUS
EXPLAINATION
- Here, associate updates the status of request by updating status and
remark in case of pending.
Fig (LIII)
REQUEST REPORTS
- Associate will able to generated reports by selecting date range.
Fig (LIV)
Fig (LV)
Fig (LVI)
Fig (LVII)
Fig (LVIII)
Fig (LIX)
Fig (LX)
REQUEST REPORTS
EXPLAINATION
- General manager will able to generated reports by selecting date
range.
- General manager can even filter the reports as per the requirement
of higher authorities.
- General manager can also extract into excel and pdf.
Fig (LXI)
QUERY FORM - IDC
EXPLAINATION
- General manager can fill the query form whenever general
manager has a query for any department and send it to the
concerned department.
Fig (LXII)
Fig (LXIII)
ASSIGN QUERY - IDC
EXPLAINATION
- General manager will able to assign employee and update status for
query registered.
Fig (LXIV)
QUERY STATUS–IDC
(WORKING IN PROGRESS, PENDING)
EXPLAINATION
- General manager can update the status of the query according to its
physical status.
Fig (LXV)
Fig (LXVI)
Fig (LXVII)
MANAGEMENT PANEL
MANAGEMENT DASHBOARD
EXPLAINATION
- Management can see the number of New, Work in progress,
Pending and Completed request on his dashboard.
- Management can able to select any property and view status of all
request.
Fig (LXVIII)
Fig (LXIX)
REQUEST REPORTS
EXPLAINATION
- Management will able to generated reports by selecting date range.
- Management can even filter the reports as per the requirement.
- Management can also extract into excel and pdf.
Fig (LXX)
Fig (LXXI)
Fig (LXXII)
Fig (LXXIII)
QUERY STATUS–IDC
(WORKING IN PROGRESS, PENDING)
EXPLAINATION
- Management can update the status of the query according to its
physical status.
Fig (LXXIV)
Fig (LXXV)
Fig (LXXVI)
Fig ()
tbl_department
EXPLAINATION
- Admin can add new department through department registration as
referred from fig (III) and the details are saved in tbl_department
table.
Fig ()
tbl_escalation_ays
EXPLAINATION
- Whenever request is escalated, the details of that request are
inserted here.
Fig ()
tbl_frequent_request
EXPLAINATION
- Admin registers complain for drop down as referred in fig () and
stores all details in tbl_frequent_request.
Fig ()
tbl_location
EXPLAINATION
- Admin can add new location through location registration as
referred from fig () and the details are saved in tbl_location.
tbl_notification
EXPLAINATION
- whenever user install application and login to system the details
are saved in tbl_notification.
tbl_request_ays
EXPLAINATION
- When operator fills the request form as referred in fig () all the
details are stored in tbl_request_ays.
Fig ()
tbl_request_idc
EXPLAINATION
- When any user fills a query form all the details are stored in
tbl_request_idc.
Fig ()
tbl_roles
EXPLAINATION
- Admin can add new room through room registration as referred
from fig () and the details are saved in tbl_roles table.
Fig ()
tbl_user
EXPLAINATION
- Admin can add new associate through associate registration as
referred from fig () and the details are saved in tbl_user table.
Fig ()
SOURCE CODE
ADMIN
ROOM REGISTRATION
<!DOCTYPE html>
<html>
<?php
session_start();
include './databaseconnection.php';
if (empty($_SESSION['type'])) {
header('Location:index.php');
}
?>
function load_propt()
{include './databaseconnection.php';
$output="";
$sql="select * FROM tbl_property where visibility = 1";
?>
<script language="Javascript" type="text/javascript">
function onlyAlphabets(e, t) {
try {
if (window.event) {
var charCode = window.event.keyCode;
} else if (e) {
var charCode = e.which;
} else {
return true;
}
if ((charCode > 64 && charCode < 91) || (charCode > 96 &&
charCode < 123) || (charCode > 31 && charCode < 33 ) )
return true;
else
return false;
} catch (err) {
alert(err.Description);
}
}
function isNumber(evt) {
evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
}
return true;
}
</script>
<body class="with-side-menu ">
<div class="page-content">
<div class="container-fluid">
<?php if (isset($_GET['err']) && $_GET['err'] == 1) { ?>
<div class="alert alert-danger alert-no-border alert-txt-
colored alert-close alert-dismissible fade show" role="alert">
<button type="button" class="close" data-dismiss="alert"
aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<strong>Error!</strong> Priority must be greater than 5
minutes
</div>
<?php
}
?>
<div align="right">
<button class="btn btn-inline btn-primary"
data-toggle="modal"
data-target=".bd-example-modal-lg">Add New
Request</button>
</div>
</div>
<div class="modal-body">
<div class="form-group">
<label class="form-label"
for="P_ID">Property</label>
<div class="form-control-wrapper">
<select id="P_ID"
data-validation =[NOTEMPTY]
data-validation-message="Please Select
Property"
name="P_ID"
class="form-control">
<option value="">Select</option>
<?php echo load_propt();
?>
</select>
</div>
</div>
<div class="form-group">
<label class="form-label"
for="department">Department</label>
<div class="form-control-wrapper">
<select id="department"
name="Department"
class="form-control"
data-validation =[NOTEMPTY]
data-validation-message="Please Select
Department"
>
<option value="">Select</option>
</select>
</div>
</div>
<div class="form-group">
<label class="form-label"
for="rcat">Request</label>
<div class="form-control-wrapper">
<input id="rcat"
type="text"
class="form-control"
name="Requestname"
onkeypress="return onlyAlphabets(event,
this);"
data-validation =[NOTEMPTY]
data-validation-message="Please Enter
Room Categoty"
>
</div>
</div>
<div class="form-group">
<label class="form-label" for="Priority">Set
Priority Time(In Min)</label>
<div class="form-control-wrapper">
<input id="Priority"
type="text"
class="form-control"
name="Priority"
onkeypress="return isNumber(event)"
data-validation ="[L<3]"
oninput="check(this)"
data-validation-message="Please Enter
Floor & less than 3 digits"
>
<div id="demo"></div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-rounded btn-
default" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-rounded btn-
primary">Submit</button>
</div>
</div>
</form>
</div>
</div>
<?php
$query = "SELECT * FROM tbl_frequent_request WHERE Visibility =
1 ";
</tr>
</thead>
<?php
$count=1;
while ($row = mysqli_fetch_array($result)) {
?>
<tr>
<td><?php echo $count;$count++; ?></td>
<td><?php echo $row["Request_Name"]?></td>
<td><?php echo $row["Priority_Time"]?></td>
$sql =
"Select Property_Name from tbl_property where P_ID=".$pid ;
$res =
mysqli_query($con,$sql);
while($r
ow1 = mysqli_fetch_assoc($res)){
echo
$row1['Property_Name'];
}
?></td>
<td>
<a href="Req_Update.php?id=<?php echo $row["FR_ID"] ?>"
class="button button1">Update</a><br>
</td>
</tr>
<?php
}
?>
</table>
</form>
</div>
</section>
</div><!--.container-fluid-->
</div><!--.page-content-->
xs = document.getElementById("Priority").value;
var x = document.forms["Room_reg"]["Priority"].value;
if (x < 5) {
alert("Input not valid");
return false;
} else {
alert("Input OK");
return false;
}
}
</script>
<script>
$(function () {
$('#Rooms_reg').validate({
submit: {
settings: {
inputContainer: '.form-group',
errorListClass: 'form-tooltip-error'
}
}
});
});
$('.flatpickr').flatpickr();
</script>
<script>
$(function () {
$('#rooms').DataTable({
responsive: true,
dom: 'Bfrtip',
buttons: [
{
extend: 'excelHtml5',
title: 'Request',
customize: function( xlsx ) {
var sheet = xlsx.xl.worksheets['sheet1.xml'];
},
{
extend: 'pdfHtml5',
title: 'Request',
orientation: 'landscape',
pageSize: 'LEGAL',
messageTop: 'List of Property',
}
]
});
});
</script>
<script>
$(document).ready(function () {
$('#P_ID').change(function () {
var pid = $(this).val();
$.ajax({
url: "fetch.php",
method: "POST",
data: {pid: pid},
dataType: "text",
success: function (data)
{
$('#department').html(data);
}
});
});
})
</script>
</body>
</html>
OPERATOR
OPERATOR REQUEST STATUS
<!DOCTYPE html>
<html>
<?php
session_start();
include './databaseconnection.php';
if (empty($_SESSION['type'])) {
header('Location:index.php');
}
?>
var postData = ''; // you can send any data to ajax file.
$.ajax( {
url : 'operator_cntajax.php',
type : 'post',
data : postData,
success : function( resp ) {
$('#new1').html($('#new' , resp).html());
$('#wip1').html($('#wip' , resp).html());
$('#pen1').html($('#pen' , resp).html());
$('#esc1').html($('#esc' , resp).html());
}
});
return false;
}, 2000);
});
</script>
<section class="tabs-section">
<div class="tabs-section-nav">
<div class="tbl">
<ul class="nav" role="tablist">
<li class="nav-item">
<a class="nav-link active" href="#tabs-2-
tab-1" role="tab" data-toggle="tab">
<span class="nav-link-in">
NEW
<span class="label label-pill label-
success"><div id=new1></div></span>
</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#tabs-2-tab-2"
role="tab" data-toggle="tab">
<span class="nav-link-in">
WORK-IN-PROGRESS
<span class="label label-pill label-
warning"><div id=wip1></div></span>
</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#tabs-2-tab-3"
role="tab" data-toggle="tab">
<span class="nav-link-in">
PENDING
<span class="label label-pill label-
danger"><div id=pen1></div></span>
</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#tabs-2-tab-4"
role="tab" data-toggle="tab">
<span class="nav-link-in">
ESCALATION
<span class="label label-pill label-
info"><div id=esc1></div></span>
</span>
</a>
</li>
</ul>
</div>
</div><!--.tabs-section-nav-->
<div class="tab-content">
<div role="tabpanel" class="tab-pane fade in
active show" id="tabs-2-tab-1">
<section class="card card-green mb-3">
<header class="card-header">
</header>
<div class="card-block">
<script>
$(document).ready(function(){
$.ajax({
url:"operator_new.php",
method:"POST",
dataType:"text",
success:function(data)
{
$('#new').html(data);
}
})
});
</script>
<tr>
<th width="100">ROOM
NO</th>
<th>DEPARTMENT</th>
<th>REQUEST</th>
<th >PRIORTY</th>
<th>
ACTION
</th>
</tr>
</thead>
<tbody id="new">
</tbody>
</table>
<script>
setInterval(function(){
$.ajax({
url:"operator_new.php",
method:"POST",
dataType:"text",
success:function(data)
{
$('#new').html(data);
}
})
},3000);
</script>
</div>
</section>
</div><!--.tab-pane-->
<div role="tabpanel" class="tab-pane fade"
id="tabs-2-tab-2">
<section class="card card-orange mb-3">
<header class="card-header">
<h3 align="center"> Work in progress
Request</h3>
</header>
<div class="card-block">
<script>
$(document).ready(function(){
$.ajax({
url:"operator_working.php",
method:"POST",
dataType:"text",
success:function(data)
{
$('#wip').html(data);
}
})
});
</script>
ACTION
</th>
</tr>
</thead>
<tbody id="wip">
</tbody>
</table>
<script>
setInterval(function(){
$.ajax({
url:"operator_working.php",
method:"POST",
dataType:"text",
success:function(data)
{
$('#wip').html(data);
}
})
},3000);
</script>
</div>
</section>
</div><!--.tab-pane-->
<div role="tabpanel" class="tab-pane fade"
id="tabs-2-tab-3">
<section class="card card-red mb-3">
<header class="card-header">
<h3 align="center"> Pending
Request</h3>
</header>
<div class="card-block">
<script>
$(document).ready(function(){
$.ajax({
url:"operator_pending.php",
method:"POST",
dataType:"text",
success:function(data)
{
$('#pending').html(data);
}
})
});
</script>
</tbody>
</table>
<script>
setInterval(function(){
$.ajax({
url:"operator_pending.php",
method:"POST",
dataType:"text",
success:function(data)
{
$('#pending').html(data);
}
})
},3000);
</script>
</div>
</section>
</div><!--.tab-pane-->
<div role="tabpanel" class="tab-pane fade"
id="tabs-2-tab-4">
<section class="card card-purple mb-3">
<header class="card-header">
<h3 align="center"> Escalated
Request</h3>
</header>
<div class="card-block">
<script>
$(document).ready(function(){
$.ajax({
url:"operator_escalation_new.php",
method:"POST",
dataType:"text",
success:function(data)
{
$('#esc').html(data);
}
})
});
</script>
<th>REQUEST</th>
<th>END TIME</th>
<th>ACTION</th>
</tr>
</thead>
<tbody id="esc">
</tbody>
</table>
<script>
setInterval(function(){
$.ajax({
url:"operator_escalation_new.php",
method:"POST",
dataType:"text",
success:function(data)
{
$('#esc').html(data);
}
})
},3000);
</script>
<!-- <script>
$(document).ready(function(){
setInter
val(function(){
$("#scr
een").load('back-esc.php')
}, 2000);
});
</script>-->
<div id="screen"></div>
</div>
</section>
</div><!--.tab-pane-->
</div><!--.tab-content-->
</section><!--.tabs-section-->
</div><!--.page-content-->
</body>
<?php include './temp/autoload-last.php'; ?>
<?php
include './temp/autoload-lastcss.php'; ?>
</html>
MANAGER
NEW_REQUES_DISPLAY (ANDROID)
package com.h2h.fragments;
import android.app.ProgressDialog;
import android.graphics.Color;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.CardView;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonArrayRequest;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.StringRequest;
import com.h2h.Adapter.NewARequestAdapter;
import com.h2h.Adapter.NewHKRequestAdapter;
import com.h2h.Adapter.NewRequestAdapter;
import com.h2h.GeneralManagerAdapters.NewGRequestAdapter;
import com.h2h.R;
import com.h2h.model.RequestModel;
import com.h2h.util.SharedPreferanceManager;
import com.h2h.util.SingleTonNetworkReq;
import com.h2h.util.StatusCallBack;
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
CardView cardView;
private SharedPreferanceManager preferanceManager;
private ArrayList<RequestModel> requestModels;
private ProgressDialog progressDialog;
public NewRequest() {
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return rootView;
}
} catch (Exception e) {
e.printStackTrace();
}
final JsonObjectRequest stringRequest = new
JsonObjectRequest(Request.Method.POST, APP_URL + WOR_URL, params,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
// if (progressDialog != null)
progressDialog.dismiss();
if (response.length() > 0) {
if (txtnodata.isShown()) {
txtnodata.setVisibility(View.VISIBLE);
}
JSONArray jsonArray =
response.getJSONArray("AYS");
Log.e("In NewRequest", "Response length : "
+ jsonArray.length());
for (int i = 0; i < jsonArray.length(); i++)
{
JSONObject object =
jsonArray.getJSONObject(i);
RequestModel details = new
RequestModel();
details.setReq_ID(object.getString("req_ID"));
details.setRoom_no(object.getString("room_no"));
details.setStatus(object.getString("status"));
Log.e("In NewRequest", "Request name : "
+ object.getString("requestname"));
details.setRequest_name(object.getString("requestname"));
/*details.setAssigned(object.getString("assigned"));*/
details.setDtls(object.getString("dtls"));
details.setDept_name(object.getString("dept_name"));
details.setPriority_time(object.getString("priority_time"));
//details.setIs_read(object.getString("is_read"));
/* if (details.getIs_read().equals(204)){
cardView.setCardBackgroundColor(Color.GREEN);
}*/
requestModels.add(details);
}
if (requestModels.size() > 0) {
mAdapter = new
NewRequestAdapter(getActivity(), requestModels, new StatusCallBack() {
@Override
public void OnStatusUpdate(String
req_ID) {
/*statusUpdate(req_ID);*/
}
});
recyclerView.setAdapter(mAdapter);
mAdapter.notifyDataSetChanged();
} else {
txtnodata.setVisibility(View.VISIBLE);
recyclerView.setVisibility(View.GONE);
}
} else {
txtnodata.setVisibility(View.VISIBLE);
recyclerView.setVisibility(View.GONE);
}
} catch (Exception e) {
Log.e("In NewRequest", "Excp Msg : " +
e.getMessage());
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d(TAG, "onErrorResponse: saveTransaction :" +
error.getMessage());
}
}) {
@Override
protected VolleyError parseNetworkError(VolleyError volleyError)
{
if (volleyError.networkResponse != null &&
volleyError.networkResponse.data != null) {
volleyError = new VolleyError(new
String(volleyError.networkResponse.data));
}
return volleyError;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError
{
HashMap<String, String> headers = new HashMap<>();
// headers.put("Content-Type", "application/json");
return headers;
}
};
SingleTonNetworkReq.getInstance(getActivity()).addToRequestQueue(stringReque
st.setTag(TAG));
}
params.put("p_ID", preferanceManager.getKeyPId());
params.put("a_id", preferanceManager.getKeyUserId());
} catch (Exception e) {
e.printStackTrace();
}
final JsonObjectRequest stringRequest = new
JsonObjectRequest(Request.Method.POST, APP_URL + ANEW_URL, params,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
progressDialog.dismiss();
if (response.length() > 0) {
if (txtnodata.isShown()) {
txtnodata.setVisibility(View.VISIBLE);
}
JSONArray jsonArray =
response.getJSONArray("AYS");
for (int i = 0; i < jsonArray.length(); i++)
{
JSONObject object =
jsonArray.getJSONObject(i);
RequestModel details = new
RequestModel();
details.setReq_ID(object.getString("req_ID"));
details.setRoom_no(object.getString("room_no"));
details.setStatus(object.getString("status"));
details.setRequest_name(object.getString("request_name"));
details.setAssigned(object.getString("assigned"));
details.setDtls(object.getString("dtls"));
details.setDept_name(object.getString("dept_name"));
details.setPriority_time(object.getString("priority_time"));
requestModels.add(details);
}
if (requestModels.size() > 0) {
mmAdapter = new
NewARequestAdapter(getActivity(), requestModels, new StatusCallBack() {
@Override
public void OnStatusUpdate(String
req_ID) {
/*statusUpdate(req_ID);*/
}
});
recyclerView.setAdapter(mmAdapter);
mmAdapter.notifyDataSetChanged();
} else {
txtnodata.setVisibility(View.VISIBLE);
recyclerView.setVisibility(View.GONE);
}
} else {
txtnodata.setVisibility(View.VISIBLE);
recyclerView.setVisibility(View.GONE);
}
} catch (Exception e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d(TAG, "onErrorResponse: saveTransaction :" +
error.getMessage());
}
}) {
@Override
protected VolleyError parseNetworkError(VolleyError volleyError)
{
if (volleyError.networkResponse != null &&
volleyError.networkResponse.data != null) {
volleyError = new VolleyError(new
String(volleyError.networkResponse.data));
}
return volleyError;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError
{
HashMap<String, String> headers = new HashMap<>();
// headers.put("Content-Type", "application/json");
return headers;
}
};
SingleTonNetworkReq.getInstance(getActivity()).addToRequestQueue(stringReque
st.setTag(TAG));
}
} catch (Exception e) {
e.printStackTrace();
}
final JsonObjectRequest stringRequest = new
JsonObjectRequest(Request.Method.POST, APP_URL + GM_NEW_REQUEST, params,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
progressDialog.dismiss();
if (response.length() > 0) {
if (txtnodata.isShown()) {
txtnodata.setVisibility(View.VISIBLE);
}
JSONArray jsonArray =
response.getJSONArray("AYS");
for (int i = 0; i < jsonArray.length(); i++)
{
JSONObject object =
jsonArray.getJSONObject(i);
RequestModel details = new
RequestModel();
details.setReq_ID(object.getString("req_ID"));
details.setRoom_no(object.getString("room_no"));
details.setStatus(object.getString("status"));
details.setRequest_name(object.getString("request_name"));
/*details.setAssigned(object.getString("assigned"));*/
details.setDtls(object.getString("dtls"));
details.setDept_name(object.getString("dept_name"));
details.setPriority_time(object.getString("priority_time"));
requestModels.add(details);
}
if (requestModels.size() > 0) {
mmmAdapter = new
NewGRequestAdapter(getActivity(), requestModels, new StatusCallBack() {
@Override
public void OnStatusUpdate(String
req_ID) {
/*statusUpdate(req_ID);*/
}
});
recyclerView.setAdapter(mmmAdapter);
mmmAdapter.notifyDataSetChanged();
} else {
txtnodata.setVisibility(View.VISIBLE);
recyclerView.setVisibility(View.GONE);
}
} else {
txtnodata.setVisibility(View.VISIBLE);
recyclerView.setVisibility(View.GONE);
}
} catch (Exception e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d(TAG, "onErrorResponse: saveTransaction :" +
error.getMessage());
}
}) {
@Override
protected VolleyError parseNetworkError(VolleyError volleyError)
{
if (volleyError.networkResponse != null &&
volleyError.networkResponse.data != null) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError
{
HashMap<String, String> headers = new HashMap<>();
// headers.put("Content-Type", "application/json");
return headers;
}
};
SingleTonNetworkReq.getInstance(getActivity()).addToRequestQueue(stringReque
st.setTag(TAG));
}
} catch (Exception e) {
e.printStackTrace();
}
final JsonObjectRequest stringRequest = new
JsonObjectRequest(Request.Method.POST, APP_URL + HK_NEW_URL, params,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
progressDialog.dismiss();
if (response.length() > 0) {
if (txtnodata.isShown()) {
txtnodata.setVisibility(View.VISIBLE);
}
JSONArray jsonArray =
response.getJSONArray("AYS");
for (int i = 0; i < jsonArray.length(); i++)
{
JSONObject object =
jsonArray.getJSONObject(i);
RequestModel details = new
RequestModel();
details.setReq_ID(object.getString("req_ID"));
details.setRoom_no(object.getString("room_no"));
details.setStatus(object.getString("status"));
details.setRequest_name(object.getString("request_name"));
/*details.setAssigned(object.getString("assigned"));*/
details.setDtls(object.getString("dtls"));
details.setDept_name(object.getString("dept_name"));
details.setPriority_time(object.getString("priority_time"));
requestModels.add(details);
}
if (requestModels.size() > 0) {
mAdapter = new
NewRequestAdapter(getActivity(), requestModels, new StatusCallBack() {
@Override
public void OnStatusUpdate(String
req_ID) {
/*statusUpdate(req_ID);*/
}
});
recyclerView.setAdapter(mAdapter);
mAdapter.notifyDataSetChanged();
} else {
txtnodata.setVisibility(View.VISIBLE);
recyclerView.setVisibility(View.GONE);
}
} else {
txtnodata.setVisibility(View.VISIBLE);
recyclerView.setVisibility(View.GONE);
}
} catch (Exception e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d(TAG, "onErrorResponse: saveTransaction :" +
error.getMessage());
}
}) {
@Override
protected VolleyError parseNetworkError(VolleyError volleyError)
{
if (volleyError.networkResponse != null &&
volleyError.networkResponse.data != null) {
volleyError = new VolleyError(new
String(volleyError.networkResponse.data));
}
return volleyError;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError
{
HashMap<String, String> headers = new HashMap<>();
// headers.put("Content-Type", "application/json");
return headers;
}
};
SingleTonNetworkReq.getInstance(getActivity()).addToRequestQueue(stringReque
st.setTag(TAG));
}
}
MANAGER QUERY
<!DOCTYPE html>
<?php
session_start();
include './databaseconnection.php';
?>
<?php include './temp/left-side.php'; ?>
<?php
function load_dept()
{
include 'databaseconnection.php';
$output="";
$sql="select * FROM tbl_department WHERE
P_ID=".$_SESSION['P_ID']."";
$result= mysqli_query($con, $sql);
while($row= mysqli_fetch_array($result))
{
$output.= '<option
value="'.$row['Dept_ID'].'">'.$row['Dept_Name'].'</option>';
}
return $output;
}
?>
<div class="page-content">
<div class="container-fluid">
<div class="tbl">
<div class="tbl-row">
<div class="tbl-cell">
<h3>
<section class="card">
<div style="background:#7ac0c9" class="card-
block">
<br>
<h5><center><b>REQUEST
FORM</b></center></h5>
</div>
</section>
</h3>
</div>
</div>
</div>
<form id="operator_request_form"
action="manager_insertquery.php" name="form-signup_v1"
method="POST">
<div class="row">
<div class="col-md-4">
</div>
<div class="col-md-4">
<div class="form-group">
<label class="form-label"
for="Department_name">Department name</label>
<div class="form-control-wrapper">
<select id="Department_name"
class="form-control"
name="department"
data-validation =[NOTEMPTY]>
<div class="form-group">
<label class="form-label"
for="location">Location</label>
<div class="form-control-wrapper">
<select id="location"
class="form-control"
name="location"
data-validation="[NOTEMPTY]">
<option value="">Select </option>
<?php
if($stmt=$con->query("select * from tbl_location where
P_ID=".$_SESSION['P_ID']." AND Dept_ID In (SELECT Dept_ID
from tbl_user where User_ID=".$_SESSION['username']." AND
P_ID=".$_SESSION['P_ID']." )"))
{
while($r=$stmt->fetch_array(MYSQLI_ASSOC))
{
?>
<option value="<?php echo $r['Location_ID']?>"><?php echo
$r['Location_Name']?></option>
<?php } } ?>
</select>
</div>
</div>
<div class="form-group">
<label class="form-label"
for="query">Query</label>
<div class="form-control-wrapper">
<input id="query"
class="form-control"
name="query"
type="text"
data-validation="[NOTEMPTY]"
data-validation-message="Please fill Lead
Time ">
</div>
</div>
<div class="form-group">
<label class="form-label"
for="Details">Details</label>
<div class="form-control-wrapper">
<textarea id="Details"
class="form-control"
name="details"
data-validation="[]"
data-validation-message="$"></textarea>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="form-group">
<center>
<button type="submit" class="btn">Submit</button>
</center>
</div>
</div>
</div>
</form>
</div><!--.container-fluid-->
</div><!--.page-content-->
<script>
$(function () {
$('#operator_request_form').validate({
submit: {
settings: {
inputContainer: '.form-group',
errorListClass: 'form-tooltip-error'
}
}
});
});
$('.flatpickr').flatpickr();
</script>
</body>
</html>
ASSOCIATE
USER HKREQUEST STATUS(HOUSEKEEPING USER)
<!DOCTYPE html>
<html>
<?php
session_start();
include './databaseconnection.php';
if (empty($_SESSION['type'])) {
header('Location:index.php');
}
?>
$('#new1').html($('#new' , resp).html());
$('#wip1').html($('#wip' , resp).html());
$('#pen1').html($('#pen' , resp).html());
}
});
return false;
}, 2000);
});
</script>
<?php
}
?>
<?php if (isset($_GET['err']) && $_GET['err'] == 2) { ?>
<div class="alert alert-danger alert-no-border alert-txt-
colored alert-close alert-dismissible fade show" role="alert">
<section class="tabs-section">
<div class="tabs-section-nav">
<div class="tbl">
<ul class="nav" role="tablist">
<li class="nav-item">
<a class="nav-link active" href="#tabs-2-tab-1"
role="tab" data-toggle="tab">
<span class="nav-link-in">
NEW
<span class="label label-pill label-
success"><div id=new1></div></span>
</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#tabs-2-tab-2"
role="tab" data-toggle="tab">
<span class="nav-link-in">
WORK-IN-PROGRESS
<span class="label label-pill label-
warning"><div id=wip1></div></span>
</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#tabs-2-tab-3"
role="tab" data-toggle="tab">
<span class="nav-link-in">
PENDING
<span class="label label-pill label-
danger"><div id=pen1></div></span>
</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#tabs-2-tab-4"
role="tab" data-toggle="tab">
<span class="nav-link-in">
ESCALATION
<span class="label label-pill label-
info"></span>
</span>
</a>
</li>
</ul>
</div>
</div><!--.tabs-section-nav-->
<div class="tab-content">
<div role="tabpanel" class="tab-pane fade in active show"
id="tabs-2-tab-1">
<section class="card card-green mb-3">
<header class="card-header">
<h3 align="center"> New Request</h3>
</header>
<div class="card-block">
<script>
$(document).ready(function(){
$.ajax({
url:"userhk_new.php",
method:"POST",
dataType:"text",
success:function(data)
{
$('#new').html(data);
}
})
});
</script>
<th>REQUEST</th>
<th >PRIORTY</th>
<th>
ACTION
</th>
</tr>
</thead>
<tbody id="new">
</tbody>
</table>
<script>
setInterval(function(){
$.ajax({
url:"userhk_new.php",
method:"POST",
dataType:"text",
success:function(data)
{
$('#new').html(data);
}
})
},1000);
</script>
</div>
</section>
</div><!--.tab-pane-->
<div role="tabpanel" class="tab-pane fade" id="tabs-2-
tab-2">
<section class="card card-orange mb-3">
<header class="card-header">
<h3 align="center"> Work in progress
Request</h3>
</header>
<div class="card-block">
<script>
$(document).ready(function(){
$.ajax({
url:"userhk_working.php",
method:"POST",
dataType:"text",
success:function(data)
{
$('#wip').html(data);
}
})
});
</script>
<th>REQUEST</th>
<th >PRIORTY</th>
<th>
ACTION
</th>
</tr>
</thead>
<tbody id="wip">
</tbody>
</table>
<script>
setInterval(function(){
$.ajax({
url:"userhk_working.php",
method:"POST",
dataType:"text",
success:function(data)
{
$('#wip').html(data);
}
})
},3000);
</script>
</div>
</section>
</div><!--.tab-pane-->
<div role="tabpanel" class="tab-pane fade" id="tabs-2-
tab-3">
<section class="card card-red mb-3">
<header class="card-header">
<h3 align="center"> Pending Request</h3>
</header>
<div class="card-block">
<script>
$(document).ready(function(){
$.ajax({
url:"userhk_pending.php",
method:"POST",
dataType:"text",
success:function(data)
{
$('#pending').html(data);
}
})
});
</script>
<th>REMARKS</th>
<th>ACTION</th>
</tr>
</thead>
<tbody id="pending">
</tbody>
</table>
<script>
setInterval(function(){
$.ajax({
url:"userhk_pending.php",
method:"POST",
dataType:"text",
success:function(data)
{
$('#pending').html(data);
}
})
},3000);
</script>
</div>
</section>
</div><!--.tab-pane-->
</header>
<div class="card-block">
<script>
$(document).ready(function(){
$.ajax({
url:"operator_escalation_new.php",
method:"POST",
dataType:"text",
success:function(data)
{
$('#esc').html(data);
}
})
});
</script>
</tbody>
</table>
<script>
setInterval(function(){
$.ajax({
url:"operator_escalation_new.php",
method:"POST",
dataType:"text",
success:function(data)
{
$('#esc').html(data);
}
})
},3000);
</script>
</div>
</section>
</div><!--.tab-pane-->
</div><!--.tab-content-->
</section><!--.tabs-section-->
</div><!--.page-content-->
</body>
<?php include './temp/autoload-last.php'; ?>
<?php include './temp/autoload-lastcss.php'; ?>
</html>
GENERAL MANAGER
GENERALMANAGER QUERY
<!DOCTYPE html>
<?php
session_start();
include './databaseconnection.php';
?>
<?php include './temp/left-side.php'; ?>
<?php
function load_dept()
{
include 'databaseconnection.php';
$output="";
$sql="select * FROM tbl_department WHERE
P_ID=".$_SESSION['P_ID']."";
$result= mysqli_query($con, $sql);
while($row= mysqli_fetch_array($result))
{
$output.= '<option
value="'.$row['Dept_ID'].'">'.$row['Dept_Name'].'</option>';
}
return $output;
}
?>
<div class="page-content">
<div class="container-fluid">
<div class="tbl">
<div class="tbl-row">
<div class="tbl-cell">
<h3>
<section class="card">
<div style="background:#7ac0c9" class="card-
block">
<br>
<h5><center><b>REQUEST
FORM</b></center></h5>
</div>
</section>
</h3>
</div>
</div>
</div>
<form id="generalmanager_request_form"
action="generalmanager_insertquery.php" name="form-signup_v1"
method="POST">
<div class="row">
<div class="col-md-4">
</div>
<div class="col-md-4">
<div class="form-group">
<label class="form-label"
for="Department_name">Department name</label>
<div class="form-control-wrapper">
<select id="Department_name"
class="form-control"
name="department"
data-validation =[NOTEMPTY]>
name="location"
data-validation="[NOTEMPTY]">
<option value="">Select </option>
<?php
if($stmt=$con->query("select * from tbl_location where
P_ID=".$_SESSION['P_ID']." AND Dept_ID In (SELECT Dept_ID
from tbl_user where User_ID=".$_SESSION['username']." AND
P_ID=".$_SESSION['P_ID']." )"))
{
while($r=$stmt->fetch_array(MYSQLI_ASSOC))
{
?>
<option value="<?php echo $r['Location_ID']?>"><?php echo
$r['Location_Name']?></option>
<?php } } ?>
</select>
</div>
</div>
<div class="form-group">
<label class="form-label"
for="query">Query</label>
<div class="form-control-wrapper">
<input id="query"
class="form-control"
name="query"
type="text"
data-validation="[NOTEMPTY]"
data-validation="[]"
data-validation-message="$"></textarea>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="form-group">
<center>
<button type="submit" class="btn">Submit</button>
</center>
</div>
</div>
</div>
</form>
</div><!--.container-fluid-->
</div><!--.page-content-->
submit: {
settings: {
inputContainer: '.form-group',
errorListClass: 'form-tooltip-error'
}
}
});
});
$('.flatpickr').flatpickr();
</script>
</body>
</html>
MANAGEMENT
Management Dashboard
<!DOCTYPE html>
<html>
<?php
session_start();
include './databaseconnection.php';
if (empty($_SESSION['type'])) {
header('Location:index.php');
}
?>
$.ajax( {
url
: 'management_cntajax.php',
type :
'post',
data :
postData,
success :
function( resp ) {
$('#new')
.html($('#new' , resp).html());
$('#wip').
html($('#wip' , resp).html());
$('#pen').
html($('#pen' , resp).html());
$('#don').
html($('#don' , resp).html());
});
return
false;
},
2000);
});
</script>
<div
class="page-content">
<div
class="container-fluid">
<h1>Das
hboard</h1>
<div class="row">
<div class="col-xl-6">
<div class="row">
<div class="col-sm-6">
</div>
</article>
</div><!--.col-->
<div class="col-sm-6">
<div>
</article>
</div><!--.col-->
<div class="col-sm-6">
<div>
<div class="caption"><div>Pending</div></div>
</div>
</article>
</div><!--.col-->
<div class="col-sm-6">
<div>
<div class="caption"><div>Completed</div></div>
</div>
</article>
</div><!--.col-->
</div><!--.row-->
</div><!--.col-->
<!--
.row-->
<div class="col-xl-6 ">
<section class="card">
<div class="card-block">
<div id="pie-chart"></div>
</div>
</section>
</div>
</div><!--.col-->
</div>
<!--.col-->
</div>
</div><!--.container-fluid-->
</div><!
--.page-content-->
<?php
include './temp/autoload-last.php'; ?>
<?php
include './temp/autoload-lastcss.php'; ?>
</body>
</html>
UNIT TESTING
Unit testing is testing of individual software components or modules.
2)In the request status manager can view all the requests if he wants to
assign he can click on assign button and if the wants to update he can
click on update button.
3)Assign or Update the request
4)Click on Submit Button.
So, we have performed unit testing for all the modules like admin login
fig (I), login of operator, manager and user fig (XI, XX,XXXIII)
respectively, guest complain form fig (XIII), associate complain form
fig (XIV) and many more.
Basically, we have tested each and every unit of our software to make it
efficient.
INTEGRATION TESTING
Testing of integrated modules to verify combined functionality after
integration.
We have integrated our whole software with help of login form through
which operator panel, manager panel and user panel can be accessed as in
fig (XII, XXI, XXXIV) respectively.
Integration testing helps in binding whole software and even giving ease
of access to users.
We have also integrated all the forms and logs with each other to give
user a user friendly system.
He can access anything through navigation bar which is always there on
left side and will able to do his task quickly.
FUNCTIONAL TESTING
Functional testing focuses on the output i.e. it checks whether the output
is as per requirement or not. This testing ignores the internal parts.
This is a black box type testing geared to functional requirements of
software.
So, functional testing is tested upon request from fig (XIII), assign form
fig (XIII), update form fig (XIII), query form fig (XXVII) and many
more.
SYSTEM TESTING
Entire system is tested as per the requirements. This type of testing is
based on overall requirements specifications and covers all combined
parts of a system.
TITLE: Whole software – All the modules of the system are being tested.
DESCRIPTION: Tester tests the whole system to check bugs and errors
in the system which can be solved to prevent mishaps.
PRE-CONDITION: System must be fully integrated and connected.
ASSUMPTION: A supported browser must be used.
TEST STEPS:
1) Navigate to www.h2htech.in.
2) Login to any of the user account i.e. operator, manager, associate,
general manager, or management.
3) Can view the dashboard of their respective panels
4) Can perform any of the operations from navigation bar.
EXPECTED RESULT: There will be output for every input in the system
and it can be in operator, manager, associate, general manager, or
management.
In system testing, the whole system is tested as a whole rather than the
individual units. System testing is done only after whole system is
integrated.
This testing will provide us with the bugs and errors of the system rather
than the error we get while coding.
System testing also helps in checking how secure the software is and
whether the data entered is encrypted or protected or not.
ACCEPTANCE TESTING
Acceptance testing is done to verify if system meets the customer
specified requirements.
Clients do this testing to determine whether to accept software or not.
LOAD TESTING
Load testing comes under performance testing to check system behaviour
under load.
Testing the software under heavy loads, such as testing of a website under
a range of loads to determine at what point the system’s response time
fails.
STRESS TESTING
System is stressed beyond it’s specification to check how and when it
fails.
Performed under heavy load like putting large number beyond storage
capacity, complex database queries, continuous input to system and
database load.
PERFORMANCE TESTING
Term often used interchangeably with stress and load testing.
To check whether system meets performance requirements by using
different performance and load tools.
USABILITY TESTING
Whether the software is user-friendly or not is checked here.
Application flow is tested, can new user understand the application easily,
proper help documented whenever user is stuck at any point.
Basically, system navigation is checked here.
UI TESTING
UI testing involves testing the GUI of software.
UI testing ensures that the GUI functions according to the requirements
and are tested in terms of colour, alignment, size and other properties.
SECURITY TESTING
Can system be penetrated by any hacking now. Testing how well the
system protects against unauthorised internal or external access.
Check if system database is safe or not.
COMPATIBILITY TESTING
Testing how well software performs in particular hardware, software
operating system, network environment and different combinations.
ALPHA TESTING
In house virtual user environment can be created for this type of testing.
Testing is done at the end of development. Still minor design changes
may be made as a result of such testing.
BETA TESTING
Testing typically done by end-users or others.
Final testing before releasing application for commercial purpose.
LIMITATIONS
- Our software is not connected to opera so, operator will have to fill
more field manually.
- Guests cannot see status of their request. Guests has call at AYS to
check status.
FUTURE ENHANCEMENTS
- An interface with PMS (Property Management Software) to get the
details of guest directly into the system.
- Create API that can able to fetch information of guest from opera.
- Create Application that can run on (tizen os) hospitality TV. So,
that guest can register request and also check status of request from
TV.
CONCLUSION
BIBLIOGRAPHY
http://stackoverflow.com/questions/7005808/set-session-expiration-time-
11manually-codeigniter
https://github.com/ronan-gloo/codeigniter-highcharts-
library/blob/master/controllers/charts.php
https://forums.phpfreaks.com/topic/268967-getting-the-current-date-and-
time-in-php /
https://www.tutorialspoint.com/codeigniter/working_with_database.htm
https://www.formget.com/codeigniter-tutorial/
https://www.formget.com/pagination-in-php /
http://stackoverflow.com/questions/21389164/how-can-i-get-radio-
button-values-from-php -form-into-controller
http://stackoverflow.com/questions/3041616/creating-foreach-loops-
using-php -controller-and-view
https://www.tutorialspoint.com/php/
http://stackoverflow.com/questions/21389164/generate-random-
passowordr
https://forums.phpfreaks.com/topic/268967-getting-the-current-date-and-
time-in-php/
https://www.tutorialspoint.com/codeigniter/working_with_database.htm
https://stackoverflow.com/questions/1658443/can-php-scripts-continue-
to-run-even-if-the-user-closed-the-browser
http://programmerblog.net/jquery-ajax-get-example-php-mysql/
LEARNING OUTCOMES
- I learnt how to filter out the requirements of clients and focus on the
main requirement and provide the solution of same to them.
- I learnt how to get ideas through brain storming session and choose
the best one to work upon.
- I also learnt how to work in team and reduce the communication gap
among team members.
- I learnt how to complete the daily tasks given by mentor and report to
mentor about same.
- Our group tried to create a benchmark for juniors so that they can
follow our steps and make an efficient project of their own.
- Even learnt how to make significant system design which will help in
designing our software.
- I learnt how to debug and solve the errors in our project to make it
efficient.
- Code ignite was selected because it is secured and all the data is
passed in encrypted form.
- Learnt how to integrate all the modules as one and make one system
out of it.
- The software was tested in various circumstances and solved all the
bugs and errors which came while testing.
- The software was tested in live environment with live data to get the
insight of working of software in this environment.