Kumite Scoreboard
Kumite Scoreboard
A Main-Project Report
Submitted for partial fulfillment for the award of the degree of
Master of Science in Information Technology
Submitted by
M. DEEPAK BELGIN (A22MIT07)
Under the Guidance of
Dr. A. NIRMALA M.C.A., M.Phil., Ph.D.,
Assistant Professor, Post Graduate Department of Computer Applications
1
CERTIFICATE
KUMITE SCOREBOARD
Being submitted to
ST. JOSEPH’S COLLEGE OF ARTS AND SCIENCE (AUTONOMOUS),
(Affiliated to Annamalai University – Chidambaram)
Submitted By
M. DEEPAK BELGIN (A22MIT07)
For the partial Fulfillment for the award of degree of
Master of Science in Information Technology
Is a bonafide record of work carried out by him,
Under my guidance and supervision.
Examiners:
1._____________________
2._____________________
2
ACKNOWLEDGEMENT
First and Foremost, I thank God, the Almighty, for the showering his kindness
and blessings to complete this project successfully.
3
CONTENT
1 ABSTRACT 5
2 SYSTEM STUDY 6
3 SOFTWARE DESCRIPITION 7
4 SYSTEM ANALYSIS 16
5 PROJECT DESCRIPITION 18
6 APPENDICES 20
6.1 CODING
6.2 SCREENSHOT
7 CONCLUSION 59
8 REFERENCE 60
4
ABSTRACT
Furthermore, the dynamic scoreboard interface transforms the way in which match
information is presented, with real-time updates providing instant feedback on scores and
match progress. This feature not only enhances the viewing experience for spectators but also
ensures fairness and transparency throughout the competition. Additionally, the scoreboard's
compatibility with large screens makes it an ideal centralized for tournament venues,
captivating audiences and creating an immersive atmosphere.
5
SYSTEM STUDY
Hard Disk : 32 GB
RAM : 128 MB
Processor : Any Pentium version
The software requirements deal with analysis of the software and operating
system and the tools are essential for the project.
6
SOFTWARE DESCRIPTION
3.1.1 HTML
The primary markup language used to create web pages and other content that can be
seen in a web browser is called Hyper Text Markup Language (HTML).
HTML is written as HTML elements, which are tags contained in angle brackets (like
html>), within the text of a web page. Although some HTML tags, like "img" indicate empty
components and are therefore not paired, they are most frequently used in pairs, like "h1" and
"/h1". The start tag comes first in a pair, and the end tag comes second (they are also called
opening tags and closing tags). Web designers have the option of inserting text, extra tags,
comments, and other text-based material in between these tags.
Cailliau, a CERN data systems engineer, worked together on a joint funding proposal,
but CERN did not formally embrace the project. He mentioned "some of the various places in
which hypertext is used" in his 1990 diary, placing an encyclopaedia at the top.
The earliest description of HTML that was made available to the general public was a
document titled "HTML Tags," which Berners-Lee initially mentioned online in late 1991. It
outlines the first, rather straightforward design of HTML, which consists of 18 elements.
These were heavily influenced by SGM guid, a proprietary SGML-based documentation
format at CERN, with the exception of the hyperlink tag. In HTML 4, eleven of these
components are still present.
Online browsers employ the markup language known as Hyper Text Markup
Language (HTML) to decipher and combine text, graphics, and other content into visually or
aurally appealing web pages. Every piece of HTML markup has default properties that are set
7
by the browser, but the web page designer can also use CSS to change or improve these
properties.
Many of the text elements can be found in the 1988 ISO technical report TR 9537
Techniques for using SGML, which also discusses the features of early text formatting
languages. An example of one of these languages is the RUNOFF command, which was
created in the early 1960s for the CTSS (Compatible Time-Sharing System) operating
system. These formatting commands were derived from the commands used by typesetters to
manually format documents. The SGML idea of generic markup, however, is based on
elements (nested annotated ranges with attributes) rather of only print effects, with the
structure and markup being separated. HTML has gradually evolved in this direction with
CSS.
Berners-Lee believed that HTML was an SGML application. With the release of the
first HTML specification proposal in the middle of 1993, "Hypertext Markup Language
(HTML)" Internet-Draft by Berners-Lee and Dan Connolly, which included an SGML
Document Type Definition to define the grammar, it was formally established as such by the
Internet Engineering TaskForce (IETF). The proposal, which was noteworthy for
acknowledging the NCSA Mosaic browser's unique tag for embedding in-line images and
reflecting the IETF's philosophy of basing standards on successful prototypes, expired after
six months. Similar to this, Dave Raggett's competing Internet-Draft from the latter part of
1993, "HTML+ (Hypertext Markup Format)," advocated standardising already-used elements
like tables and fill-in forms.
Following the expiration of the HTML and HTML+ draughts in early 1994, the IETF
established an HTML Working Group, which finished "HTML 2.0" in 1995, the first HTML
definition meant to be recognised as a standard upon which subsequent implementations
should be based.
Conflicting interests put a stop to further development under the IETF's direction.
Since 1996, the World Wide Web Consortium has maintained the HTML specifications with
assistance from companies who sell commercial software (W3C). ISO/IEC 15445:2000,
however, was the year that HTML also became a global standard. Later errata for HTML
4.01 were released through 2001. HTML 4.01 was released in late 1999. The Web Hypertext
Application Technology Working Group (WHATWG) started working on HTML5 in 2004,
and the W3C joined the project as a joint deliverable in 2008.
8
3.1.2 CSS
A style sheet language called Cascading Style Sheet (CSS) is used to describe how a
document produced in a markup language like HTML is presented. Along with HTML and
JavaScript, CSS is a key component of the World Wide Web.
Layout, colour, and font customization are all possible with CSS, which is made to
separate display from content. By specifying the pertinent CSS in a separate.css file, which
reduces complexity and repetition in the structural content, this separation can improve
content accessibility, give more flexibility and control in the specification of presentation
characteristics, enable multiple web pages to share formatting, and enable the.css file to be
cached to improve page load speed between the pages that share the file and its formatting.
The ability to offer the same HTML page in several styles for various rendering
techniques, including on-screen, in print, by voice (using a speech-based browser or screen
reader), and on Braille-based tactile devices, is also made possible by the separation of
formatting and content. If a user accesses the material on a mobile device, CSS additionally
provides rules for different formatting.
The term "cascading" refers to a priority structure that specifies which style rule will
be applied if more than one rule matches an element. This system of cascading priorities is
predictable.
The World Wide Web Consortium is responsible for maintaining the CSS
specifications (W3C). RFC 2318 registered the text/css. Internet media type (MIME type) for
usage with CSS (March 1998). For CSS documents, the W3C offers a free service for CSS
validation.
In addition to HTML, markup languages including XHTML, plain XML, SVG, and
XUL all permit the use of CSS.
9
JAVASCRIPT
Less interaction with the server because you may check user input before submitting
the page. Because of the reduced server traffic, your server will be under less stress.
The visitors receive immediate feedback and don't have to wait for the page to reload
to find out whether they forgot to type something.
Enhanced interactivity – You may design interfaces that respond when the user moves
their mouse cursor over them or presses a keyboard shortcut to activate them.
Richer interfaces You can use JavaScript to integrate sliders and drag-and-drop
elements to provide your site visitors with a Rich Interface.
JavaScript's limitations
10
Client-side It is not possible to read or write files using JavaScript. This is still here
for security purposes.
BOOTSTRAP
One of the key advantages of Bootstrap is its responsive grid system, which allows
developers to create flexible layouts that automatically adapt to various screen resolutions
and devices, from desktops to tablets to smartphones. This grid system simplifies the process
of building responsive designs, saving time and effort for developers.
Bootstrap also includes a variety of CSS classes and utility functions for styling and
positioning elements, as well as JavaScript plugins for adding interactive features such as
carousels, modals, and tooltips to websites.
XAMPP
11
One of the popular cross-platform web servers is XAMPP, which enables
programmers to construct and test their applications on a local web server. It was created by
the Apache Friends, and users can edit or change the native source code. It consists of the
MariaDB database, the Apache HTTP Server, and interpreters for various programming
languages like PHP and Perl. It is supported by various systems, including the x64 package of
macOS and Linux and the IA-32 package of Windows, and it is accessible in 11 different
languages.
Describe XAMPP.
The acronym XAMPP stands for "cross-platform," "A" for "Apache," "M" for
"MySQL," and "Ps" for PHP and Perl, respectively. It is an open-source collection of online
solutions that includes the Apache server, MariaDB, PHP, and Perl modules as well as
Apache distribution for a variety of servers and command-line executables.
Before releasing a website to the primary server, XAMPP enables a local host or
server to test its website and clients via desktop and laptop PCs. It is a platform that offers an
appropriate setting for testing and confirming the operation of projects based on Apache,
Perl, MySQL, and PHP through the host's system. One of these technologies is the Perl
programming language.
There are other additional parts to this software bundle, which are described below
12
Apache: is a multi-platform HTTP web server. It is employed all around the world to
distribute web content. Under the auspices of the Apache Software Foundation, the server
programe is available for free installation and usage by the developer community. The user
receives the requested files, pictures, and other documents from Apache's remote server.
MariaDB: XAMPP previously included MySQL DBMS, but MariaDB has since taken its
place. As one of the most popular relational DBMSs, it was created by MySQL. It provides
online services for data manipulation, storage, retrieval, organisation, and deletion
The backend programming language most frequently used for web development is PHP.
Users can build dynamic webpages and applications using PHP. It supports numerous
database management systems and is installable on every platform. It was created using the C
programming language. Hypertext Processor is referred to as PHP. It is believed to have been
derived from Personal Home Page tools, which accounts for its functionality and simplicity.
Perl: is a combination of Perl 5 and Perl 6, two high-level dynamic languages. In order to
solve issues with system management, web development, and networking, Perl can be used.
Users of Perl can create dynamic web apps. Both flexible and durable.
The Secure Socket Layer: Protocol and the Transport Layer Protocol are both implemented
using OpenSSL, a free software programme. The most recent version of XAMPP is 0.9.8.
The XAMPP Control Panel: is a panel that aids in controlling and operating other XAMPP
components. The most recent upgrade is 3.2.1. The following section of the course will
include a thorough discussion of the control panel.
Webalizer: is a web analytics software programme that is used to track user activity and give
usage information.
Mercury: The most recent version of this mail delivery system is 4.62. It is a mail server that
aids in managing emails on the internet.
13
XAMPP is compatible with three file types:
An executable file can run on a computer like any other regular software thanks to the.EXE
extension, which makes it easy to install.
Files with the extension "7z" support various data compression and encryption methods and
are compressed files. Although working with more complicated files is required, it is more
preferred by formalists.
ZIP: This extension allows for lossless file compression. Multiple compressed files may be
included in a Zipped file. The Deflate algorithm is primarily utilized for file compression in
this format. The Installing ZIP files is far more difficult than other file types. EXE
A notice indicating the automated start of the download shows on the screen as soon as you
click it.
STEP 2: To begin the installation process after the download is complete, double-
click the file with the.exe extension.
14
STEP 4: Select "Allow Access" or "Deactivate Firewall and Other Antivirus
Software" to prevent the installation from being hampered. Therefore, until all of the XAMPP
components have been installed fully, any antivirus software or security firewall must be
temporarily disabled.
STEP 5: A pop-up window with a warning to turn off UAC comes just before the
installation. Because it limits users' ability to write to the C: drive, User Account Control
(UAC) prevents the installation of XAMPP from continuing. As a result, it is advised to turn
it off when installing.
STEP 6: The XAMPP setup wizard launches automatically after clicking the.exe
extension file. To start configuring the parameters, click "NEXT."
Step 7: A "Select Components" panel then displays, giving you the freedom to select
one of the individual XAMPP software stack components for the installation. It is advised to
install using the default options, which include all accessible components, to obtain a full
localhost server. To move on, click "NEXT."
STEP 8: A pop-up window indicating that the setup is now ready for installation
displays on the screen. To proceed with the process, click "NEXT."
Choose the location where the XAMPP software package should be installed in
STEP 9: The first setup makes a folder called XAMPP for you under C:. Select a
place and then click "NEXT."
STEP 10: After selecting your settings for a learn more about Bitnami dialogue box
and the language, click to begin the installation. The system components will be unpacked
and installed via the setup wizard. To the designated directory, the components are saved. It
can take a few minutes to finish this process. On the screen, you can see the installation's
percentage progress.
STEP 11: Click "FINISH" once the XAMPP setup has been successfully installed on
your desktop.
15
SYSTEM ANALYSIS
CURRENT SYSTEM
Many customers visit the store to look at the merchandise and take possession of it
immediately after paying for it. Maintaining or updating every record and retrieving specific
data is highly challenging. Customers can browse the products that are sorted in various
categories on my website after logging in. Each visitor should register on this website so they
can easily view artistic works. Customers can purchase the item using an online payment
method.
SUGGESTIVE SYSTEM
The computerized version of the current system is what is being suggested. Give users
rapid, simple access to the data. Authentication procedures. For this project, PHP was chosen.
Customers can view a variety of available products on our website after logging in, and
registered users can use the website's online payment system to make purchases. Customers
can also check the status of their orders.
STUDY OF FEASIBIITY
A feasibility study is a preliminarily research carried out to ascertain and document
the viability of a project. The project's outcomes are used to determine whether to move
forward with it or put it on hold. It is obvious that the required hardware and software are
available for the creation and implementation of the proposed system if it does in fact result
in a project being approved work on the proposed project begins. The customer uses a variety
of ancillary equipment. For all devices, our website can provide a user-friendly interface (lie
laptop, mobile phone).
16
This involves determining whether the project has higher priority and profits than other
initiatives that might employ the same resources, as well as whether its benefits should
significantly outweigh its expenditures.
The system was also scaled back to perform tasks that could be performed by a single piece
of software.
The system is therefore both economically and financially viable.
FEASIBILITY IN TECHNOLOGY
This depends on a number of factors, including whether the system's required technology is
available, how challenging its construction will be, and how much expertise the company has
with it. The size of the modules, the coding, and other factors can be used to qualify this.
New technology is now being used for efficient processing.
OPERATING SUITABILITY
17
PROJECT DESCRIPTION
MODULE
Home page
Category page
Round 1 page
Round 2 page
Round 3 page
Admin page
18
HOME PAGE
The homepage features athlete registration and tournament rules and regulations,
providing essential information for participants.
CATEGORY PAGE
The category page allows participants to select their specific category to initiate the
match, streamlining the competition process efficiently.
ROUND 1 PAGE
The Round 1 page displays the names and IDs of 8 athletes in each category, adhering
to the tournament's limit. Once filled, matches commence, with the top 4 athletes advancing
to Round 2.
ROUND 2 PAGE
Round 2 follows a similar process to Round 1, where the top 4 players progress from
the initial round. From these 4 players, the top 2 emerge victorious and advance to the final
round, Round 3.
ROUND 3 PAGE
In Round 3, the final showdown occurs between the remaining 2 players, determining
the 1st place winner and the runner-up, securing the top positions in the tournament.
SCORECARD PAGE
The scorecard features player IDs, names, and score warnings for each category,
aiding performance assessment. Two players' details, with timing clocks, allow dynamic
comparison, enhancing the viewing experience. This layout offers quick insights into fighters'
progress and match intensity.
19
The Scoreboard page showcases the details of the 1st and 2nd place winners, along
with the details of the two 3rd place players, providing comprehensive visibility of the
tournament's top performers.
ADMIN PAGE
The admin interface allows for comprehensive oversight, including total registration
count, sorted by category, gender, and state. Additionally, admins can update athlete details,
delete records, view the winner list, and send congratulatory messages via email.
APPENDICES
SOURCE CODE
FRONT END:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Admin Scoreboard</title>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
rel="stylesheet">
20
</button>
</div>
<div class="modal fade right " id="rightSlideModal" tabindex="-1" role="dialog" aria-
labelledby="rightSlideModalLabel" aria-hidden="true">
<div class="modal-dialog q" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="rightSlideModalLabel" style="color:darkmagenta">SCORE
SETTING</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body text-center">
<!-- Your webpage content goes here -->
<div class="text-center mt-3">
<h4>Extra Time</h4>
</div>
<div class="text-center">
<button class="btn btn-success mt-3 ">Final Match Timing</button><br>
<button class="btn btn-danger mt-3close ali" data-dismiss="modal" aria-
label="Close">Close </button><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="container-fluid mt-2 mb-4 ">
<div class="row">
<div class="col-5 er bac">
<center><h1 style="color:blue;">AO</h1></center>
<form method="POST" action="submit-form" >
<div class="text-center">
<input type="button" value="IPPON" class="mt-4 abc" onclick="addValue1(3)"
><br>
<input type="button" value="WAZARI" class="mt-4 abc"
onclick="addValue1(2)"><br>
21
<input type="button" value="YOKU" class="mt-4 abc"
onclick="addValue1(1)"><br>
</div>
<div class="text-center">
<div class="text-center">
<input type="checkbox" id="checkbox1" name="player1_firstscore">Senshu
<input type="text" class="mt-5 jkl" style="width: 100px; height: 100px; " id="blue"
name="player_score1"><br>
</div>
<div>
<table class="table mt-5">
<thead>
<tr>
<th>C</th>
<th>K</th>
<th>HC</th>
<th>H</th>
</tr>
</thead>
<tbody>
<tr>
<td> <input type="checkbox" class="btn-check c1" id="btncheck1"
name="checkbox_values1[]" value="C"></td>
<td><input type="checkbox" class="btn-check c2" id="btncheck1"
name="checkbox_values1[]" value="K" ></td>
<td><input type="checkbox" class="btn-check c3" id="btncheck1"
name="checkbox_values1[]" value="HC"></td>
<td><input type="checkbox" class="btn-check c4" id="btncheck1"
name="checkbox_values1[]" value="H" ></td>
</tr>
<tr>
<td> <input type="checkbox" class="btn-check c5" id="btncheck1"
name="checkbox_values1[]" value="C" ></td>
<td><input type="checkbox" class="btn-check c6" id="btncheck1"
name="checkbox_values1[]" value="K" ></td>
<td><input type="checkbox" class="btn-check c7" id="btncheck1"
name="checkbox_values1[]" value="HC" ></td>
<td><input type="checkbox" class="btn-check c8" id="btncheck1"
name="checkbox_values1[]" value="H" ></td>
</tr>
</tbody>
</table>
</div>
</div>
22
<div class="col-2 er bac1 ">
<center><u><h1 style="color:rgb(10, 10, 10);">Timer</h1></center></u>
<input type="text" class="w-5 h-15 align-items-center ran" style="margin-left:5px"
name="category" id="category" value="{{ request()->query('category') }}">
<div class="text-center">
<div class="text-center">
<div class="text-center">
<input type="checkbox" id="checkbox2" name="player2_firstscore">Senshu
<input type="text" class="mt-5 jkl1" style="width: 100px; height: 100px;" id="red"
name="player_score2"><br>
</div>
<div>
23
<table class="table mt-5">
<thead>
<tr>
<th>C</th>
<th>K</th>
<th>HC</th>
<th>H</th>
</tr>
</thead>
<tbody>
<tr>
<td> <input type="checkbox" class="btn-check c9" id="btncheck9"
name="checkbox_values2[]" value="C"></td>
<td><input type="checkbox" class="btn-check c10" id="btncheck1"
name="checkbox_values2[]" value="K"></td>
<td><input type="checkbox" class="btn-check c11" id="btncheck1"
name="checkbox_values2[]" value="HC"></td>
<td><input type="checkbox" class="btn-check c12" id="btncheck1"
name="checkbox_values2[]" value="H"></td>
</tr>
<tr>
<td> <input type="checkbox" class="btn-check c13" id="btncheck1"
name="checkbox_values2[]" value="C"></td>
<td><input type="checkbox" class="btn-check c14" id="btncheck1"
name="checkbox_values2[]" value="K"></td>
<td><input type="checkbox" class="btn-check c15" id="btncheck1"
name="checkbox_values2[]" value="HC"></td>
<td><input type="checkbox" class="btn-check c16" id="btncheck1"
name="checkbox_values2[]" value="H"></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></
script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js"></
script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></
script>
<script>
let timerInterval;
let totalSeconds = 90; // 1 minute and 30 seconds
24
let isTimerRunning = false;
function toggleTimer() {
if (isTimerRunning) {
stopTimer();
} else {
startTimer();
function startTimer() {
isTimerRunning = true;
toggleButton.value = 'Stop';
function stopTimer() {
isTimerRunning = false;
toggleButton.value = 'Start';
toggleButton.style.backgroundColor = '#4CAF50'; // Green color for "Start"
clearInterval(timerInterval);
}
function updateTimer() {
if (totalSeconds <= 0) {
stopTimer();
totalSeconds = 0; // Ensure it doesn't go below 0
timerDisplay.innerText = 'Match Over';
timerDisplay.classList.add('red');
} else {
totalSeconds--;
const minutes = Math.floor(totalSeconds / 60);
const seconds = totalSeconds % 60;
timerDisplay.innerText = formattedTime;
}
}
function formatTime(time) {
return time < 10 ? '0' + time : time;
}
/////////////////
25
function disableSubmitButton() {
document.getElementById("submitButton").disabled = true;
}
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ROUND 1 </title>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
rel="stylesheet">
<link rel="stylesheet" type="text/css" href="{{ asset('css/styles.css') }}">
<style>
.mdb{
h4{
font-family: "Sofia", sans-serif;
}
h2{
font-family: "Sofia", sans-serif;
26
box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); /* Add box shadow on focus */
outline: none; /* Remove default focus outline */
}
.btn-success {
background-color: #1b742f; /* Green background color */
color: #fff; /* White text color */
border: none; /* No border */
.btn-success:hover {
background-color: #02ff39; /* Darker green on hover */
}
.bet{
color:red;
font-size:25px;
}
</style>
</head>
<body>
27
<h4 style="margin-left: 18px;">No</h4></div>
<div class="col-2">
28
@if ($posts->isNotEmpty())
<input type="text" class="form-control mt-3 w-80 " id="name1" placeholder=""
name="athlete_name" value="{{$posts[0]->name}}">
<input type="text" class="form-control mt-3 w-80 " id="name2" placeholder=""
name="athlete_name" value="{{$posts[1]->name}}">
<hr>
<input type="text" class="form-control mt-3 w-80 " id="name3" placeholder=""
name="athlete_name" value="{{$posts[2]->name}}">
<input type="text" class="form-control mt-3 w-80 " id="name4" placeholder=""
name="athlete_name" value="{{$posts[3]->name}}">
<hr>
<input type="text" class="form-control mt-3 w-80 " id="name5" placeholder=""
name="athlete_name" value="{{$posts[4]->name}}">
<input type="text" class="form-control mt-3 w-80 " id="name6" placeholder=""
name="athlete_name" value="{{$posts[5]->name}}">
<hr>
<input type="text" class="form-control mt-3 w-80 " id="name7" placeholder=""
name="athlete_name" value="{{$posts[6]->name}}" >
<input type="text" class="form-control mt-3 w-80 " id="name8" placeholder=""
name="athlete_name" value="{{$posts[7]->name}}">
@else
<p>No data found for the selected category.</p>
@endif
</div>
<div class="col-2">
<hr>
<input type="text" class="form-control mt-3 w-50 player_score1 mur" id=""
style="margin-left:30px" >
<input type="text" class="form-control mt-3 w-50 player_score2 mur" id=""
style="margin-left:30px" >
<hr>
<input type="text" class="form-control mt-3 w-50 player_score1 mur" id=""
style="margin-left:30px" >
<input type="text" class="form-control mt-3 w-50 player_score2 mur" id=""
style="margin-left:30px" >
<hr>
<input type="text" class="form-control mt-3 w-50 player_score1 mur" id=""
style="margin-left:30px" >
<input type="text" class="form-control mt-3 w-50 player_score2 mur" id=""
style="margin-left:30px">
</div>
</form>
29
<div class="col-2 mt-4 " id="">
<form method="post" action="{{ route('round2name.store') }}" id="form2">
@csrf
<input type="text" class="form-control mt-3 w-50 mur " id="id11" name="id11"
style="margin-top: 90px;" >
</div>
<div class="col-2 mt-4 " id="winnersCol">
<input type="hidden" name="category" value="{{$posts[0]->category}}">
</div>
<div class="col-1 " id="but" >
<button type="button" class="form-control btn-success w-80 fetchNamesButton ml-
3" placeholder="" style="margin-top: 40px;" data-start="1" onclick="location.href='/go1'"
>START</button>
<button type="button" class="form-control btn-success w-80 fetchNamesButton ml-
3" placeholder="" style="margin-top: 90px;" data-start="2" onclick="location.href='/go2'"
>START</button>
<button type="button" class="form-control btn-success w-80 fetchNamesButton ml-
3" placeholder="" style="margin-top: 85px;" data-start="3" onclick="location.href='/go3'"
>START</button>
<button type="button" class="form-control btn-success w-80 fetchNamesButton ml-
3" placeholder="" style="margin-top: 90px;" data-start="4"
onclick="location.href='/go4'">START</button>
</div>
<div class="col-2 ">
<button type="button" class="form-control btn-dark w-75 viewScoreButton ml-5"
style="margin-top: 40px;" data-target="1" >VIEW SCORE1</button>
30
<button type="button" class="form-control btn-dark w-75 viewScoreButton ml-5"
style="margin-top: 90px;" data-target="2" >VIEW SCORE2</button>
<button type="button" class="form-control btn-dark w-75 viewScoreButton ml-5"
style="margin-top: 85px;" data-target="3" >VIEW SCORE3</button>
<button type="button" class="form-control btn-dark w-75 viewScoreButton ml-5"
style="margin-top: 90px;" data-target="4" >VIEW SCORE4</button>
</div>
<div class="container">
<div class="text-center">
<button type="submit" class="btn btn-primary" style="margin-top: 40px;">Next
Round</button>
</form>
</div>
</div>
</div>
<br>
</div> </div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$('.viewScoreButton').click(function() {
var targetId = $(this).data('target');
var category;
if (targetId === 1) {
category = $('.ran1').eq(targetId - 1).val(); // Default behavior for targetId 1
} else if (targetId === 2) {
category = $('.ran1').eq(targetId - 2).val(); // Adjust index for targetId 2, 3, 4
}
else if (targetId === 3) {
category = $('.ran1').eq(targetId - 3).val(); // Adjust index for targetId 2, 3, 4
}
else if (targetId === 4) {
category = $('.ran1').eq(targetId - 4).val(); // Adjust index for targetId 2, 3, 4
}
$.ajax({
url: '/retrieve-scores',
type: 'GET',
data: { category: category },
success: function(response) {
if (response && response.length > 0) {
response.forEach(function(score, index) {
if (index === targetId - 1) {
var targetScore1 = $('.player_score1').eq(index);
31
var targetScore2 = $('.player_score2').eq(index);
targetScore1.val(score.player_score1);
targetScore2.val(score.player_score2);
32
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></
script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Round 2</title>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
rel="stylesheet">
<link rel="stylesheet" type="text/css" href="{{ asset('css/styles.css') }}">
<style>
.bg{
}
.mur {
border: 2px solid black; /* Set border color */
border-radius: 5px; /* Add some border radius */
padding: 10px; /* Add padding for better appearance */
font-size: 16px; /* Adjust font size */
color: #070707; /* Set text color */
}
.bet{
color:red;
font-size:25px;
}
</style>
</head>
<body>
<div class="container-fluid bg-primary sticky-top">
33
<center>
<h2 style="color: white; text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); font-family:
'Arial', sans-serif; font-size: 36px; font-weight: bold; padding: 20px;">Round 2</h2>
</center>
</div>
<div class="container-fluid bg">
<div class="row">
<div class="col-4">
</div>
<div class="col-4">
<br><center> <input type="text" id="category" name="category" class="form-control
ran1 mt-1 w-65 bet" style="width: 70%; height: 40px;" value="{{ $selectedCategory
}}"></center>
</div>
<div class="col-4">
</div></div>
<div class="row">
<div class="col-1 mt-4">
<h4 style="margin-left: 20px;">No</h4></div>
34
<input type="text" class="form-control mt-3 w-75" id="id33" placeholder=""
value="{{ $selectedName->player_id33 }}">
<input type="text" class="form-control mt-3 w-75" id="id44" placeholder=""
value="{{ $selectedName->player_id44 }}">
@endforeach
@endif
</div>
<div class="col-2">
@if($selectedNames->isNotEmpty())
@foreach($selectedNames as $selectedName)
@endforeach
@endif
</div>
<div class="col-2">
</div>
</form>
35
<input type="text" class="form-control w-75 mur" id="id222" name="id222"
placeholder="" style="margin-top: 80px;">
</div>
<div class="col-2 mt-4">
<input type="hidden" name="category" value="{{ $selectedCategory }}">
<input type="text" class="form-control mt-3 w-80 mur" id="name111"
placeholder="" name="name111">
</form>
</div>
</div>
</div>
<br>
</div> </div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$('.viewScoreButton').click(function() {
var targetId = $(this).data('target');
var category;
if (targetId === 1) {
category = $('.ran1').eq(targetId - 1).val(); // Default behavior for targetId 1
} else if (targetId === 2) {
category = $('.ran1').eq(targetId - 2).val(); // Adjust index for targetId 2
36
}
var highestScore;
var highestScoreName;
var winnerId;
if (targetId === 1) {
$('#name111').val(highestScoreName); // Updated selector to use
name111
$('#id111').val(winnerId); // Set winner ID for button 1
} else if (targetId === 2) {
$('#name222').val(highestScoreName); // Updated selector to use
name222
$('#id222').val(winnerId); // Set winner ID for button 2
}
}
});
} else {
alert('No data found for this category.');
}
})
.fail(function() {
alert('Failed to retrieve score.');
37
});
});
});
</script>
<script src="{{ asset('js/name_fetch1.js') }}"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></
script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
</body></html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Round 3</title>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
rel="stylesheet">
<link rel="stylesheet" type="text/css" href="{{ asset('css/styles.css') }}">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Sofia">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?
family=Sofia&effect=fire"><style>
.bg{
.ang {
border: 2px solid black; /* Set border color */
border-radius: 5px; /* Add some border radius */
padding: 10px; /* Add padding for better appearance */
font-size: 16px; /* Adjust font size */
color: #070707; /* Set text color */
}
.bet{
color:red;
font-size:25px;
}
</style>
</head>
<body>
<div class="container-fluid bg-danger sticky-top">
<center>
38
<h2 style="color: white; text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); font-family:
'Arial', sans-serif; font-size: 36px; font-weight: bold; padding: 20px;">Round 3</h2>
</center>
</div>
<div class="container-fluid bg">
<div class="row">
<div class="col-4">
</div>
<div class="col-4">
<br><center> <input type="text" class="form-control ran1 mt-1 w-65 bet" style="width:
70%; height: 40px;" value="{{ $selectedCategory }}" id="category"
name="category"></center>
</form>
</div>
<div class="col-4">
</div></div>
<div class="row">
<div class="col-1 mt-4">
<h4 style="margin-left: 5px;">No</h4></div>
@if($twoSelectedNames->isNotEmpty())
@foreach($twoSelectedNames as $twoSelectedName)
39
<input type="text" class="form-control mt-3 w-60" id="id111" name="id111"
placeholder=""value="{{ $twoSelectedName->player_id11 }}">
<input type="text" class="form-control mt-3 w-65" id="id222" name="id222"
placeholder=""value="{{ $twoSelectedName->player_id22 }}">
@endforeach
@endif
</div>
<div class="col-2">
@if($twoSelectedNames->isNotEmpty())
@foreach($twoSelectedNames as $twoSelectedName)
<input type="text" class="form-control mt-3 w-80" id="name111" name="name111"
value="{{ $twoSelectedName->selected_name11 }}">
<input type="text" class="form-control mt-3 w-80" id="name222" name="name222"
value="{{ $twoSelectedName->selected_name22 }}">
@endforeach
@endif
</div>
<div class="col-2">
<input type="text" class="form-control mt-3 w-50 ang" id="score1" placeholder=""
style="margin-left:30px">
<input type="text" class="form-control mt-3 w-50 ang" id="score2" placeholder=""
style="margin-left:30px">
</div>
</form>
<div class="col-2 mt-4">
@csrf
<input type="text" class="form-control mt-3 w-50 ang" id="id1111" name="id1111"
placeholder="">
</div>
<div class="col-2 mt-4">
<input type="hidden" name="category" value="{{ $selectedCategory }}">
</div>
40
<div class="container">
<div class="text-center">
<button type="button" onclick="saveData()" class="btn btn-primary ml-4"
style="margin-top: 40px;">Final Save</button>
</div>
</div>
</form>
</div>
<br>
<center>
<button type="button" class="btn btn-primary ml-4 mb-2" style="margin-top: 20px;"
onclick="redirectToOverallScore()">Overall Score</button>
</center>
</div> </div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$('.viewScoreButton').click(function() {
var targetId = $(this).data('target');
var category;
if (targetId === 1) {
category = $('.ran1').eq(targetId - 1).val(); // Default behavior for targetId 1
} else if (targetId === 2) {
category = $('.ran1').eq(targetId - 2).val(); // Adjust index for targetId 2
}
var highestScore;
var highestScoreName;
var winnerId;
41
winnerId = score.player_id2;
} else {
if (score.player1_firstscore === 1) {
highestScoreName = score.player_name1;
winnerId = score.player_id1;
} else if (score.player2_firstscore === 1) {
highestScoreName = score.player_name2;
winnerId = score.player_id2;
}
highestScore = score.player_score1;
if (targetId === 1) {
$('#name1111').val(highestScoreName); // Updated selector to use
name1111
$('#id1111').val(winnerId); // Set winner ID for button 1
} else if (targetId === 2) {
$('#name222').val(highestScoreName); // Updated selector to use
name222
$('#id222').val(winnerId); // Set winner ID for button 2
}
}
});
} else {
alert('No data found for this category.');
}
})
.fail(function() {
alert('Failed to retrieve score.');
});
});
});
function saveData() {
// Get form data
var formData = $('#form4').serialize();
42
}
function redirectToOverallScore() {
var category = "{{ $selectedCategory }}"; // Get the selectedCategory value from the PHP
variable
var url = "{{ route('overall-score') }}?category=" + encodeURIComponent(category);
window.location.href = url;
}
</script>
.table-container {
position: relative;
z-index: 2; /* Set z-index higher than the canvas */
}
.table-container canvas {
position: absolute;
top: 0;
left: 0;
z-index: 1; /* Set z-index lower than the table */
}
#canvas {
position: fixed;
top: 0;
left: 0;
pointer-events: none;
z-index: 0; /* Ensure canvas is at the bottom */
}
.table tbody tr:nth-child(odd) {
background-color: #f8f9fa; /* Light gray background for odd rows */
}
43
.table tbody tr:nth-child(even) {
background-color: #e9ecef; /* Lighter gray background for even rows */
}
.table thead tr {
text-align: center;
}
.table tbody tr td {
text-align: center;
}
.abc {
border-radius: 20px; /* Adjust the radius as needed */
padding: 5px 10px; /* Adjust padding as needed */
text-align: center;
}
.abc1 {
border-radius: 20px; /* Adjust the radius as needed */
padding: 5px 10px; /* Adjust padding as needed */
text-align: center;
}
</style>
</style>
</head>
<body>
<center><button id="toggleButton" class="bg-danger">Pause/Resume</button></center>
<form id="scoreboardForm" method="POST" action="{{ route('scoreboard.store') }}">
@csrf
<div class="container mt-5">
<center> <h2>Scoreboard</h2></center>
<center><input type="text" class="form-control ran1 mt-1 w-25 text-danger mt-3 abc1"
id="category" name="category" value="{{ request()->query('category') }}"></center>
<table class="table table-striped table-bordered mt-4">
<thead class="thead-warning ">
<tr>
<th style="background-color:#f1260b; ">Position</th>
<th style="background-color:#1e60ec;">ID</th>
</thead>
<tbody>
<tr>
<td><input type="text" name="position1" class="abc w-50" value="1"
readonly></td>
44
<td><input type="text" name="player_id11" class="w-50"
value="{{ $highestScoringPlayer->player_id11 }}" readonly></td>
<td><input type="text" name="name1" value="{{ $highestScoringPlayer-
>selected_name11 }}" readonly></td>
<td><input type="text" name="state1" value="{{ $stateData1->state ?? '' }}"
readonly></td>
<input type="hidden" name="email1" value="{{ $emailMobileData1->email ??
'' }}" readonly>
<input type="hidden" name="mobile1" value="{{ $emailMobileData1-
>mobile_number ?? '' }}" readonly>
</tr>
@if ($secondHighestScoringPlayer)
<tr>
<td><input type="text" name="position2" class="abc w-50" value="2"
readonly></td>
<td><input type="text" name="player_id12" class="w-50"
value="{{ $secondHighestScoringPlayer->player_id11 == $highestScoringPlayer-
>player_id11 ? $secondHighestScoringPlayer->player_id22 : $secondHighestScoringPlayer-
>player_id11 }}" readonly></td>
<td><input type="text" name="name2"
value="{{ $secondHighestScoringPlayer->player_id11 == $highestScoringPlayer-
>player_id11 ? $secondHighestScoringPlayer->selected_name22 :
$secondHighestScoringPlayer->selected_name11 }}" readonly></td>
<td><input type="text" name="state2" value="{{ $stateData2->state ?? '' }}"
readonly></td>
<input type="hidden" name="email2" value="{{ $emailMobileData2->email ??
'' }}" readonly>
<input type="hidden" name="mobile2" value="{{ $emailMobileData2-
>mobile_number ?? '' }}" readonly>
</tr>
@endif
<!--third position-->
45
$matchingAthlete1 = $athleteData3->where('id', $player->player_id11)->first();
@endphp
<!-- Display athlete data if available for the first player ID -->
@if ($matchingAthlete1)
<td><input type="text" name="state1{{ $positionValue }}"
value="{{ $matchingAthlete1->state }}" readonly></td>
<input type="hidden" name="email1{{ $positionValue }}"
value="{{ $matchingAthlete1->email }}" readonly>
<input type="hidden" name="mobile_number1{{ $positionValue }}"
value="{{ $matchingAthlete1->mobile_number }}" readonly>
@if (($player->player_id22 != $highestScoringPlayer->player_id11 && $player-
>player_id22 != $selectedID2) &&
($player->selected_name22 != $highestScoringPlayer->selected_name11 && $player-
>selected_name22 != $selectedName2))
<td><input type="text" name="position{{ $positionValue }}" class="abc w-50"
value="{{ $positionValue }}" readonly></td>
<td><input type="text" name="player_id2{{ $positionValue }}" class="w-50"
value="{{ $player->player_id22 }}" readonly></td>
<td><input type="text" name="selected_name2{{ $positionValue }}"
value="{{ $player->selected_name22 }}" readonly></td>
@php
$matchingAthlete2 = $athleteData3->where('id', $player->player_id22)->first();
@endphp
<!-- Display athlete data if available for the first player ID -->
@if ($matchingAthlete2)
<td><input type="text" name="state2{{ $positionValue }}"
value="{{ $matchingAthlete2->state }}" readonly></td>
<input type="hidden" name="email2{{ $positionValue }}"
value="{{ $matchingAthlete2->email }}" readonly>
<input type="hidden" name="mobile_number2{{ $positionValue }}"
value="{{ $matchingAthlete2->mobile_number }}" readonly>
@endif
</tr>
@endif
@if (($player->player_id33 != $highestScoringPlayer->player_id11 && $player-
>player_id33 != $selectedID2) &&
($player->selected_name33 != $highestScoringPlayer->selected_name11 && $player-
>selected_name33 != $selectedName2))
46
<!-- Display athlete data if available for the first player ID -->
@if ($matchingAthlete3)
<td><input type="text" name="state3{{ $positionValue }}"
value="{{ $matchingAthlete3->state }}" readonly></td>
<input type="hidden" name="email3{{ $positionValue }}"
value="{{ $matchingAthlete3->email }}" readonly>
<input type="hidden" name="mobile_number3{{ $positionValue }}"
value="{{ $matchingAthlete3->mobile_number }}" readonly>
@endif
<!-- Display athlete data if available for the first player ID -->
@if ($matchingAthlete4)
<td><input type="text" name="state4{{ $positionValue }}"
value="{{ $matchingAthlete4->state }}" readonly></td>
<input type="hidden" name="email4{{ $positionValue }}"
value="{{ $matchingAthlete4->email }}" readonly>
<input type="hidden" name="mobile_number4{{ $positionValue }}"
value="{{ $matchingAthlete4->mobile_number }}" readonly>
@endif
</tr>
@endif
</tbody>
</table>
</div>
<div>
<center>
<button type="submit" class="btn btn-primary">Submit</button>
</center>
</div>
</form>
<canvas id="canvas"></canvas>
<div>
<center>
<button type="submit" class="btn btn-danger mt-3 " onclick="location.href='/start'"
>EXIT</button>
</center>
47
</div>
<!-- Bootstrap JS (optional) -->
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></
script>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<!-- Custom JavaScript -->
<script>
// Wait for the document to load
document.addEventListener('DOMContentLoaded', function() {
let W = window.innerWidth;
let H = window.innerHeight;
const canvas = document.getElementById("canvas");
const context = canvas.getContext("2d");
const maxConfettis = 150;
const confettiParticles = [];
const maxFirecrackers = 10;
const firecrackerParticles = [];
let animationPaused = false;
const possibleColors = [
"DodgerBlue",
"OliveDrab",
48
"Gold",
"Pink",
"SlateBlue",
"LightBlue",
"Gold",
"Violet",
"PaleGreen",
"SteelBlue",
"SandyBrown",
"Chocolate"
function randomFromTo(from, to) {
return Math.floor(Math.random() * (to - from + 1) + from);
}
function confettiParticle() {
this.x = Math.random() * W; // x
this.y = Math.random() * H - H; // y
this.r = randomFromTo(11, 33); // radius
this.d = Math.random() * maxConfettis + 11;
this.color =
possibleColors[Math.floor(Math.random() * possibleColors.length)];
this.tilt = Math.floor(Math.random() * 33) - 11;
this.tiltAngleIncremental = Math.random() * 0.07 + 0.05;
this.tiltAngle = 0;
this.draw = function() {
context.beginPath();
context.lineWidth = this.r / 2;
context.strokeStyle = this.color;
context.moveTo(this.x + this.tilt + this.r / 3, this.y);
context.lineTo(this.x + this.tilt, this.y + this.tilt + this.r / 5);
return context.stroke();
};
}
function firecrackerParticle() {
this.x = Math.random() * W; // x
this.y = H; // y
this.length = randomFromTo(30, 50); // length
this.color = "#ff0000";
this.draw = function() {
context.beginPath();
context.lineWidth = 2;
context.strokeStyle = this.color;
context.moveTo(this.x, this.y);
context.lineTo(this.x, this.y - this.length);
return context.stroke();
};
}
49
function Draw() {
if (!animationPaused) {
const results = [];
context.clearRect(0, 0, W, window.innerHeight);
particle.tiltAngle += particle.tiltAngleIncremental;
particle.y += (Math.cos(particle.d) + 3 + particle.r / 2) / 2;
particle.tilt = Math.sin(particle.tiltAngle - i / 3) * 15;
50
return results;
}
}
window.addEventListener(
"resize",
function() {
W = window.innerWidth;
H = window.innerHeight;
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
},
false
);
// Initialize
canvas.width = W;
canvas.height = H;
Draw();
51
OUTPUT SCREEN
HOME PAGE:
CATEGORY PAGE:
52
ROUND 1 PAGE:
ROUND 2 PAGE:
53
ROUND 3 PAGE:
54
SCORE CARD PAGE:
55
ADMIN PAGE:
56
57
58
59
CONCLUSION
60
REFERENCE
https://chat.openai.com/
https://getbootstrap.com/
https://www.youtube.com/@JVLcode
https://www.wkf.net/
61