Download as pdf or txt
Download as pdf or txt
You are on page 1of 40

AN Esports Tournament Platform app

Project Progress Report


SUBMITTED IN PARTIAL FULFILLMENT OF THE

REQUIREMENT FOR THE AWARD OF THE DEGREE


OF

BACHELOR OF TECHNOLOGY
IN

COMPUTER SCIENCE & ENGINEERING

Submitted By

➢ Ram Vilash Kumar (​160609008)


➢ Deepak Kumar (160609023)
➢ Neha Kumari (160609001)
➢ Deepmala Kumari (160609021)

Under the Guidance of​ ​ ​Bhaskar Das


Assistant Professor
Dept. of CSE

Department of Computer Science and Engineering

Ramgarh Engineering College, Ramgarh

1
RAMGARH ENGINEERING COLLEGE

(Estd By Govt of Jharkhand & run by Techno India under PPP)

CERTIFICATE OF RECOMMENDATION

This is to recommend that the work undertaken in this Project Report


entitled “​An eSports Tournament Platform App​” has been carried out by
Ram Vilash Kumar under my supervision and may be accepted in partial
fulfillment of the requirement for the degree of Bachelor of Technology in
Computer Science Engineering.

​ ​Countersigned by,

Mr. Ashim Kumar Mahto Mr. Bhaskar Das


Assistant Professor, Head of the
Department,

Department of CSE Department of CSE

2
RAMGARH ENGINEERING COLLEGE

(Estd By Govt of Jharkhand & run by Techno India under PPP)

CERTIFICATE OF RECOMMENDATION

This is to recommend that the work undertaken in this Project Report


entitled “​An eSports Tournament Platform App​” has been carried out by
Deepak Kumar under my supervision and may be accepted in partial
fulfillment of the requirement for the degree of Bachelor of Technology in
Computer Science Engineering.

​ ​Countersigned by,

Mr. Ashim Kumar Mahto Mr. Bhaskar Das


Assistant Professor, Head of the
Department,

Department of CSE Department of CSE

3
RAMGARH ENGINEERING COLLEGE

(Estd By Govt of Jharkhand & run by Techno India under PPP)

CERTIFICATE OF RECOMMENDATION

This is to recommend that the work undertaken in this Project Report


entitled “​An eSports Tournament Platform App​” has been carried out by
Neha Kumari under my supervision and may be accepted in partial
fulfillment of the requirement for the degree of Bachelor of Technology in
Computer Science Engineering.

​ ​Countersigned by,

Mr. Ashim Kumar Mahto Mr. Bhaskar Das


Assistant Professor, Head of the
Department,

Department of CSE Department of CSE

4
RAMGARH ENGINEERING COLLEGE

(Estd By Govt of Jharkhand & run by Techno India under PPP)

CERTIFICATE OF RECOMMENDATION

This is to recommend that the work undertaken in this Project Report


entitled “​An eSports Tournament Platform App​” has been carried out by
Deepmala Kumari under my supervision and may be accepted in partial
fulfillment of the requirement for the degree of Bachelor of Technology in
Computer Science Engineering.

​ ​Countersigned by,

Mr. Ashim Kumar Mahto Mr. Bhaskar Das


Assistant Professor, Head of the
Department,

Department of CSE Department of CSE

5
RAMGARH ENGINEERING COLLEGE

(Estd By Govt of Jharkhand & run by Techno India under PPP)

CERTIFICATE OF APPROVAL

The foregoing Thesis is hereby approved as a creditable study of


engineering subject to warrant its acceptance as a prerequisite to obtain
the degree for which it has been submitted. It is understood that by this
approval the undersigned don’t necessarily endorse or approve any
statement made, opinion or conclusion drawn therein but approve the
thesis only for the purpose for which it is submitted.

Board of Examiners,

1. _______________

2. _______________
______________

Project Supervisor

6
RAMGARH ENGINEERING COLLEGE

(Estd By Govt of Jharkhand & run by Techno India under PPP)

UNDERTAKING

I am Ram Vilash Kumar, Roll No: 160609008 of B.Tech. (Computer


Science & Engineering) hereby declare that my project report, titled “​An
eSports Tournament Platform App​” is my own contribution. I declare that
I have not indulged in any form of plagiarism while writing this report.
The work or ideas of other authors which are utilized in this report has
been properly acknowledged and mentioned in the Bibliography. I
undertake total responsibility if any traces of plagiarism are found at any
later stage. In such a case my degree will be cancelled automatically.

Ram Vilash Kumar

Roll No. 160609008

7
RAMGARH ENGINEERING COLLEGE

(Estd By Govt of Jharkhand & run by Techno India under PPP)

UNDERTAKING

I am Deepak Kumar, Roll No: 160609023 of B.Tech. (Computer Science


& Engineering) hereby declare that my project report, titled “​An eSports
Tournament Platform App​” is my own contribution. I declare that I have
not indulged in any form of plagiarism while writing this report. The work
or ideas of other authors which are utilized in this report has been
properly acknowledged and mentioned in the Bibliography. I undertake
total responsibility if any traces of plagiarism are found at any later
stage. In such a case my degree will be cancelled automatically.

Deepak Kumar

Roll No. 160609023

8
RAMGARH ENGINEERING COLLEGE

(Estd By Govt of Jharkhand & run by Techno India under PPP)

UNDERTAKING

I am Neha Kumari, Roll No: 160609001 of B.Tech. (Computer Science


& Engineering) hereby declare that my project report, titled “​An eSports
Tournament Platform App​” is my own contribution. I declare that I have
not indulged in any form of plagiarism while writing this report. The work
or ideas of other authors which are utilized in this report has been
properly acknowledged and mentioned in the Bibliography. I undertake
total responsibility if any traces of plagiarism are found at any later
stage. In such a case my degree will be cancelled automatically.

Neha Kumari

Roll No. 160609001

9
RAMGARH ENGINEERING COLLEGE

(Estd By Govt of Jharkhand & run by Techno India under PPP)

UNDERTAKING

I am Deepmala Kumari, Roll No: 160609021 of B.Tech. (Computer


Science & Engineering) hereby declare that my project report, titled “​An
eSports Tournament Platform App​” is my own contribution. I declare that
I have not indulged in any form of plagiarism while writing this report.
The work or ideas of other authors which are utilized in this report has
been properly acknowledged and mentioned in the Bibliography. I
undertake total responsibility if any traces of plagiarism are found at any
later stage. In such a case my degree will be cancelled automatically.

Deepmala Kumari

Roll No. 160609021

10
ACKNOWLEDGMENT

Presentation inspiration and motivation have always played a key role in


the success of any venture.

We express our sincere thanks to ​Rec Ramgarh.

We pray our deep sense of gratitude to ​Mr Bhaskar Das (HOD) ​of CSE
department to encourage us to the highest peak and to provide us the
opportunity to prepare the project. We are immensely obliged to ​our
friends​ for their elevating inspiration,encouraging guidance and kind
supervision in the completion of our project.

We feel to acknowledge our indebtedness and deep sense of gratitude


to our guide ​Mr. Ashim Mahato​ whose valuable and kind supervision
given to us throughout the course which shaped the present work as its
show.

Last but not the least our parents are also an important inspiration for us.
So with due regards, We express our gratitudes to them.

11
Table of Contents 

S.L. Contents Page No


0. Abstract 13

1. Introduction 13

2. Literature Survey 14-22

3. Proposed Work 23-38

4. Result & Discussions 39

5. Conclusion 39

6. Reference 39

12
Abstract 

An eSports Tournament Platform App is the project designed to provide


a platform for eSports gamers to participate in various online games
tournaments. It also includes many features such as a leaderboard
where a person can check his/her rank,payment gateway integrated to
help them participate in paid tournaments,live chat support ,refer and
earn where gamers can earn free credit to participate in paid
tournaments and many more features.

1. Introduction 

There are many different latest technologies used in the digital world to
reduce human effort. The project ‘​An eSports Tournament Platform App’​
will do the same. It will reduce the human effort, time and cost and help
the tournament organisers and the gamers. It will maintain all gamer’s
rank , latest tournaments result and many more.
To provide quick payment for paid tournaments, security and central
access, we are going to use many different technologies like Android
(using JAVA,XML),PHP(for backend),JWT(JSON Web Token) to provide
security and give access to authorized users,Paytm Payment Gateway
which we have enabled etc. It will consist of a server and database to
store the users and game organisers data to provide services to the
users.
First section is Home section contains the different available leagues in
which users can participate,once the league slot gets full no more users
will be able to register for that league.Second section is the Leaderboard
section which contains top 50 gamer’s rank and the latest league
results.Third section is the More section where users can manage their

13
accounts. We are using Bigrock cloud hosting to store the users data
and fetch the response using api.

2. Literature and Survey 


 
2.1 JAVA
Java programming language was originally developed by Sun
Microsystems which was initiated by James Gosling and released in
1995 as core component of Sun Microsystems' Java platform (Java 1.0
[J2SE]).
The latest release of the Java Standard Edition is Java SE 8. With the
advancement of Java and its widespread popularity, multiple
configurations were built to suit various types of platforms. For example:
J2EE for Enterprise Applications, J2ME for Mobile Applications.
The new J2 versions were renamed as Java SE, Java EE, and Java ME
respectively. Java is guaranteed to be Write Once, Run Anywhere.
Java is −
● Object Oriented −​ In Java, everything is an Object. Java can be
easily extended since it is based on the Object model.
● Platform Independent − ​Unlike many other programming
languages including C and C++, when Java is compiled, it is not
compiled into a platform specific machine, rather into platform
independent bytecode. This byte code is distributed over the web
and interpreted by the Virtual Machine (JVM) on whichever
platform it is being run on.
● Simple − ​Java is designed to be easy to learn. If we understand
the basic concept of OOP Java, it would be easy to master.
● Secure − ​With Java's secure feature it enables to develop
virus-free, tamper-free systems. Authentication techniques are
based on public-key encryption.
● Architecture-neutral − ​Java compiler generates an
architecture-neutral object file format, which makes the compiled
code executable on many processors, with the presence of Java
runtime system.

14
● Portable − ​Being architecture-neutral and having no
implementation dependent aspects of the specification makes
Java portable.
● Robust − ​Java makes an effort to eliminate error prone situations
by emphasizing mainly on compile time error checking and runtime
checking.
● Multithreaded − ​With Java's multithreaded feature it is possible to
write programs that can perform many tasks simultaneously. This
design feature allows the developers to construct interactive
applications that can run smoothly.
● Interpreted − ​Java byte code is translated on the fly to native
machine instructions and is not stored anywhere. The
development process is more rapid and analytical since the linking
is an incremental and light-weight process.
● High Performance − ​With the use of Just-In-Time compilers, Java
enables high performance.
● Distributed − ​Java is designed for the distributed environment of
the internet.
● Dynamic − ​Java is considered to be more dynamic than C or C++
since it is designed to adapt to an evolving environment. Java
programs can carry extensive amount of run-time information that
can be used to verify and resolve accesses to objects on run-time.

2.1.1 How does the JAVA language work?

In other coding or programming languages, the code is first translated by


a compiler into instructions, while in JAVA it instead turns code into
Bytecode, which is then interpreted by software JRE (Java Runtime
ENvironment).

2.1.2 ​Why is Java the best programming language?

Java is easy to learn, the language has fluent English-like syntax and
less mysterious characters. Java has rich API, xml parsing, database

15
connection, networking, utilities and provides almost everything that a
developer can expect. It is also open source and available free.

2.1.3 ​Interaction of JAVA and Android Phones

.0.

A ​View is simply an object from Android's built-in ​View class. It represents


a rectangular area of the screen, and is responsible for displaying
information or content, and event handling. Text, images, and buttons are
​ iew​ in Android.
all V
A ​ViewGroup is a subclass of ​View​, and is essentially an 'invisible
container' that holds multiple ​View​s or ​ViewGroup​s together, and defines
their layout properties.
2.2.1.1 ROOT VIEW
The following three layout types may be the root element in an Android
XML Layout:
● A ​Linear Layout​ ​aligns its contents into a single direction, whether
vertical or horizontal.
● A ​Relative Layout​ displays its child content in positions relative to
the parent. (ie: lining an element up to the top edge of a parent,
centering it within a parent, etc.)
● A ​Frame Layout​ is a placeholder on a screen that can display only a
single view. (For this reason, Frame Layouts should be used
sparingly; usually as a placeholder for Fragments)
2.2.1.2 COMMON VIEWGROUPS
Other commonly used ​ViewGroup are as follows. These may not be the
root element of a layout, but they may reside within the root element:
● A ​List View​ displays a list of scrollable items.
● AG ​ rid View​ displays items in a two-dimensional, scrollable grid.
● AT ​ able Layout​ groups views into rows and columns.
2.2.1.2 LAYOUT ATTRIBUTES

16
Every type of layout has attributes that define the way its elements appear.
There are both common attributes that ​all layouts share. The following are
attributes that apply to all layouts:
● android​:​id​: A unique ID that corresponds to the view.
● android​:​layout_width​: The width of the layout. (required for every
view)
● android​:​layout_height​: The height of the layout. (required for
every view)
● android​:​layout_marginTop​: Extra space on the top of the layout.
● android​:​layout_marginBottom​: Extra space on the bottom of the
layout.
● android​:​layout_marginLeft​: Extra space to the left of the layout.
● android​:​layout_marginRight​: Extra space to the right of the layout.
● android​:​layout_weight​: Specifies how much of the extra space in
the layout should be allocated to the view.
● android​:​paddingLeft​: Padding to the left of the view.
● android​:​paddingRight​: Padding to the right of the view.
● android​:​paddingTop​: Padding at the top of the view.
● android​:​paddingBottom​: Padding at the bottom of the view.

2.2.1.3 RELATIVE SIZING


Height and width properties can be set to specific measurements, but the
following are much more common:
● android​:​layout_width​=​wrap_content​: Sets the width of the view to
whatever size is required by its contents. This may also be used with
height​.
● android​:​layout_width​=​match_parent​: Sets the width of the view to
​ eight​.
the width of its parent. This may also be used with h

2.2.1.4 SETTING PROPERTIES IDS


Much like in HTML, we can also add id attributes to XML elements. We'll
often need to do this in order to later locate and interact with a specific
view. However, the syntax for assigning an ID differs from that in HTML.
Assigning an id attribute looks something like this:

17
android:id="@+id/search_button"

Here, the ​@+​id​/ portion indicates that the name following is a string
containing this element's ID, and that it is a new resource that should be
created and added to our resources.
For instance, the following XML will create a Button with the id
search_button​:
<Button​ ​android:id​=​"@+id/search_button"
​android:layout_width​=​"wrap_content"
​android:layout_height​=​"wrap_content"

​android:text​=​"@string/my_button_text"​/>

2.2.1.5 TARGETING VIEWS BY ID


Similar to the way we use jQuery to target individual HTML elements and
alter them in some fashion, we can also target individual XML elements
and interact with them. The following code can be used to target the
example XML button from above:

Button​ myButton ​=​ ​(​Button​)​ findViewById​(​R​.​id​.​search_button​);

The ​findViewById​()​ method can locate both ​Views​ and root views.

2.2.1.6 CONSTRAINT LAYOUTS


Newer versions of Android Studio createS default layouts called
ConstraintLayouts instead of ​LinearLayouts or ​RelativeLayouts​.
ConstraintLayouts are a newer layout format that is more powerful, but also
more complex.In this we can also create the layout using drag and drop.

2.3 PHP
● PHP is an acronym for "PHP: Hypertext Preprocessor"

18
● PHP is a widely-used, open source scripting language
● PHP scripts are executed on the server
● PHP is free to download and use

2.3.1 COMMON USE OF PHP


● PHP performs system functions, i.e. from files on a system it can
create, open, read, write, and close them.
● PHP can handle forms, i.e. gather data from files, save data to a
file, through email you can send data, return data to the user.
● We can add, delete, modify elements within your database through
PHP.
● Access cookies variables and set cookies.
● Using PHP, we can restrict users to access some pages of our
website/app.
● It can encrypt data.

2.3.2 Why is PHP used as a back-end for Android Development?


There are many reason for this and some of them are listed below:-

● Versatile - ​PHP covers almost all web browsers. This facilitates


easy and smooth working. Any code can run on all significant
platforms.
● Robust Backend For Application - ​PHP perfectly fits into the
phrase “Old is gold”. Due to its huge time span, it has a wide
range of databases and frameworks. A few of the most
prominently-used frameworks are WordPress, Joomla, Drupal,
Laravel, and Symphony. A PHP development company
understands the working of PHP in a better way. They know
the way to structure it in order to make it consumer-friendly. It
becomes easier for the user to continue with this strong
framework.
● Synchronization - ​PHP works in sync, meaning in series. We
have to complete the first step in order to move to the next one.

19
It executes code in sequence. This helps the user to be in order
and perform a task in a structured manner.
● Wide Platform - ​Content management systems such as
WordPress are designed in such a way that they can be used
by non-technical people as well. Android app development
services are proficient with languages used for the back-end.
According to statistics, 78.9% are using PHP as a server-side
programming language.
● Database - ​PHP connects the site’s database to the browser,
creating a smooth, user-friendly experience. The database
being an integral component of the back-end, needs to work
well. PHP is traditional so it works well with MYSQL,
PostgreSQL, and MariaDB.
● Framework - ​PHP is the world’s most popular back-end for
android applications, with its framework being one of the main
reasons behind its success. PHP provides a basic structure to
build web applications.It makes PHP easy and rapid to use.
There are many different frameworks available in PHP to
choose from. Some of them are CakePHP, FuelPHP, and
Codeigniter.PHP makes deployment and hosting easier. PHP is
user–friendly, old, and in demand.

2.4 JWT
JSON Web Token (JWT) is a compact, URL-safe means of representing
claims to be transferred between two parties. The claims in a JWT
are encoded as a JSON object that is used as the payload of a JSON
Web Signature (JWS) structure or as the plaintext of a JSON Web
Encryption (JWE) structure, enabling the claims to be digitally
signed or integrity protected with a Message Authentication Code
(MAC) and/or encrypted.

20
2.4.1 When should we use JSON WEB Token?
Here are some scenarios where JSON Web Tokens are useful:

● Authorization​: This is the most common scenario for using JWT.


Once the user is logged in, each subsequent request will include
the JWT, allowing the user to access routes, services, and
resources that are permitted with that token. Single Sign On is a
feature that widely uses JWT nowadays, because of its small
overhead and its ability to be easily used across different domains.
● Information Exchange​: JSON Web Tokens are a good way of
securely transmitting information between parties. Because JWTs
can be signed—for example, using public/private key pairs—we
can be sure the senders are who they say they are. Additionally,
as the signature is calculated using the header and the payload,
you can also verify that the content hasn't been tampered with.

2.4.2 STRUCTURE OF JSON WEB TOKEN

JSON Web Tokens consist of three parts separated by dots (​.​), which
are:

● Header
● Payload
● Signature

If any part is tempered, the signature will not get verified. It can only be
verified by the private key.

21
22
3.PROPOSED WORK

Flowing is the desired project flow chart which represents the project​ ​An
eSports Tournament Platform App.

The app first sends the JWT Token from android activity to Authorization
Server(Firebase) to verify the token whether it is valid or invalid.

If the token is valid then it is checked whether it has expired or not. If it is


expired then the new token is sent back from android activity which
allows further api call.

If the token is invalid then the client can not fetch any data from the
database.Hence it provides security to api requests for unauthorized
access.

23
3.1 MAJOR ACTIVITY OF THE APP
The various major activity of the App is explained below

3.1.1 SPLASH SCREEN/START ACTIVITY

24
In this activity token and the version of the app is checked ,if a new
version i.e update is available then first users have to update the app to
proceed.

3.1.2 LOGIN ACTIVITY

From this activity users can login into their account if an account already
exists.New users can register by clicking on “​Create Account​”.

25
3.1.3 CREATE ACCOUNT ACTIVITY

New users can register from this activity.After clicking on next users
have to enter the otp sent to email.Once that is validated ,users have to
enter a new password and have to accept the term and condition.After

26
successful registration users will be redirected to ​Login Activity​ and
hence can access the features of the app.

3.1.4 HOME FRAGMENT

27
From home activity users can select the available leagues and can
register for the upcoming league.

3.1.5 PURCHASE ACTIVITY

From this activity users can add the league to the cart if the league is not
full.

28
3.1.6 CART ACTIVITY

In the activity the league in the users cart can be registered,if the slot is
not full.On clicking “​Register​”, users will get the payment option.

29
3.1.7 CART ACTIVITY PAYMENT OPTIONS

Users can either pay using UPI or using referral credit earned by inviting
friends.

30
3.1.8 PAYTM PAYTM GATEWAY

Paytm Payment Gateway is integrated to accept payment from


users.Users can pay using installed upi app or using UPI ID.

31
3.1.9 LEADERBOARD FRAGMENT

In this section top 50 gamers rank is displayed. And by clicking on


SOLO,DUO,SQUAD last league results can be fetched.

32
3.1.10 LAST SOLO RESULT ACTIVITY

In this activity player details of the last solo league is displayed.Similarly


duo and squad results can be checked from ​Leaderboard Fragment.

33
3.1.11 MORE FRAGMENT

From More fragment users get lots of features.At the left top users can
check the number of coins earned.At the top right user can access the
cart.

34
● By clicking on ​Edit​ users can change the account details.
● From ​My League​ users can check the booked league details.
● From ​Players Details​ save the player details which will be used
during registration.
● From ​My League​ users can check the booked league details.
● From ​Transaction History​ users can check all the transactions
done in the app.
● From ​Refer & Earn​ users can get the referral code.By sharing this
users can earn free credit.
● From ​Guide & Rules​ users will be guided how to participate in the
league and also one can check the rules.
● From ​Support​ users can send an email or can live chat with us in
case of any query.
● From ​Change Password​ users can change their password.
● From ​About Us ​users will get to know about us.
● From ​Connect With Us​ users can find various social media links
using which they can connect with us on social media.
● From ​Legal ​ read the term and condition,privacy policy and faq.
● From ​Sign Out ​users can log out from the app.
● At the bottom one can check the app current version.

35
3.1.12 MY LEAGUE ACTIVITY

From this activity users can check the details of the booked leagues and
even they can edit the details.

36
3.1.13 TRANSACTION ACTIVITY

In this section users can check all the transactions done in the app.

37
3.1.14 CHAT SUPPORT ACTIVITY

In this activity users can directly chat with us in case of any query.

38
4. Result and Discussion 
 
After compiling all the activity the release version of the app was
generated from Android Studio and the beta version of the app was
published in Play Store and after successful testing, the app was rolled
for production mode and now the app is live for all Indian users.The app
can be downloaded from url-​ ​https://app.gplbharat.in

5. Conclusion 
 
This app provides both the gamers and the organisers a great platform
for eSports tournaments.There are approx 300 million online eSports
gamers in India and this app is going to be very beneficial to them.In
upcoming updates we will add almost all the popular eSports games.

6. Reference 
As any development project we mostly use the official Android
documentation.

http://developer.android.com/index.html

We also used from time to time:

http://www.stackoverflow.com

https://jwt.io/introduction/

https://www.w3schools.com/

https://www.tutorialspoint.com/index.htm

39
40

You might also like