Deepak Content Word
Deepak Content Word
Deepak Content Word
ABSTRACT
Page 2
ABSTRACT
The Waterway project is a comprehensive online seat reservation
system designed to facilitate the efficient management of seat bookings
on boats, ensuring a streamlined experience for both users and
administrators. The platform enables passengers to browse available
routes, select boats, view schedules, and reserve seats with real-time
availability updates. Equipped with a secure payment gateway,
Waterway processes payments seamlessly while managing bookings,
cancellations, and refunds.
TABLE OF CONTENTS
● Acknowledgment
00
● Abstract 02
1 . Introduction……..........................................................................05
1.1 Background and Motivation……….....................................05
1.2 The Proposed System ………..............................................05
1.3 Project
Scope .......................................................................06
2 . System Analysis
………...............................................................09
2.1 Introduction ……................................................................09
2.2 Stakeholders of this Project …......................................09
2.2.1 Admin…..…..................................................................09
2.2.3 User………..............................................................…..10
2.3 Software Requirement Specifications ..…….……..............11
2.3.1 System Features …….................................................11
2.3.1.1 User ...
……........................................................11
2.3.1.2 Admin ..
……......................................................11
2.3.2 Non-functional Requirements
…….............................11
2.4 Feasibility Study ……..........................................................12
2.5 Software Development Lifecycle Model ....................15
2.6 Hardware and Software Requirements ......................15
2.6.1.Software Specifications…….....................................15
2.6.1.1 HTML ………........................................................16
2.6.1.2 CSS
………...........................................................16
2.6.1.3 Javascript……….................................................16
2.6.1.4 jQuery ………......................................................16
2.6.1.5 Ajax ………..........................................................16
Page 4
2.6.1.5 Bootstrap………..................................................17
2.6.1.6
PHP………............................................................17
2.6.1.7
MySQL……….......................................................17
2.6.1.8 XAMPP.................................................................17
2.6.1.9 Composer............................................................17
4. Implementation
………......................................................................44
4.1 Coding Standards ………..........................................................44
4.2 Sample Code ..............................................................................45
5. Testing ………...................................................................................57
5.1 Test Cases
……….......................................................................57
5.1.1 Unit Testing ………...........................................................
58
5.1.2 Integration Testing ………...............................................59
Page 5
6. Conclusion …….............................................................................68
6.1 Future
Enhancements ................................................................68
7.
References ........................................................................................70
8. Appendix ………...............................................................................71
8.1 Screenshots ...............................................................................71
1 .INTRODUCTION
1.1. BACKGROUND AND MOTIVATION
has driven the creation of a platform that benefits both users and boat
operators, modernizing the reservation process for waterway travel.
By encompassing these features, the Waterway project addresses inefficiencies in boat seat
reservations, setting a new standard for the waterway transportation industry. The system’s
structured approach to managing bookings, payments, schedules, and user feedback
ensures it is both scalable and adaptable to various operational needs, providing an effective
solution for boat reservation services.
Advantages
1. Optimized Seat Utilization: The Waterway system maximizes seat usage by
allowing users to view real-time availability and book seats instantly. The dynamic
Seat_Bookings and Seats tables ensure that seats are efficiently allocated,
minimizing wastage and increasing operational revenue for boat operators.
2. Synchronized Schedules and Routes: By leveraging the Routes, Route_Stops,
and Route_Stop_Times tables, the system aligns boat schedules with designated
routes and stops. This integration enables precise timing calculations for boat arrivals
and departures, ensuring that bookings are in sync with actual boat timings for a
smooth travel experience.
3. Dynamic Price Calculation: Through the Stop_Pricing table, ticket prices are
calculated based on route distance and selected stops, providing a fair and accurate
pricing model. This feature allows the system to adapt prices based on the start and
end stops, giving users clear and customized pricing for each journey.
4. User-Friendly Admin Dashboard: The project’s admin dashboard simplifies the
management of boats, routes, schedules, and bookings. The Admin_Logs table
records every action, providing traceability and ensuring accountability.
Administrators have full control over boat statuses, route details, and schedule
adjustments, enhancing operational flexibility.
5. Comprehensive Booking Management: Waterway allows users to manage their
bookings and cancellations easily. The Cancellations and Payments tables record
canceled bookings and associated refunds, creating a transparent and user-centric
experience. This also helps prevent overbooking and ensures seat availability is
accurately represented to all users.
6. Feedback and Complaint Resolution: The Enquiries table facilitates user feedback
and complaints, enabling administrators to respond to inquiries promptly. This
module supports ongoing service improvements by directly addressing user
concerns.
Limitations
Page 9
2. SYSTEM ANALYSIS
2.1. INTRODUCTION
This structured approach enables the identification of inputs, outputs, and processing
phases, ultimately leading to a clear understanding of how the new system can operate
effectively.
2.2.1. ADMIN
● Role and Responsibilities: Admins oversee the entire Waterway platform,
managing user registrations, boat and route data, and transaction security. They
handle user feedback to continuously improve the system.
● Benefits: Admins enjoy streamlined operations, enhanced control over bookings,
and access to analytical tools for monitoring patterns and inventory management.
This data-driven approach enables informed decision-making, leading to improved
customer satisfaction.
● Challenges: Admins may struggle with adapting to new technologies and ensuring
effective user training. They must also prioritize data security to protect sensitive user
information
2.2.2. USER
● Role and Responsibilities: Users are passengers seeking to book boat seats
through the Waterway platform. Their interaction includes searching routes, reserving
seats, and processing payments. Users can also provide feedback or inquiries
regarding their bookings.
● Benefits: The Waterway system offers users a time-saving and efficient online
booking experience, reducing frustrations associated with traditional methods.
Features such as real-time availability, secure payments, and personal account
management enhance user convenience.
● Challenges: Users may face connectivity issues or have difficulty navigating the
platform if they are not familiar with online systems. Ensuring adequate support and
resources is essential for overcoming these challenges.
Page 11
● User Registration and Login: Users can securely create an account and log in to
access the system, ensuring personalized interactions.
● Search for Routes: Users can search for available boat routes based on their
desired start and end locations, facilitating easy navigation through options.
● View Schedules: Users can view the schedules for different boats along the
selected routes, including crucial departure and arrival times, enhancing planning.
● Seat Selection: Users can select their preferred seats from the available options,
giving them control over their booking experience.
Page 12
2.3.1.2. ADMIN
● Admin Login: Admins can securely log in to access the administrative interface,
ensuring that sensitive management functions are protected.
● User Management: Admins can view, edit, or delete user accounts and manage
user roles, maintaining control over the user base.
● Boat Management: Admins can add new boats, edit existing boat details, or remove
boats from the system, keeping the information current and relevant.
● Route Management: Admins can create, update, or delete routes and associated
stops, ensuring that the available options reflect current operations.
● Schedule Management: Admins can add, modify, or cancel boat schedules,
maintaining accurate and updated schedules for users.
● Booking Oversight: Admins can view all bookings and manage any issues related
to bookings or cancellations, ensuring effective resolution of user concerns.
● Reporting Tools: Admins can generate various reports, such as booking statistics
and user activity logs, facilitating data-driven decision-making.
● The system should support at least 1000 concurrent users without performance
degradation, ensuring a smooth experience during peak times.
● The average response time for user actions should be under 2 seconds, providing a
responsive interface that enhances usability.
Security Requirements
● All sensitive user data must be encrypted during transmission and storage to protect
against data breaches.
● Passwords should be hashed using secure algorithms, ensuring that user credentials
are safeguarded.
● The application must implement role-based access control to ensure proper user
privileges, preventing unauthorized access to sensitive features.
Usability Requirements
● The user interface should be intuitive, allowing users to complete their tasks with
minimal effort and confusion.
● The application should be accessible on various devices (desktop, tablet,
smartphone) with a responsive design, ensuring usability across platforms.
Reliability Requirements
Page 13
● The system should have an uptime of at least 99.9%, guaranteeing availability for
users at all times.
● Regular backups must be performed to prevent data loss, ensuring system integrity
and reliability.
Here's a detailed feasibility study note tailored for the Waterway boat seat booking project
website:
Overview: The Waterway boat seat booking system is designed to streamline the booking
process for passengers and boat operators. This feasibility study evaluates the technical,
operational, and economic aspects of the system to ensure a sustainable and user-friendly
solution.
Technical Feasibility
The technical feasibility analysis confirms that the Waterway project can be developed with
reliable, available technology that ensures both performance and security.
● Technology Stack
The Waterway system will use PHP for backend development and MySQL as the
database. These technologies are popular and have extensive support, making it
easy to find development resources and troubleshoot any issues. The frontend will
use HTML, CSS, and JavaScript, which will ensure compatibility with various devices
and browsers. Using well-known technologies also enhances scalability and future-
proofing.
● Integration:
The system requires integration with third-party payment gateways to facilitate
secure and convenient online transactions. Since many payment providers offer
detailed documentation and established SDKs, integration is feasible with minimal
risk. This setup will ensure smooth, secure payments while enhancing user
confidence in the platform’s reliability.
● Scalability:
The architecture of the Waterway system is designed to be scalable, allowing it to
accommodate a growing number of users as the platform gains popularity. By
implementing load balancing and database optimization, the system can maintain
performance even as user traffic increases, thus ensuring long-term viability and
adaptability.
Operational Feasibility
Page 14
Operational feasibility assesses whether the system can meet the needs of both users and
administrators efficiently.
● User Adoption:
With a rising demand for online booking systems in various transportation sectors,
the Waterway project taps into an underserved market in the boating industry. An
online seat reservation platform for boats not only simplifies the booking experience
but also enhances convenience, allowing users to book seats from anywhere at any
time. This convenience is expected to boost user adoption significantly, particularly
as users shift away from traditional, manual booking processes.
● Training and Support:
To maximize operational efficiency, administrators and users will receive
comprehensive training on the system. Administrators will be trained to manage
bookings, monitor schedules, and address customer inquiries, while end-users will
benefit from an intuitive user interface designed for ease of use. Detailed
documentation and user guides will be provided to assist users in learning the
platform, which will encourage seamless adoption.
Economic Feasibility
Economic feasibility considers the financial costs of the project versus the anticipated
benefits, providing a clear picture of the system’s ROI.
● Cost Analysis:
The initial investment for the Waterway project includes development costs, server
hosting, and security measures to protect user data. Ongoing expenses such as
system maintenance, support, and updates will be necessary to keep the platform
operational and up-to-date. However, as the system becomes an essential tool for
booking, the initial costs are expected to be offset by the increased convenience and
efficiency it brings to both users and boat operators.
● Return on Investment (ROI):
The Waterway system has a high ROI potential due to its impact on user
engagement and satisfaction. As users prefer the ease of online bookings, the
platform will likely see a steady increase in seat reservations. This could translate
into increased revenue for boat operators who can reach a wider audience, improve
seat occupancy rates, and offer a premium service through the convenience of online
booking. The system will ultimately contribute to better customer loyalty and more
repeat business.
Page 15
● The Agile SDLC model is characterized by its iterative nature, promoting flexibility
and ongoing collaboration among stakeholders.
● This approach enables continuous reassessment of project requirements, ensuring
that the development process is aligned with user needs and market changes.
Advantages
Page 16
● Flexibility: Agile allows for changes in project requirements at any stage, facilitating
quick adaptations to user feedback and new insights.
● Customer Collaboration: Regular engagement with stakeholders fosters better
alignment with user expectations, resulting in a product that meets their needs.
● Faster Delivery: Agile supports incremental releases, allowing users to access
functional features earlier and provide immediate feedback for further iterations.
● Improved Quality: Continuous testing and integration help identify and rectify
defects early, enhancing overall software quality.
Disadvantages
● Scope Creep: The inherent flexibility of Agile can lead to uncontrolled changes,
potentially expanding the project beyond its original scope.
● Less Predictability: The iterative nature makes it difficult to accurately estimate
timeframes and costs, complicating the forecasting of final delivery dates.
● Requires Experienced Team: Agile success relies on effective collaboration and
communication skills among team members, which may not be uniformly available.
These notes summarize the key points regarding the Agile methodology, its benefits, and
challenges, providing a clear understanding of its role in the Waterway project
○ These tools provide features like syntax highlighting, code completion, and
debugging, which streamline the development process.
2.6.1.1. HTML
2.6.1.2. CSS
2.6.1.3. JavaScript
2.6.1.4. jQuery
● Description: jQuery is a fast, small JavaScript library that simplifies HTML document
traversing, event handling, and animation.
● Features: It ensures cross-browser compatibility and simplifies DOM manipulation,
making it easier to work with JavaScript.
2.6.1.4. AJAX
2.6.1.5. Bootstrap
2.6.1.6. PHP
Page 18
2.6.1.7. MySQL
2.6.1.8. XAMPP
2.6.1.9. Composer
2.6.1.10. PHPMailer
2.6.1.11. mPDF
● Description: mPDF is a PHP library that generates PDF files from HTML content.
● Features: It enables the creation of PDF documents dynamically, allowing for the
generation of tickets and reports in the Waterway project.
3. SYSTEM DESIGN
3.1 SYSTEM ARCHITECTURE
Page 20
● Presentation Layer: This layer provides the user interface, developed using HTML,
CSS, and JavaScript. It ensures a responsive and user-friendly experience for end-
users.
● Application Layer: Implemented in PHP, this layer contains the server-side logic
responsible for processing user requests, managing business rules, and interacting
with the data layer. It acts as a bridge between the user interface and the database.
● Data Layer: The MySQL database serves as the data layer, storing essential
information such as user accounts, bookings, routes, and other relevant data
necessary for the application's functionality.
● User Authentication: This module handles user login, registration, and session
management. It ensures secure access to the system, maintaining user data
confidentiality.
● Booking System: This module manages all aspects of the booking process,
including route selection, schedule management, seat selection, and payment
processing. It provides users with an efficient way to reserve seats for their desired
trips.
● Admin Panel: The admin panel is designed for administrators to manage users,
boats, and routes. It also allows the generation of reports for monitoring system
activity and user engagement.
User Authentication
● Registration: Users can create accounts by providing personal details, which are
validated and securely stored in the database, ensuring data integrity and security.
● Login: Users can log in using their credentials. Secure session management is
implemented to maintain user sessions and enhance security.
● Password Management: The system allows users to reset their passwords through
a secure email verification process, promoting user convenience and security.
Reports Generated
Page 21
The Waterway system generates various reports that are crucial for both users and
administrators, including:
● Booking History: Detailed reports on user bookings, including past trips and seat
selections, providing users with a comprehensive view of their activities.
● User Activity: Reports tracking user engagement and interactions with the system,
enabling better understanding of user behavior and preferences.
● Financial Transactions: Reports detailing financial transactions related to bookings
and payments, assisting in financial monitoring and management.
Page 22
● Data Integrity: Ensure accuracy and consistency of data over its lifecycle.
● Data Accessibility: Allow users to retrieve and manipulate data efficiently.
● Data Security: Protect sensitive user information and control access.
3.3.1. NORMALIZATION
To achieve First Normal Form, the database tables are structured such that:
● Primary Key: Each table has a designated primary key, which uniquely identifies
each record in that table. This ensures that there are no duplicate entries and allows
for efficient retrieval of data.
● Atomicity: All entries in a column must be of the same data type, and each column
must hold atomic (indivisible) values. For example, in a Users table, each field (e.g.,
username, email, phone) should contain a single value rather than a list or set of
values.
● Elimination of Repeating Groups: There should be no repeating groups or arrays
within a table. If there are multiple values for a single attribute, they should be moved
to a separate table.
Example: A Bookings table might include columns like booking_id, user_id, boat_id,
and date. Each of these columns would contain single values that define each booking.
To reach Second Normal Form, the database must meet all the requirements of 1NF, plus:
To achieve Third Normal Form, the database must satisfy the requirements of 2NF, along
with:
Example: If the Users table contains a city field and a country field, and country can
be derived from city, it indicates a transitive dependency. To eliminate this, country
should be stored in a separate Countries table, linked to the Users table.
Importance of Normalization
3.3.2.TABLE STRUCTURE
A table is a collection of complete details about a particular subject. Data is organized in
rows and columns, where each row is called a record and each column is called a field. The
data for each record is stored in tables in the backend, which directly link to input forms.
Multiple tables can be linked to input forms, allowing details from different tables to be
collected and displayed in the output. The Waterway project comprises 14 main tables,
detailed as follows
1. Users
2. Boats
3. Routes
4. Route_Stops
5. Schedules
6. Seats
7. Seat_Bookings
8. Route_Stop_Times
9. Payments
10. Cancellation
11. Admin_logs
12. Stop_Pricing
13. Tickets
14. Enquiries
Page 24
1. Users Table
2. Boats Table
3. Routes Table
description:Defines the various routes available for travel, with start and
end locations.
4. Route_Stops Table
description:Lists stops along each route and the distance from the start.
5. Seats Table
Page 26
6. Schedules Table
7. Seat_Bookings Table
Page 27
8. Route_Stops_Times Table
9. Payments Table
A Data Flow Diagram (DFD) is a graphical tool used to depict the flow of information within a
system, illustrating how data enters, moves through, and exits various processes. DFDs are
an essential part of system design, allowing stakeholders to visualize the functional aspects
of a system without focusing on technical implementation details. By highlighting data
sources, data processes, and storage points, DFDs offer a structured way to analyze the
interactions between different components of a system, making them invaluable in the
planning and design stages.
2. Identifying Data Requirements: DFDs help map out the data flow, identifying
essential inputs, outputs, and data processing requirements. This helps with effective
database design and software development by outlining what data the system needs
to function.
3. Facilitating Communication: DFDs act as a universal language between technical
and non-technical stakeholders. This shared understanding helps teams align on
system requirements and design goals.
4. Spotting Inefficiencies: By visually representing data flows, DFDs can reveal
inefficiencies or redundancies, enabling the team to optimize workflows and improve
system performance.
5. Documenting System Processes: DFDs serve as documentation that is valuable
for future reference, providing insight into the system's processes and supporting
easier maintenance and updates.
Overall, DFDs play a critical role in system analysis and design by clarifying data flow,
refining requirements, and enhancing the communication and efficiency of system
development.
Page 31
● Data Stores:
○ Represented by open-ended rectangles or parallel lines.
○ Indicate where data is stored within the system.
○ Must connect to processes that read from or write to them.
● External Entities:
○ Depicted as rectangles or ovals.
○ Represent sources or destinations of data outside the system (e.g., users,
external systems).
○ Should be labeled clearly to indicate their role.
● Leveling:
○ DFDs can be decomposed into multiple levels (Level 0, Level 1, etc.) to show
more detail.
○ Level 0 DFD shows the entire system as a single process.
○ Level 1 DFD breaks down Level 0 processes into sub-processes, further
detailing data flows.
● No Loops or Cycles:
○ DFDs should not contain loops; data should flow in one direction without
returning to a previous step.
● Clarity and Simplicity:
○ DFDs should be simple and easy to understand, avoiding unnecessary
complexity.
○ Each diagram should focus on a specific part of the system to maintain clarity.
● Mapping User Interactions: Illustrating how users interact with the system when
making bookings, managing profiles, and processing payments.
● Defining System Processes: Clearly outlining the processes involved in seat
booking, payment processing, and user management.
● Supporting System Design: Providing a foundation for designing database
structures and software architecture by identifying data inputs and outputs.
● Enhancing Collaboration: Facilitating discussions among team members and
stakeholders, ensuring a shared understanding of the system's functionality.
Each component in a DFD is labelled with a descriptive name. Process name are further
identified with number. Context level DFD is draw first. Then the process is decomposed into
Page 33
several elementary levels and is represented in the order of importance. A DFD describes
what data flow (logical) rather than how they are processed, so it does not depend on
hardware, software, and data structure or file organization. A DFD methodology is quite
effective; especially when the required design.
These modules can apply to hardware, software or the interface between a user and
a machine. An example of a user interface could include a GUI, a control panel for a
nuclear power plant, or even the cockpit of an aircraft. In systems engineering, all the
inputs and outputs of a system, subsystem, and its components are listed in an
interface control document often as part of the requirements of the engineering
project. The development of a user interface is a unique field.
The user interface design is very important for any application. The interface design
describes how the software communicates within itself, to system that interpreted
with it and with humans who use it. The input design is the process of converting the
user-oriented inputs into the computer-based format. The data is fed into the system
using simple inactive forms. The forms have been supplied with messages so that
the user can enter data without facing any difficulty. They data is validated wherever
it requires in the project. This ensures that only the correct data have been
incorporated into system. The goal of designing input data is to make the automation
as easy and free from errors as possible. For providing a good input design for the
application easy data input and selection features are adopted. The input design
requirements such as user friendliness, consistent format and interactive dialogue for
giving the right messages and help for the user at right are also considered for
development for this project.
Input Design is a part of the overall design. The input methods can be broadly
classified into batch and online. Internal controls must be established for monitoring
the number of inputs and for ensuring that the data are valid. The basic steps
involved in input design are:
The quality of the system input determines the quality of the system output. Input
specifications describe the manner in which data enter the system for processing.
Input design features can ensure the reliability of the system and produce results
from accurate data. The input design also determines whether the user can interact
efficiently with the system. These are the two sample input forms
Page 42
The login input form is a crucial component of the Waterway application, facilitating
user authentication and access to the platform's features. It consists of two primary
input fields: Email and Password, each associated with a label for enhanced
accessibility. The form employs the POST method to securely transmit user
credentials to the loginuser.php script for authentication. It incorporates HTML5
validation attributes to ensure that both fields are filled out before submission, with
error messages displayed for failed login attempts, providing immediate feedback to
the user. Below the form, links are available for users without accounts and those
who have forgotten their passwords, promoting engagement. The form is centered
using CSS Flexbox and features a dynamic gradient background, creating an
engaging visual experience. Styled with a white background, rounded corners, and
subtle shadows, it has a modern appearance that enhances usability. It is
responsive, adapting to various screen sizes, and includes explicit label associations
to improve accessibility. Overall, the login input form serves as a secure gateway for
users to access their accounts, encourages interaction with the platform, and
enhances the user experience through immediate feedback and visual appeal. By
focusing on usability, accessibility, and aesthetics, the form aligns with best practices
in user interface design, making it an essential component of the application.
Page 43
The provided PHP code is a comprehensive management interface for the boats in
the Waterway application, designed specifically for administrators to efficiently
handle boat data. It begins by checking if an admin is logged in, redirecting to the
dashboard if not, ensuring secure access to management features. The code
establishes a database connection for data retrieval and manipulation while
incorporating a logging function to track administrative actions, such as adding,
editing, and deleting boats. Each action is processed via POST requests, utilizing
prepared statements to prevent SQL injection, which enhances security.
The script fetches all boat records and allows for filtering based on boat name,
capacity, and status, improving the user experience by enabling quick searches. The
HTML structure creates a user-friendly interface, featuring forms for adding new
boats and a table displaying existing boats with inline editing capabilities. This layout
facilitates straightforward management tasks, as administrators can easily edit or
delete records.
Additionally, the use of Bootstrap for styling ensures that the interface is visually
appealing and responsive, adjusting seamlessly across devices. Error reporting is
enabled to aid debugging during development but should be disabled in a production
environment for security reasons. Input sanitization is also implemented, and only
logged-in administrators can access the page, further enhancing security. Overall,
this management code for the Waterway application is a well-structured solution that
empowers administrators to maintain accurate and organized boat records
efficiently.
Page 44
A quality output is one, which meets the requirements of end user and presents the
information clearly. In any system result of processing are communicated to the user
and to the other system through outputs. In the output design it is determined how
the information is to be displayed for immediate need. It is the most important and
direct source information is to the user. Efficient and intelligent output design
improves the system’s relationships with the user and helps in decision -making. The
objective of the output design is to convey the information of all the past activities,
current status and to emphasis important events. The output generally refers to the
results and information that is generated from the system. Outputs from computers
are required primarily to communicate the results of processing to the users. Output
also provides a means of storage by copying the results for later reference in
consultation. There is a chance that some of the end users will not actually operate
the input data or information through workstations, but will see the output from the
system.
Output Definition takes into account the type of output contents, its frequency and its
volume, the appropriate output media is determined for output. Once the media is
chosen, the detail specification of output documents are carried out. The nature of
output required from the proposed system is determined during logical design stage.
It takes the outline of the output from the logical design and produces output as
specified during the logical design phase.
In a project, when designing the output, the system analyst must accomplish the
following:
• Decide whether to display, print, speak the information and select the output
medium.
Thus by following the above specifications, a high quality output can be generated
Example for outputs generated in this project:
Page 45
This line chart is generated for admin .This line chart gives which stops are mostly
Booked by users .Here Lake A is mostly booked between 01-01-2024 and 31-12-2024
That gives assumption most people are from that stop and need more boats in
that route
Page 46
4. IMPLEMENTATION
Profile.php
<?php
session_start();
// Enable error reporting for debugging (remove in production)
//error_reporting(E_ALL);
//ini_set('display_errors', 1);
// Initialize $user_data
$user_data = [];
$stmt_user->bind_param("i", $user_id);
if (!$stmt_user->execute()) {
die("Error executing query: " . $stmt_user->error);
}
$result_user = $stmt_user->get_result();
if ($result_user->num_rows > 0) {
$user_data = $result_user->fetch_assoc();
}
$stmt_user->close();
$password = trim($_POST['password']);
$confirm_password = trim($_POST['confirm_password']);
// Basic validation
if (empty($name) || empty($email)) {
$update_error = "Name and Email are required.";
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$update_error = "Invalid email format.";
} elseif (!empty($password) && $password !== $confirm_password) {
$update_error = "Passwords do not match.";
} else {
// Prepare the SQL statement
if (!empty($password)) {
// If password is being updated
$sql_update = "UPDATE Users SET name = ?, email = ?, phone_number
= ?, address = ?, password = ? WHERE user_id = ?";
$stmt = $conn->prepare($sql_update);
// Hash the password before storing
$hashed_password = password_hash($password, PASSWORD_BCRYPT);
$stmt->bind_param("sssssi", $name, $email, $phone_number, $address,
$hashed_password, $user_id);
} else {
// If password is not being updated
$sql_update = "UPDATE Users SET name = ?, email = ?, phone_number
= ?, address = ? WHERE user_id = ?";
$stmt = $conn->prepare($sql_update);
$stmt->bind_param("ssssi", $name, $email, $phone_number, $address,
$user_id);
}
if ($stmt->execute()) {
$update_success = "Profile updated successfully.";
// Refresh user data
$user_data['name'] = htmlspecialchars($name);
$user_data['email'] = htmlspecialchars($email);
$user_data['phone_number'] = htmlspecialchars($phone_number);
$user_data['address'] = htmlspecialchars($address);
// Update session variables if necessary
$_SESSION['user_name'] = $name;
} else {
// Handle errors (e.g., duplicate email)
if ($conn->errno === 1062) { // Duplicate entry
$update_error = "Email already exists.";
} else {
Page 50
$stmt->close();
}
}
$stmt_tickets = $conn->prepare($sql_tickets);
$stmt_tickets->bind_param("i", $user_id);
if (!$stmt_tickets->execute()) {
error_log("SQL Execute Error (Tickets): " . $stmt_tickets->error);
die("An error occurred while fetching your tickets. Please try again later.");
}
$result_tickets = $stmt_tickets->get_result();
// Fetch user's enquiries
$sql_enquiries = "SELECT enquiry_id, name, message, created_at, response,
response_created_at FROM Enquiries WHERE user_id = ?";
$stmt_enquiries = $conn->prepare($sql_enquiries);
$stmt_enquiries->bind_param("i", $user_id);
if (!$stmt_enquiries->execute()) {
error_log("SQL Execute Error (Enquiries): " . $stmt_enquiries->error);
die("An error occurred while fetching your enquiries. Please try again later.");
}
$result_enquiries = $stmt_enquiries->get_result();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>User Profile</title>
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/custom.css">
<style>
.container {
Page 52
.nav-tabs .nav-link.active {
background-color: #f8f9fa;
border-color: #dee2e6 #dee2e6 #fff;
}
.form-section,
.bookings-section {
margin-top: 20px;
padding: 20px;
border-radius: 8px; /* Added rounded corners */
background-color: #f8f9fa; /* Light background for sections */
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); /* Subtle shadow */
}
.table-responsive {
margin-top: 20px;
}
.form-group {
margin-bottom: 15px; /* Increase margin for mobile spacing */
}
}
/*enquiry style*/
.direct-chat-msg {
display: flex;
align-items: flex-start; /* Aligns the user icon and message vertically */
margin-bottom: 15px; /* Spacing between messages */
}
.direct-chat-infos {
flex: 1; /* Takes up available space */
}
.direct-chat-name {
font-weight: bold; /* Makes the username bold */
Page 53
.direct-chat-text {
background-color: #f8f9fa; /* Light background for the message */
border-radius: 5px; /* Rounded corners */
padding: 10px; /* Padding for the message text */
margin-top: 5px; /* Space between name/timestamp and message */
}
.direct-chat-timestamp {
font-size: 0.9em; /* Slightly smaller font for the timestamp */
color: #6c757d; /* Muted color for the timestamp */
}
.direct-chat-msg i {
margin-right: 10px; /* Space between icon and name */
color: #007bff; /* Color for the user icon */
}
.response-text {
background-color: #d1ecf1; /* Light background for the response */
border-radius: 5px; /* Rounded corners */
padding: 10px; /* Padding for the response text */
margin-top: 5px; /* Space above the response */
}
.response-timestamp {
font-size: 0.9em; /* Smaller font for the response timestamp */
color: #6c757d; /* Muted color for the response timestamp */
}
.user-group {
margin-top: 20px;
border: 1px solid #007bff;
padding: 10px;
border-radius: 5px;
cursor: pointer; /* Cursor changes to pointer on hover */
}
.chat-details {
display: none; /* Hide chat details by default */
margin-top: 10px;
}
Page 54
.notification {
font-weight: bold;
color: red; /* Highlight the notification count */
}
</style>
</head>
<body>
<?php include 'includes/header.php'; ?>
<br><br><br><br>
<div class="container">
<h3 class="mb-4 text-center">User Profile</h3>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="password"><i class="fas fa-lock"></i> New
Password</label>
<input type="password" class="form-control" id="password"
name="password">
</div>
<div class="form-group col-md-6">
<label for="confirm_password"><i class="fas fa-lock"></i>
Confirm Password</label>
<input type="password" class="form-control"
id="confirm_password" name="confirm_password">
</div>
</div>
<button type="submit" name="update_profile" class="btn btn-
primary">Update Profile</button>
</form>
</div>
</div>
</div>
<?php else: ?>
<p class="alert alert-warning">No enquiries found.</p>
<?php endif; ?>
</div>
</div>
<br><br>
</body>
</html>
Page 59
5.TESTING
The objective of system testing is to ensure that all individual programs are working
as expected, that the programs link together to meet the requirements specified and
to ensure that the computer system and the associated clerical and other procedures
work together. The initial phase of system testing is the responsibility of the analyst
who determines what conditions are to be tested, generates test data, produced a
schedule of expected results, runs the tests and compares the computer produced
results with the expected results with the expected results. The analyst may also be
involved in procedures testing. When the analyst is satisfied that the system is
working properly, he hands it over to the users for testing. The importance of system
testing by the user must be stressed. Ultimately it is the user must verify the system
and give the go-ahead.
During testing, the system is used experimentally to ensure that the software does
not fail, i.e., that it will run according to its specifications and in the way users expect
it to. Special test data is input for processing (test plan) and the results are examined
to locate unexpected results. A limited number of users may also be allowed to use
the system so analysts can see whether they try to use it in unexpected ways. It is
preferably to find these surprises before the organization implements the system and
depends on it. In many organizations, testing is performed by person other than
those who write the original programs. Using persons who do not know how certain
parts were designed or programmed ensures more complete and unbiased testing
and more reliable software.
Page 60
Parallel running is often regarded as the final phase of system testing. Since he
parallel operation of two systems is very demanding in terms of user resources it
should be embarked on only if the user is satisfied with the results of testing -- it
should not be started if problems are known to exist. Testing is the major quality
control measure during software development. Its basic function is to detect errors in
the software. Thus the goal of testing is to uncover requirement design and coding
errors in the program. Testing is the process of correcting a program with intends of
finding an error. Different types of testing are
Unit Testing
Record added
We have continued Unit Testing from the starting of the coding phase
itself. Whenever we completed one small sub module, some amount of
testing was done based on the requirements to see if the functionality is
aligned to the gathered requirements.
Page 62
other hand, black-box testing has been said to be "like a walk in a dark
labyrinth without a flashlight." Because they do not examine the source
code, there are situations when a tester writes many test cases to check
something that could have been tested by only one test case, or leaves
some parts of the program untested.
Page 63
Integration testing
In the Black Box testing tester only knows the input that can be given to
the system and what output the system should give. In other words, the
basis of deciding test cases in functional testing is requirements or
specifications of the system or module. This form of testing is also called
functional or behavioural testing. One advantage of the black box
technique is that no programming knowledge is required. Whatever
biases the programmers may have had, the tester likely has a different
set and may emphasize different areas of functionality. On the
White-box testing (also known as clear box testing, glass box testing,
and transparent box testing and structural testing) is a method of testing
software that tests internal structures or workings of an application, as
opposed to its functionality. In white-box testing an internal perspective
of the system, as well as programming skills, are used to design test
cases. The tester chooses inputs to exercise paths through the code and
Page 65
Email Validation
Password Validation
Page 67
UAT is performed after System Testing is done and all or most of the
major defects have been fixed. This testing is to be conducted in the
final stage of Software Development Life Cycle (SDLC) prior to system
being delivered to a live environment. UAT users or end users are
concentrating on end to end scenarios & typically involves running a
suite of tests on the completed system.
Page 68
1 Run application Login screen is displayed. Login screen has been Pass
and navigate to A field for entering email, a displayed, fields for
login screen field for entering password, entering email and
and a button to submit password together with a
should be present log in button is available.
3 Enter a valid email User must successfully User successfully log in Pass
and password and login to the WebPages. and navigate into home
press the button page
Page 69
6.CONCLUSION
The project not only facilitates the easy booking of tickets but also
integrates essential features such as payment processing, schedule
management, and user administration, making it a comprehensive
solution for both customers and operators. The incorporation of robust
database management allows for real-time updates and accurate record-
keeping, which is crucial for maintaining trust and satisfaction among
users.
In summary, the Waterway project not only meets its initial objectives but
also sets the foundation for future enhancements and scalability,
ensuring that it can evolve with changing user needs and technological
advancements. The project represents a significant step forward in
modernizing boat transportation and making it more accessible to a
broader audience.
The implementation of a mobile application will allow users to access their tickets digitally.
This feature would enable passengers to scan QR codes or barcodes on their mobile
devices for quick and efficient ticket verification at boarding points. By reducing the reliance
on physical tickets, this enhancement promotes a more convenient and environmentally
friendly approach to ticketing.
Real-time Notifications
Enhancing the system with real-time notifications will keep users informed about critical
updates, including booking confirmations, cancellations, and changes in schedules. This
feature will improve user engagement by ensuring that passengers are always updated,
reducing uncertainty, and enhancing their overall experience with the platform.
Developing a responsive mobile interface will facilitate seamless access to all features of the
platform on smartphones and tablets. By optimizing the user experience for mobile devices,
Waterway aims to cater to the increasing number of users who prefer accessing services on
the go. This enhancement will ensure that functionalities such as booking, payment, and
customer support are easily navigable on smaller screens.
Payment Integration
Incorporating multiple payment gateways will provide users with more options for secure
transactions. This enhancement aims to accommodate various payment preferences,
ensuring a smoother and more flexible payment process for users. By supporting multiple
Page 72
payment methods, Waterway can enhance user confidence in the system and potentially
increase conversion rates.
Advanced Analytics
Utilizing data analytics will allow the Waterway project to gain insights into user behavior and
booking patterns. This information can be invaluable in optimizing routes, pricing strategies,
and marketing efforts. By understanding user preferences and trends, the project can make
data-driven decisions to enhance operational efficiency and user satisfaction.
Strengthening security protocols is essential to protect user data and ensure safe
transactions. Future enhancements will focus on implementing advanced security measures,
including encryption, secure authentication processes, and regular security audits. By
prioritizing user security, the Waterway project can build trust and credibility among its users.
7.REFERENCES
8.APPENDIX
8.1 SCREENSHOTS
Home page
Page 75
view schedules
About waterway
Page 76
Testimonials
Image Gallery
Page 77
Enquiries
Page 78
Signup Validation
Reset password
Admin Dashboard
Page 81
Adding a Boat
Page 82
Boat Added
Adding Route
Page 83
Route Added
Line, Bar, Pie chart reports for all Entities in Booking(Line Graph)
Note: User can Cancel Ticket,Download,Mail as Pdf from Here Amount will be Refunded
Facility to cancel unwanted Seats only and keep others
Note:Site is Worked mostly On Seat View so That No Seat wastage occurs Even if it is
Reserved for a Short period it is made available and unavailable depending on actual
Booking