Professional Documents
Culture Documents
kousalya_yogaclass - Kousalya DM.
kousalya_yogaclass - Kousalya DM.
A PROJECT REPORT
ON
CERTIFICATE
Signature of Examiners:
1)……………………
2)……………………
ACKNOWLEDGEMENT
I express my sincere thanks to our beloved Principal Dr. Sudheer Pai K L, for
providing us all the facilities for laboratory and library.
1.3 Objectives
1.5 Modules
Chapter 11 Testing.......................................................................................64
11.1 Testing purpose
11.2 Levels of testing
INTRODUCTION
CHAPTER-1
INTRODUCTION
1.1 OVERVIEW
In today's fast-paced world, maintaining a healthy mind and body is of utmost importance. Yoga
has emerged as a popular practice that promotes physical fitness, mental well-being, and spiritual
growth. With an increasing number of people embracing yoga as a way of life, it becomes essential to
have an efficient and user-friendly system to manage yoga class registrations.
The Yoga Class Registration System project aims to develop a comprehensive software
application that simplifies the process of registering for yoga classes, streamlines administrative tasks,
and enhances the overall experience for both yoga instructors and students. This system will provide
a centralized platform where individuals can explore different yoga classes, register for their preferred
sessions, and manage their attendance.
A yoga class registration system is a software application that enables users to sign up for yoga
classes and manage their registrations. It typically allows users to view available classes, choose the
class they want to attend, and provide their personal information to register. The system may also offer
features such as class scheduling, payment processing, and booking confirmations. Users can view
their booking history and make changes to their registrations if necessary.
In addition, an admin panel may be available to manage class schedules, view user data, and
generate reports. Yoga class registration systems can benefit both users and yoga studios. The system
provides users with a convenient and efficient way to sign up for classes and manage their bookings.
For yoga studios, it simplifies the registration process, improves customer experience, and enables
better class management. The system can also provide valuable data insights for studios, allowing
them to optimize their class offerings and make data-driven decisions.
1.3 Objectives
1. Streamlining the registration process : The system allows users to easily view available
classes, select the classes they want to attend, and provide their personal information to register.
2. Improving customer experience: The system provides a user-friendly interface and offer
features such as automatic booking confirmations and reminders to enhance the customer
experience.
3. Facilitating class management: This includes the ability to add and remove classes, set
class capacity limits, and view attendance records.
4. Increasing revenue: The system can help yoga studios increase revenue by enabling online
payment processing and reducing the likelihood of missed appointments due to no-shows.
5. Providing valuable data insights : The system collects and analyzes data on class
attendance, user behavior, and other metrics to provide insights that can help yoga studios
optimize their class offerings and make data-driven decisions.
1. User registration: The system should allow users to create an account with their personal
information, such as name, email address, and password.
2. Class scheduling: The system should allow the yoga studio to add and remove classes, set class
capacity limits, and update class schedules as necessary.
3. Class registration: The system should allow users to view available classes and register for the
classes they want to attend.
4. Payment processing: The system should allow users to make online payments for classes, with
options for different payment methods and secure payment processing.
5. Booking management: The system should allow users to view their booking history and make
changes to their registrations if necessary. The system should also allow the yoga studio to view
attendance records and manage class bookings.
The scope of the project may also include additional features or customizations specific to the
needs of the yoga studio or users. Overall, the scope of the yoga class registration system project should
be defined clearly to ensure the system meets the needs of all stakeholders and is delivered within the
agreed timeframe and budget.
1.5 MODULES
Home Page
About Us Page
Contact Information Page
Submit Inquiries
List All Yoga Classes
Search Yoga Class
View Yoga Class Details
Submit Class Registration Request
SYSTEM
ANALYSIS
CHAPTER-2
SYSTEM ANALYSIS
Systems analysis, is a phase of systems engineering. The principal objective of the systems
analysis phase is the specification of what the system needs to do to meet the requirements of end users.
In the systems design phase, such specifications are converted to a hierarchy of charts that define the
data required and the processes to be carried out on the data so they can be expressed as instructions of
a computer program. Many information systems are implemented with generic software, rather than
with such custom-built programs.
In the existing system all the records are maintained only manually. The disadvantages of the
existing system are:
Manual registration process
Limited class scheduling visibility
Inconvenient payment methods
Lack of automated notifications
Needs manual calculation
Time consuming
Lack of security for the data
The aim of proposed system is to develop a system of improved facilities. This system
overcomes all the limitations of the existing system.
Online registration
Enhanced class scheduling visibility
Convenient payment processing
User management
Greater efficiency
Security of data
Ensures data accuracy
Better service
User friendly and interactive
Overall, the proposed system will offer a more convenient and efficient way for users to sign up for
classes and manage their bookings, while also providing valuable data insights for the yoga studio.
FEASIBILITY
STUDY
CHAPTER-3
Feasibility Study
It is both necessary and prudent to evaluate the feasibility of a project at the earliest possible
time. Months or years of effort, thousands and millions of dollars, and untold professional
embarrassment can be averted if an ill-conceived system is recognized early in the definition phase.
Feasibility and risk analysis are related in many ways. If project risk is great, the feasibility of
producing quality software is reduced. During product engineering, however, we concentrate our
attention on four primary areas of interest.
Logical Design
Logical design pertains to an abstract representation of the data flow, inputs, and outputs of the
system. It describes the inputs (sources), outputs (destinations), databases (data stores), procedures (data
flows) all in a format that meets the user requirements.
While preparing the logical design of a system, the system analyst specifies the user needs at level of
detail that virtually determines the information flow into and out of the system and the required data
sources. Data flow diagram, E-R diagram modeling are used.
Physical Design
Physical design relates to the actual input and output processes of the system. It focuses on how
data is entered into a system, verified, processed, and displayed as output.
It produces the working system by defining the design specification that specifies exactly what the
candidate system does. It is concerned with user interface design, process design, and data design.
It consists of the following steps −
Specifying the input/output media, designing the database, and specifying backup procedures.
Planning system implementation.
Devising a test and implementation plan, and specifying any new hardware and software.
Updating costs, benefits, conversion dates, and system constraints.
requirements
design
implementation
testing
deployment
operations
maintenance
Phases of SDLC
Systems Development Life Cycle is a systematic approach which explicitly breaks down the work
into phases that are required to implement either new or modified Information System.
1. Requirements gathering and analysis: This phase involves gathering information about the
software requirements from stakeholders, such as customers, end-users, and business analysts.
2. Design: In this phase, the software design is created, which includes the overall architecture of
the software, data structures, and interfaces. It has two steps:
High-level design (HLD): It gives the architecture of software products.
Low-level design (LLD): It describes how each and every feature in the product should
work and every component.
4. Testing: The software is thoroughly tested to ensure that it meets the requirements and works
correctly.
5. Deployment: After successful testing, The software is deployed to a production environment and
made available to end-users.
6. Maintenance: This phase includes ongoing support, bug fixes, and updates to the software.
Figure 3.1
SOFTWARE
REQUIREMENTS
CHAPTER-4
SOFTWARE REQUIREMENTS
REQUIREMENT
ANALYSIS
CHAPTER 5
REQUIREMENT ANALYSIS
Figure 5.1
Software requirements specifications establish the basis for an agreement between customers and
contractors or suppliers on how the software product should function (in a market-driven project, these
roles may be played by the marketing and development divisions). Software requirements specification
is a rigorous assessment of requirements before the more specific system design stages, and its goal is
to reduce later redesign. It should also provide a realistic basis for estimating product costs, risks, and
schedules. Used appropriately, software requirements specifications can help prevent software project
failure.
The software requirements specification document lists sufficient and necessary requirements
for the project development. To derive the requirements, the developer needs to have a clear and
thorough understanding of the products under development. This is achieved through detailed and
continuous communications with the project team and customer throughout the software development
process. The SRS may be one of a contract's deliverable data item descriptions or have other forms of
organizationally-mandated content. Typically a SRS is written by a technical writer, a systems architect,
or a software programmer.
ER DIAGRAM
CHAPTER-6
6.1 ER Diagram
Figure 6.1
Level 0:
Figure 6.2
Level 1:
Figure 6.3
Level 2:
Figure 6.4
SOFTWARE
COMPONENTS
CHAPTER-7
SOFTWARE COMPONENTS
PHP is a server-side scripting language designed primarily for web development but also used
as a general-purpose programming language. Originally created by Rasmus Lerdorf in 1994, the PHP
reference implementation is now produced by The PHP Development Team. PHP originally stood for
personal home page but it now stands for the recursive acronym PHP: Hypertext Pre-processor.
Features of PHP
We have learned about PHP and its uses. But what are the features that make PHP popular. Now
that we have a basic understanding of PHP, let us see some of the most striking features of PHP .It is a
very popular language because it is simple and is open-source. There are many convincing reasons for
why you should be using PHP, some of them being:
• It is easy to install and learn.
• It is open-source and therefore free.
• Not only that, but it is fast and secure.
• It runs on various platforms (Windows, Linux, Unix, etc.).
• PHP can access cookies variable and set cookies.
• It supports many protocols, such as HTTP, POP3, LDAP, IMAP, SNMP, NNTP, and
many more.
• It is well-connected with databases and supports a wide range of databases
• Many references and learning materials are available for PHP are available over the
internet.
Being a server-side scripting language (unlike JavaScript, which is a clientside scripting
language), it is used to manage the dynamic and interactive content of a website and is
executed on the server-side. PHP is fast and easy to learn. It can be embedded in HTML,
making it easier to add functionalities without needing to call external files or data as it can be
easily connected with a wide range of databases.
PHP has something to offer everybody- it is extremely simple and friendly for beginners, and
it has lots of features for professionals. Over the years, the role of PHP has shifted, and it has
now become one of the most popular programming languages in the world.
PHP is specifically designed for web development. It allows developers to create dynamic and
interactive web pages by embedding PHP code within HTML.
PHP syntax is similar to c and Perl. It offers a wide range of features, including support for
variables, arrays, functions, conditionals, loops, object-oriented programming, database
integration, file handling and more.
PHP has numerous frameworks that provide a structural approach to web development. Some
popular frameworks include Laravel, Symfony, Codelgniter, and CakePHP.
Cascading Style Sheets, fondly referred to as CSS, is a simply designed language intended to
simplify the process of making web pages presentable. CSS allows you to styles to web pages. More
importantly, CSS enables you to do this independent of the
HTML that makes up each web page. It describes how a webpage should look: it prescribes
colors, fonts, spacing, and much more. In short, you can make your website look however you want.
CSS lets developers and designers define how it behaves, including how elements are positioned in
the browser. While html uses tags, CSS uses rulesets. CSS is easy to learn and understand, but it
provides powerful control over the presentation of an HTML document.
• Easy Maintenance: To make a global change simply change the style, and all elements in all the
webpages will be updated automatically.
• Search Engines: CSS is considered a clean coding technique, which means search engines won’t
have to struggle to “read” its content.
• Superior styles to HTML: CSS has a much wider array of attributes than HTML, so you can give a
far better look to your HTML page in comparison to HTML attributes.
• Offline Browsing: CSS can store web applications locally with the help of an offline cache. Using
this we can view offline websites.
• CSS stands for Cascading Style Sheets
• CSS describes how HTML elements are to be displayed on screen, paper, or in other media
• CSS saves a lot of work. It can control the layout of multiple web pages all at once
• External stylesheets are stored in CSS files
CSS comprises style rules that are interpreted by the browser and then applied to the corresponding
elements in your document. A style rule set consists of a selector and declaration block.
1. Selector: A selector in CSS is used to target and select specific HTML elements to apply styles
to.
(via eval), object introspection , and source-code recovery (JavaScript functions store their source text
and can be retrieved through toString()). This section is dedicated to the JavaScript language itself, and
not the parts that are specific to Web pages or other host environments. For information about APIs that
are specific to Web pages, please see web APIs and DOM
• Continues our coverage of JavaScript's key fundamental features, turning our attention to
commonly-encountered types of code blocks such as conditional statements, loops, functions,
and events.
• The object-oriented nature of JavaScript is important to understand if you want to go further
with your knowledge of the language and write more efficient code, therefore we've provided
this module to help you.
• Discusses asynchronous JavaScript, why it is important, and how it can be used to effectively
handle potential blocking operations such as fetching resources from a server.
• Explores what APIs are, and how to use some of the most common APIs you'll come across
often in your development work.
• JavaScript frameworks are an essential part of modern front-end web development, providing
developers with proven tools for building scalable, interactive web applications. This module
gives you some fundamental background knowledge about how client-side frameworks work
and how they fit into your toolset, before moving on to a series of tutorials covering some of
today's most popular ones.
• An overview of the basic syntax and semantics of JavaScript for those coming from other
programming languages to get up to speed.
• Overview of available data structures in JavaScript.
• It provides three different value comparison operations: strict equality using ===, loose
equality using ==, and the Object() is method.
• How different methods that visit a group of object properties one-by-one handle the
enumerability and ownership of properties.
• A closure is the combination of a function and the lexical environment within which that
function was declared.
• JavaScript frameworks are an essential part of modern front-end web development, providing
developers with proven tools for building scalable, interactive web applications. This module
gives you some fundamental background knowledge about how client-side frameworks work
and how they fit into your toolset, before moving on to a series of tutorials covering some of
today's most popular ones.
• JavaScript is a lightweight, interpreted programming language.
• Designed for creating network-centric applications.
• Complementary to and integrated with Java.
HTML stands for Hyper Text Markup Language. It is used to design web pages using a markup
language. HTML is the combination of Hypertext and Markup language. Hypertext defines the link
between web pages. A markup language is used to define the text document within the tag which
defines the structure of web pages. This language is used to annotate (make notes for the computer)
HTML was HTML 1.0, but the first standard version was HTML 2.0, published in 1995. Elements
and Tags: HTML uses predefined tags and elements which tell the browser how to properly display the
content. Remember to include closing tags. If omitted, the browser applies the effect of the opening tag
until the end of the page.
Features of HTML
• It is easy to learn and easy to use.
• It is platform-independent.
• Images, videos, and audio can be added to a web page.
• Hypertext can be added to the text.
• It is a markup language.
• HTML stands for Hyper Text Markup Language
• HTML is the standard markup language for creating Web pages
• HTML describes the structure of a Web page
• HTML consists of a series of elements
• HTML elements tell the browser how to display the content
• HTML elements label pieces of content such as "this is a heading", "this is a paragraph", "this is a
link", etc
"Hypertext" refers to links that connect web pages to one another, either within a single website or
between websites. Links are a fundamental aspect of the Web. By uploading content to the Internet
and linking it to pages created by other people, you become an active participant in the World Wide
Web.
7.5 XAMPP
XAMPP is an abbreviation where X stands for Cross-Platform, A stands for Apache, M stands for
MYSQL and the Ps stands for PHP and Perl, respectively. It is an open-source package of web solutions
that includes Apache distribution for many servers and command-line executables along with modules
such as Apache server, MariaDB, PHP, and Perl.
XAMPP helps a local host or server to test its website and clients via computers and laptops before
releasing it to the main server. It is a platform that furnishes a suitable environment to test and verify
the working of projects based on Apache, Perl, MySQL database, and PHP through the system of the
host itself. Among these technologies, Perl is a programming language used for web
development, PHP is a backend scripting language, and MariaDB is the most vividly used database
developed by MySQL. The detailed description of these components is given below.
o .EXE- It is an extension used to denote executable files making it accessible to install because
an executable file can run on a computer as any normal program.
o .7z - 7zip file- This extension is used to denote compressed files that support multiple data
compression and encryption algorithms. It is more favoured by a formalist, although it requires
working with more complex files.
o .ZIP- This extension supports lossless compression of files. A Zipped file may contain multiple
compressed files. The Deflate algorithm is mainly used for compression of files supported by
this format. The .ZIP files are quite tricky to install as compared to .EXE.
7.6 MySQL
MySQL is the world’s most popular open source database. According to DB-Engines, MySQL
ranks as the second-most-popular database, behind Oracle Database. MySQL powers many of the most
accessed applications, including Facebook, Twitter, Netflix, Uber, Airbnb, Shopify, and Booking.com.
Since MySQL is open source, it includes numerous features developed in close cooperation with users
over more than 25 years. So it’s very likely that your favorite application or programming language is
supported by MySQL Database.
Databases are the essential data repository for all software applications. For example, whenever
someone conducts a web search, logs in to an account, or completes a transaction, a database system is
storing the information so it can be accessed in the future.
A relational database stores data in separate tables rather than putting all the data in one big storeroom.
The database structure is organized into physical files optimized for speed. The logical data model, with
objects such as data tables, views, rows, and columns, offers a flexible programming environment. You
set up rules governing the relationships between different data fields, such as one to one, one to many,
unique, required, or optional, and “pointers” between different tables. The database enforces these rules
so that with a well-designed database your application never sees data that’s inconsistent, duplicated,
orphaned, out of date, or missing.
The “SQL” part of “MySQL” stands for “Structured Query Language.” SQL is the most
common standardized language used to access databases. Depending on your programming
environment, you might enter SQL directly (for example, to generate reports), embed SQL statements
into code written in another language, or use a language-specific API that hides the SQL syntax.
MySQL benefits
MySQL is fast, reliable, scalable, and easy to use. It was originally developed to handle large databases
quickly and has been used in highly demanding production environments for many years.
Although MySQL is under constant development, it offers a rich and useful set of functions. MySQL’s
connectivity, speed, and security make it highly suited for accessing databases on the internet.
• Reliability: MySQL is one of the most mature and widely used databases. It has been tested in
a wide variety of scenarios for more than 25 years, including by many of the world’s largest
companies. Organizations depend on MySQL to run business-critical applications because of its
reliability.
• Scalability: MySQL scales to meet the demands of the most accessed applications. MySQL’s
native replication architecture enables organizations such as Facebook to scale applications to
support billions of users.
• Performance: MySQL HeatWave is faster and less expensive than other database services, as
demonstrated by multiple standard industry benchmarks, including TPC-H, TPC-DS, and CH-
benCHmark.
SCREENSHOTS
CHAPTER-8
SCREENSHOTS
Figure 8.1
8.1.2 Dashboard
Figure 8.2
Figure 8.3
Figure 8.4
8.1.5 Pages
Figure 8.5
Figure 8.6
8.1.7 Inquiries
Figure 8.7
Figure 8.8
Figure 8.9
Figure 8.10
8.2.2 Classes
Figure 8.11
Figure 8.12
Figure 8.13
DATABASE
Chapter-9
DATABASE
Name Type
id int(50)
firstname varchar(250)
middlename Text
lastname varchar(250)
username Text
password Text
avatar Text
last_login Datetime
type tinyint(1)
date_created Datetime
date_updated Datetime
Name Type
id int(30)
category_id int(30)
name Text
description Text
instructor Text
fee float(12,2)
image_path Text
status tinyint(1)
delete_flag tinyint(1)
date_created Datetime
date_updated Datetime
Name Type
id int(30)
meta_field Text
meta_value Text
Name Type
id int(30)
fullname text
contact text
email text
subject text
message text
status tinyint(1)
date_created datetime
date_updated datetime
Name Type
id int(30)
code varchar(50)
class_id int(30)
fullname text
email text
dob date
sex varchar(50)
contact varchar(100)
address text
status tinyint(1)
delete_flag tinyint(1)
date_created datetime
date_updated datetime
Name Type
id int(30)
name text
status tinyint(1)
delete_flag tinyint(1)
date_created datetime
date_updated datetime
SOURCE CODE
Chapter-10
SOURCE CODE
<div class="col-4">
<button type="submit" class="btn btn-primary bg-gradient-purple border-0 btn-block">Sign
In</button>
</div>
<!-- /.col -->
</div>
</form>
<!-- /.social-auth-links -->
<!-- <p class="mb-1">
<a href="forgot-password.html">I forgot my password</a>
</p> -->
</div>
<!-- /.card-body -->
</div>
<!-- /.card -->
</div>
<!-- /.login-box -->
<!-- jQuery -->
<script src="<?= base_url ?>plugins/jquery/jquery.min.js"></script>
<!-- Bootstrap 4 -->
<script src="<?= base_url ?>plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- AdminLTE App -->
<script src="<?= base_url ?>dist/js/adminlte.min.js"></script>
<script>
$(document).ready(function(){ end_loader();
})
</script>
</body>
</html>
echo format_num($categories);
?>
<?php ?>
</span>
</div>
<!-- /.info-box-content -->
</div>
<!-- /.info-box -->
<!-- /.col -->
<div class="col-12 col-sm-6 col-md-6">
<div class="info-box">
<span class="info-box-icon bg-gradient-dark elevation-1"><i class="fas fa-praying-
hands"></i></span>
<div class="info-box-content">
<span class="info-box-text">Active Classes</span>
<span class="info-box-number text-right h5">
<?php
</div>
</div>
been removed') as category_name from `class_list` where delete_flag = 0 order by `name` asc ");
while($row = $qry->fetch_assoc()):
?>
<tr>
<td class="text-center"><?php echo $i++; ?></td>
<td><?php echo date("Y-m-d H:i",strtotime($row['date_created'])) ?></td>
<td class="text-center">
<img src="<?= validate_image($row['image_path']) ?>" alt="" class="img-
thumbnail p-0 border class-img">
</td>
<td class="">
<div style="line-height:1em">
<div><?= $row['name'] ?></div>
<div><small class="text-muted"><?= $row['category_name']
?></small></div>
</div>
</td>
<td class=""><p class="mb-0 truncate-1"><?= strip_tags(htmlspecialchars_decode($row['description']))
?></p></td>
<td class="text-center">
<?php if($row['status'] == 1): ?>
<span class="badge badge-success px-3 rounded-pill">Active</span>
<?php else: ?>
<span class="badge badge-danger px-3 rounded-pill">Inactive</span>
<?php endif; ?>
</td>
<td align="center">
<button type="button" class="btn btn-flat p-1 btn-default btn-sm dropdown- toggle dropdown-icon"
data-toggle="dropdown">
Action
<span class="sr-only">Toggle Dropdown</span>
</button>
<div class="dropdown-menu" role="menu">
<a class="dropdown-item" href="./?page=classes/view_class&id=<?php echo
$row['id'] ?>"><span class="fa fa-eye text-dark"></span> View</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="./?page=classes/manage_class&id=<?php echo $row['id'] ?>"><span
class="fa fa-edit text-primary"></span> Edit</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item delete_data" href="javascript:void(0)" data- id="<?php echo $row['id']
?>"><span class="fa fa-trash text-danger"></span> Delete</a>
</div>
</td>
</tr>
<?php endwhile; ?>
</tbody>
</table>
</div>
</div>
</div>
<script>
$(document).ready(function(){
$('.delete_data').click(function(){
_conf("Are you sure to delete this class permanently?","delete_class",[$(this).attr('data-id')])
})
$('.table').dataTable({ columnDefs: [
{ orderable: false, targets: [2,6] }
],
order:[0,'asc']
});
$('.dataTable td,.dataTable th').addClass('py-1 px-2 align-middle')
})
function delete_class($id){ start_loader();
$.ajax({
url:_base_url_+"classes/Master.php?f=delete_class", method:"POST",
data:{id: $id}, dataType:"json", error:err=>{
console.log(err)
alert_toast("An error occured.",'error'); end_loader();
},
success:function(resp){
if(typeof resp== 'object' && resp.status == 'success'){ location.reload();
}else{
alert_toast("An error occured.",'error'); end_loader();
}
}
})
}
</script>
$('#cimg').attr('src', e.target.result);
$(input).siblings('.custom-file-label').html(input.files[0].name)
}
reader.readAsDataURL(input.files[0]);
}else{
$('#cimg').attr('src', "<?php echo validate_image(isset($image_path) ? $image_path : '') ?>");
$(input).siblings('.custom-file-label').html('Choose file')
}
}
$(document).ready(function(){
$('#category_id').select2({
placeholder: "Please Select Category Here", containerCssClass: 'rounded-0'
})
$('#description').summernote({ height: '20em',
toolbar: [
[ 'style', [ 'style' ] ],
[ 'font', [ 'bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript', 'clear'] ], [ 'fontname', [
'fontname' ] ],
[ 'fontsize', [ 'fontsize' ] ],
[ 'color', [ 'color' ] ],
[ 'para', [ 'ol', 'ul', 'paragraph', 'height' ] ],
[ 'table', [ 'table', 'picture', 'video' ] ],
[ 'view', [ 'undo', 'redo', 'fullscreen', 'help' ] ]
]
})
$('#class-form').submit(function(e){ e.preventDefault();
var _this = $(this)
$('.err-msg').remove(); start_loader();
$.ajax({
url:_base_url_+"classes/Master.php?f=save_class", data: new FormData($(this)[0]),
cache: false, contentType: false, processData: false, method: 'POST', type: 'POST', dataType: 'json',
error:err=>{
console.log(err)
alert_toast("An error occured",'error'); end_loader();
},
success:function(resp){
if(typeof resp =='object' && resp.status == 'success'){
location.replace('./?page=classes/view_class&id='+resp.sid)
}else if(resp.status == 'failed' && !!resp.msg){ var el = $('<div>')
el.addClass("alert alert-danger err-msg").text(resp.msg)
_this.prepend(el) el.show('slow')
$("html, body").scrollTop(0); end_loader()
}else{
alert_toast("An error occured",'error'); end_loader();
console.log(resp)
}
}
})
})
})
</script
<?php
if(isset($_GET['id']) && $_GET['id'] > 0){
$qry = $conn->query("SELECT * from `category_list` where id = '{$_GET['id']}' ");
if($qry->num_rows > 0){
foreach($qry->fetch_assoc() as $k => $v){
$$k=$v;
}
}
}
?>
<div class="content py-5 px-3 bg-gradient-purple">
<h2><b><?= isset($id) ? "Update Category Details" : "New Category Entry" ?></b></h2>
</div>
<div class="row mt-lg-n4 mt-md-n4 justify-content-center">
<div class="col-lg-10 col-md-10 col-sm-12 col-xs-12">
<div class="card rounded-0">
<div class="card-body">
<div class="container-fluid">
<form action="" id="category-form">
<input type="hidden" name ="id" value="<?php echo isset($id) ? $id : '' ?>">
<div class="form-group col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="name" class="control-label">Name</label>
<input type="text" name="name" id="name" class="form-control form-control-sm rounded-0"
value="<?php echo isset($name) ? $name : ''; ?>" required/>
</div>
<div class="form-group col-lg-6 col-md-6 col-sm-12 col-xs-12">
<label for="status" class="control-label">Status</label>
<select name="status" id="status" class="form-control form-control-sm rounded-0"
required="required">
<option value="1" <?= isset($status) && $status == 1 ? 'selected' : ''
?>>Active</option>
<option value="0" <?= isset($status) && $status == 0 ? 'selected' : ''
?>>Inactive</option>
</select>
</div>
</form>
</div>
</div>
<div class="card-header">
<h3 class="card-title">List of Classes</h3>
<div class="card-tools">
<a href="./?page=classes/manage_class" id="create_new" class="btn btn-flat btn-primary bg- gradient-
purple border-0"><span class="fas fa-plus"></span> Create New</a>
</div>
</div>
<div class="card-body">
<div class="container-fluid">
<table class="table table-hover table-striped table-bordered" id="list">
<thead>
<tr>
<th>#</th>
<th>Date Created</th>
<th>Image</th>
<th>Class/Category</th>
<th>Description</th>
<th>Status</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php
$i = 1;
$qry = $conn->query("SELECT *, COALESCE((SELECT `name` from `category_list` where
`class_list`.`category_id` = `category_list`.`id` and `status` = 1 and `delete_flag` = 0), 'Category has
been removed') as category_name from `class_list` where delete_flag = 0 order by `name` asc ");
while($row = $qry->fetch_assoc()):
?>
<tr>
<td class="text-center"><?php echo $i++; ?></td>
<td><?php echo date("Y-m-d H:i",strtotime($row['date_created'])) ?></td
<td class="text-center">
<img src="<?= validate_image($row['image_path']) ?>" alt="" class="img-
thumbnail p-0 border class-img">
</td>
<td class="">
<div style="line-height:1em">
<div><?= $row['name'] ?></div>
<div><small class="text-muted"><?= $row['category_name']
?></small></div>
</div>
</td>
<td class=""><p class="mb-0 truncate-1"><?= strip_tags(htmlspecialchars_decode($row['description']))
?></p></td>
<td class="text-center">
console.log(err)
alert_toast("An error occured.",'error'); end_loader();
},
success:function(resp){
if(typeof resp== 'object' && resp.status == 'success'){ location.reload();
}else{
alert_toast("An error occured.",'error'); end_loader();
}
}
})
}
</script>
})
$('.table').dataTable({ columnDefs: [
{ orderable: false, targets: [5] }
],
order:[0,'asc']
});
$('.dataTable td,.dataTable th').addClass('py-1 px-2 align-middle')
})
function delete_registration($id){ start_loader();
$.ajax({
url:_base_url_+"classes/Master.php?f=delete_registration", method:"POST",
data:{id: $id}, dataType:"json", error:err=>{
console.log(err)
alert_toast("An error occured.",'error'); end_loader();
},
success:function(resp){
if(typeof resp== 'object' && resp.status == 'success'){ location.reload();
}else{
alert_toast("An error occured.",'error'); end_loader();
}
}
})
}
</script>
<section class="py-3">
<div class="container">
<div class="row">
<div class="col-md-12">
<div id="carouselExampleControls" class="carousel slide bg-dark" data-ride="carousel">
<div class="carousel-inner">
<?php
$upload_path = "uploads/banner"; if(is_dir(base_app.$upload_path)):
$file= scandir(base_app.$upload_path);
$_i = 0;
foreach($file as $img): if(in_array($img,array('.','..')))
continue;
$_i++;
?>
<div class="carousel-item h-100 <?php echo $_i == 1 ? "active" : '' ?>">
<img src="<?php echo validate_image($upload_path.'/'.$img) ?>" class="d-block w- 100 h-100"
<section class="py-5">
<div class="container">
<div class="card rounded-0">
<div class="card-body">
<?= htmlspecialchars_decode(file_get_contents('./about.html')) ?>
</div>
</div>
</div>
</section>
<style>
.carousel-item>img{
object-fit:cover !important;
}
#carouselExampleControls .carousel-inner{ height:25em !important;
}
</style>
<div class="container">
<div class="content">
<div id="carouselExampleControls" class="carousel slide bg-dark" data-ride="carousel">
<div class="carousel-inner">
<?php
$upload_path = "uploads/banner"; if(is_dir(base_app.$upload_path)):
$file= scandir(base_app.$upload_path);
$_i = 0;
foreach($file as $img): if(in_array($img,array('.','..')))
continue;
$_i++;
?>
<div class="carousel-item h-100 <?php echo $_i == 1 ? "active" : '' ?>">
<img src="<?php echo validate_image($upload_path.'/'.$img) ?>" class="d-block w- 100 h-100"
alt="<?php echo $img ?>">
</div>
<?php endforeach; ?>
<?php endif; ?>
</div>
<button class="carousel-control-prev" type="button" data-target="#carouselExampleControls" data-
slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-target="#carouselExampleControls" data-
slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
</div>
<div class="row mt-lg-n4 mt-md-n4 justify-content-center">
<div class="col-lg-5 col-md-5 col-sm-12 col-xs-12 mb-3">
<div class="card rounded-0">
<div class="card-body">
<h3 class="text-center"><b>Contact Us</b></h3>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="form-group">
<label for="subject" class="control-label">Subject</label>
<input type="text" name="subject" id="subject" class="form-control form- control-sm rounded-0">
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="form-group">
<label for="message" class="control-label">Message</label>
<textarea rows="3" name="message" id="message" class="form-control form- control-sm rounded-
0"></textarea>
</div>
</div>
</div>
<div class="row justify-content-center">
<div class="col-lg-6 col-md-8 col-sm-12 col-xs-12">
<button class="btn btn-primary border-0 btn-block rounded-pill btn-lg bg- gradient-purple"><i class="fa
fa-paper-plane"></i> Send Message</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<script>
$(function(){
$('#inquiry-form').submit(function(e){ e.preventDefault();
var _this = $(this)
$('.err-msg').remove(); start_loader();
$.ajax({
url:_base_url_+"classes/Master.php?f=save_inquiry", data: new FormData($(this)[0]),
cache: false, contentType: false, processData: false,
method: 'POST', type: 'POST', dataType: 'json', error:err=>{
console.log(err)
alert_toast("An error occured",'error'); end_loader();
},
success:function(resp){
if(typeof resp =='object' && resp.status == 'success'){ location.reload()
}else if(resp.status == 'failed' && !!resp.msg){ var el = $('<div>')
el.addClass("alert alert-danger err-msg").text(resp.msg)
_this.prepend(el) el.show('slow')
$("html, body").scrollTop(0); end_loader()
}else{
alert_toast("An error occured",'error'); end_loader();
console.log(resp)
}
}
})
})
})
</script>
</div>
<script>
$(function(){
$('.summernote').summernote({ height: '30em',
toolbar: [
[ 'style', [ 'style' ] ],
[ 'font', [ 'bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript', 'clear'] ], [ 'fontname', [
'fontname' ] ],
[ 'fontsize', [ 'fontsize' ] ],
[ 'color', [ 'color' ] ],
[ 'para', [ 'ol', 'ul', 'paragraph', 'height' ] ],
[ 'table', [ 'table', 'picture', 'video' ] ],
[ 'view', [ 'undo', 'redo', 'fullscreen', 'help' ] ]
]
})
})
</script>
TESTING
CHAPTER-11
TESTING
Software Testing has different goals and objectives. The major objectives of Software testing
areas are as follows:
Finding defects which may get created by the programmer while developing the software.
To prevent defects.
To make sure that the end result meets the business and user requirements.
To ensure that it satisfies the BRS that is Business Requirement Specification and SRS that
is System Requirement Specifications.
To gain the confidence of the customers by providing the quality product.
Software testing is performed to verify that the completed software package functions
according to the expectations defined by the requirements/specifications. The overall objective
to not to find every software bug that exists, but to uncover situations that could negatively
impact the customer, usability and/or maintainability.
From the module level to the application level, this article defines the different types of testing.
Depending upon the purpose for testing and the software requirements/specs,a combination of
testing methodologies is applied.
1. Unit Testing
2. Integration Testing
It is a level of the software testing process where individual units are combined and tested as a
group. The purpose of this level of testing is to expose faults in the interaction between
integrated units.
3. System Testing
4. Acceptance Testing
It is a level of the software testing process where a system is tested for acceptability. The
purpose of this test is to evaluate the system’s compliance with the business requirements and
assess whether it is acceptable for delivery.
Figure 11.1
Internal system design is not considered in this type of testing. Tests are based on
requirements and functionality. This method is named so because the software
program, in the eyes of the tester, is like a black box; inside which one cannot
see. Black box testing is a testing technique that ignores the internal mechanism
of the system and focuses on the output generated against any input and execution
of the system. It is also called functional testing.
VALIDATION
CHAPTER-12
VALIDATION
Validation is process of examining whether or not the software satisfies the user requirements.
It is carried out at the end of the SDLC. If the software matches requirements for which it was made, it
is validated.
• Validation ensures the product under development is as per the user requirements.
• Validation answers the question - "Are we developing the product which attempts that entire user
needs from this software?"
• Validation emphasizes on user requirements.
Verification is the process of confirming if the software is meeting the business requirements,
and is developed adhering to the proper specifications and methodologies.
• Verification ensures the product being developed is according to design specifications.
• Verification answers the question- "Are we developing this product by firmly following all design
specifications?"
• Verifications concentrate on the design and system specifications. Targets of the test are • Errors-
These are actual coding mistakes made by developers. In addition, there is a difference in output of
software and desired output, is considered as an error.
• Fault-When error exists fault occurs. A fault, also known as a bug, is a result of an error which can
cause system to fail.
• Failure-Failure is said to be the inability of the system to perform the desired task. Failure occurs when
fault exists in the system.
The process of evaluating software during the development process or at the end of the
development process to determine whether it satisfies specified business requirements. Validation
Testing ensures that the product actually meets the client's needs. It can also be defined as to
demonstrate that the product fulfils its intended use when deployed on appropriate user requirement .
FUTURE
ENHANCEMENT
Chapter -13
FUTURE ENHANCEMENT
In the future, there are several enhancements that could be implemented to improve a yoga
class registration system. Here are some ideas:
Waitlist Management: Implement a waitlist feature that allows users to join a waitlist when a
class is fully booked. If a spot becomes available due to a cancellation, the system can automatically
notify the next person on the waitlist, offering them the opportunity to register.
Waitlist Integration with Calendar: Integrate the waitlist feature with popular calendar
applications, such as Google Calendar or iCal. This allows participants to automatically add their
waitlisted classes to their personal calendars and receive reminders about their waitlist status.
Class Ratings and Feedback: Enable participants to provide ratings and feedback for the
classes they attend. This feedback can help improve the overall quality of the classes and provide
valuable insights for both instructors and other potential participants.
Customized User Profiles: Allow users to create personalized profiles within the registration
system. Participants can provide information such as their fitness level, preferences for specific yoga
styles or instructors, and any relevant medical conditions or injuries. This data can be used to suggest
suitable classes and provide tailored recommendations for each individual.
CONCLUSION
CHAPTER-14
CONCLUSION
In conclusion, implementing a yoga class registration system offers numerous benefits and
improvements for both yoga instructors and participants. The system streamlines the registration
process, making it efficient and convenient for individuals to sign up for classes. By automating the
registration process, instructors can save time and focus on delivering high-quality yoga sessions. The
registration system provides participants with a user-friendly platform to browse and select from a
variety of yoga classes based on their preferences, schedules, and skill levels. It allows them to easily
view class availability, register for classes in advance, and receive automated reminders to ensure they
don't miss any sessions. This enhances the overall experience for participants by providing them with
flexibility and control over their yoga practice.
Moreover, the yoga class registration system enables instructors to effectively manage class
sizes, ensuring that they can maintain an optimal student-to-teacher ratio for a personalized experience.
Additionally, the registration system facilitates secure payment processing, eliminating the need for
manual handling of cash or checks. Participants can make online payments easily and securely,
providing a hassle-free transaction experience for both parties.
Overall, the implementation of a yoga class registration system enhances the efficiency,
convenience, and overall experience for both yoga instructors and participants. It simplifies the
registration process, improves communication, and provides valuable data insights, ultimately
contributing to the growth and success of the yoga community.
BIBLIOGRAPHY
BIBLIOGRAPHY
Websites
1. http://www.w3school.org- PHP Tutorial
2. www.freecodecamp.org-free PHP Tutorial
3. www.tutorialspoint.com-PHP Tutorial
4. http://github.com
5. http://www.codeacademy.com
6. http://www.geeksforgeeks.or