Visvesvaraya Technologicaluniversity: Movie Tickets Booking App
Visvesvaraya Technologicaluniversity: Movie Tickets Booking App
Visvesvaraya Technologicaluniversity: Movie Tickets Booking App
VISVESVARAYA TECHNOLOGICALUNIVERSITY
“Jnana Sangama”, Belagavi-590018, Karnataka
HARSHITHA K K (4NN20CS409)
Under the Guidance of
Sri. Deepak S
Assistant Professor
Dept. of CSE
CERTIFICATE
This is to certify that the mini project work entitled “MOVIE TICKETS BOOKING APP” is carried out by
ASHISH S bearing USN: 4NN20CS403 and HARSHITHA K K bearing USN: 4NN20CS409
in the partial fulfillment for the Sixth semester of Bachelor of Engineering degree in Computer
Science and Engineering of the Visvesvaraya Technological University, Belagavi during the
academic year 2021-22. The project report has been approved as it satisfies the academic requirements
with respect to project work prescribed for the Bachelor of Engineering.
External Viva
1…………………….... 1……………………….
2…………………….... 2……………………….
SPOTIFLYER
ACKNOWLEDGEMENT
We sincerely owe our gratitude to all people who helped and guided us in completing this
project work.
We are thankful to Dr. ARCHANA N V , Principal, NIEIT, Mysore, for having supported
us in our academic endeavors.
We would like to sincerely thank our project guide, Sri. Deepak S ,Asst. Professor in Dept. of
Computer & Science and Engineering for providing relevant information, valuable guidance and
encouragement to complete this mini-project.
We would also like to thank all our teaching and non-teaching staff members of the
Department. We are grateful to the college for keeping labs open whenever required and providing
us Systems and Required software.
We are always thankful to our Parents for their valuable support and guidance in every step.
Also thank all our friends for their support and guidance throughout the project.
We express our deepest gratitude and indebted thanks to NIEIT which has provided us an
opportunity in fulfilling our most cherished desire of reaching our goal.
Yours Sincerely,
ASHISH S 4NN20CS403
HARSHITHA 4NN20CS409
SPOTIFLYER
ABSTRACT
In the proposed project, user can book ticket using online movie ticket booking app. user enter into web
page by logging with user name and password. Then we select the Movie and later in which theatre movie
is running. Later choose show timings and enter no of tickets you want .finally it displays the details of the
procedure and print the form to show at respective ticket counter to get ticket. The main purpose of this
online ticket booking system is to provide an alternate and convenient way for a customer to buy cinema
tickets. It is an automatic system. After the data has been fed into the database, the staff does not need to do
anything with the order once it is received through the system.
SPOTIFLYER
TABLE OF CONTENTS
CHAPTER 5 IMPLEMENTATION 10
CHAPTER 6 SNAPSHOTS 13
CHAPTER 7 CONCLUSION FUTURE ENHANCEMENT 14
REFERENCES 16
CHAPTER-01
INTRODUCTION
JetBrains developed IntelliJ IDEA, which is the basis for Android Studio. In 2011, the company
introduced the Kotlin language. Kotlin is a statically-typed, modern programming language that runs on
a Java Virtual Machine (JVM) by compiling Kotlin code into Java byte-code. It can also be compiled to
JavaScript source code and to native executables. Kotlin is flexible. Kotlin is object-oriented language,
and a “better language” than Java, but still be fully interoperable with Java code. Though Kotlin was
production ready, the language wasn’t stable. When important changes in the language happened,
developers had to change their codebase. Five years later, Kotlin released 1.0. At Google I/O 2017,
Google announced that Android will support Kotlin as a first-class programming language from now on.
For this to happen, the 3.0 release of Android Studio (AS) integrated Kotlin support out of the box! The
following three minor releases of AS continued to improve the Kotlin support and the tools available.
Kotlin support for JavaScript (i.e., classic back-end) is considered stable in Kotlin 1.3 by its developers,
while Kotlin/JS (IR-based) in version 1.4, is considered alpha. Kotlin/Native Runtime (for e.g., Apple
support) is considered beta.
--
--
CHAPTER-02
SYSTEM REQUIREMENT SPECIFICATIONS
Android Studio is the official integrated development environment (IDE) for Google's Android operating
system, built on JetBrains' IntelliJ IDEA software and designed specifically for Android development. It is
available for download on Windows, macOS and Linux based operating systems The first stable build was
released in December 2014. Android Studio provides many excellent features that enhance productivity
when building Android apps, such as a blended environment where one can develop for all Android
devices, apply Changes to push code and resource changes to the running app without restarting the app, a
flexible Gradle-based build system, a fast and feature-rich emulator, GitHub and Code template
integration to assist you to develop common app features and import sample code, extensive testing tools
and frameworks, C++ and NDK support, and many more.
HARDWARE REQUIREMENTS
Processor: AMD Ryzen 5 / Intel Core 9 th Gen i5 processor or higher processor
RAM: 8GB or more
ROM: 256GB SSD or more
Input: Keyboard and Mouse
Display: 1920 X 1080 resolution display or more
Memory: 4GB
SOFTWARE REQUIREMENTS
Operating System: Windows 11
Android Studio
Language : Kotlin
CHAPTER - 03
ABOUT THE PROJECT
About Movie Tickets App: In The movie ticket app that we will develop in this article would allow
the users to play the songs present on the device. You can download songs on your device and then use
the movie ticket to book those movies. Let’s see the quite exciting features that you get along with this
app.
SYSTEM DESIGN
4.1 Flow chart
CHAPTER 5
IMPLEMENTATION:
KOTLIN CODE:
activity_checkout
package nun.hunhun.cinevie.ui.detail
import android.content.Intent
import android.os.Bundle
import android.widget.LinearLayout
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager
import com.bumptech.glide.Glide
import com.google.firebase.database.*
import kotlinx.android.synthetic.main.activity_choose_seat.*
import kotlinx.android.synthetic.main.activity_detail_film.*
import kotlinx.android.synthetic.main.activity_detail_film.view.*
import kotlinx.android.synthetic.main.fragment_dashboard.*
import nun.hunhun.cinevie.R
import nun.hunhun.cinevie.model.Cast
import nun.hunhun.cinevie.model.Film
import nun.hunhun.cinevie.ui.checkout.seat.ChooseSeatActivity
data = intent.getParcelableExtra("data")!!
reference =
FirebaseDatabase.getInstance().getReference("Film").child(data.title.toString()).child("cast")
initView()
getDataCast()
}
tv_title.text = data.title
tv_genre.text = data.genre t tv_desc.text = data.desc
Glide.with(this).load(data.poster).into(img_poster)
btn_buy.setOnClickListener { startActivity(Intent(this,
ChooseSeatActivity::class.java).putExtra("data", data)) }
btnBack.setOnClickListener { onBackPressed() }
}
if (cast != null) {
castList.add(cast)
}
rv_cast.adapter = CastAdapter(castList)
}
}
FilmDetailActivity
package nun.hunhun.cinevie.ui.checkout.seat
import android.content.Intent
import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.GridLayoutManager
import com.google.firebase.database.*
import kotlinx.android.synthetic.main.activity_choose_seat.*
import nun.hunhun.cinevie.R
import nun.hunhun.cinevie.model.Seat
import nun.hunhun.cinevie.model.Film
import nun.hunhun.cinevie.ui.checkout.CheckoutActivity
import nun.hunhun.cinevie.utils.GridItemDecoration
import java.util.*
import kotlin.collections.ArrayList
data = intent.getParcelableExtra("data")!!
filmReference = FirebaseDatabase.getInstance().getReference("Film").child(data.title.toString())
seatReference = FirebaseDatabase.getInstance().getReference("Seat").child(data.title.toString())
getData()
initView()
}
rv_seat.addItemDecoration(GridItemDecoration(36, column))
rv_seat.setAdapter(adapter)
rv_seat.layoutManager = GridLayoutManager(this@ChooseSeatActivity, column)
}
})
}
data.statusSeat = statusSeat
//intent
val intent = Intent(this, CheckoutActivity::class.java)
intent.putExtra("data", data)
intent.putParcelableArrayListExtra("list", seatList) //put extra with arraylist
startActivity(intent)
}
//change color button checkout when user click atleast one seat
private fun stateCheckoutBtn(total: Int){
if (total > 0){
btn_checkout.isClickable = true
btn_checkout.isEnabled = true
btn_checkout.setTextColor(ContextCompat.getColor(this, R.color.white))
btn_checkout.setText("CHECKOUT ("+total+")")
btn_checkout.background = ContextCompat.getDrawable(this, R.drawable.shape_rounded_accent)
} else {
btn_checkout.isClickable = false
btn_checkout.isEnabled = false
btn_checkout.setTextColor(ContextCompat.getColor(this, R.color.darkerGrey))
btn_checkout.setText("CHECKOUT")
btn_checkout.background = ContextCompat.getDrawable(this,
R.drawable.shape_rounded_blue_grey)
}
}
for (select in
selects) { var text =
""
val seat = Seat()
val myRow = select / row
val myColumn = select % column
text = String.format("%s%c%c ", text, ABC.get(myRow), NUM.get(myColumn))
seat.number = select
seat.seat = text
seat.price = data.price
seatList.add(seat)
}
stateCheckoutBtn(selects.size)
}
private fun getSeatData(callback: seatDataCallback){
seatReference.child("status").addListenerForSingleValueEvent(object : ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {
if (snapshot.exists()) {
val status =
snapshot.getValue(String::class.java) val strs =
status!!.split(", ")
strs.forEach { statusSeatList.add(it.toBoolean()) }
} else {
repeat(sumSeat) { statusSeatList.add(false) }
}
callback.onCallback(statusSeatList)
}
})
}
interface seatDataCallback {
fun onCallback(value: ArrayList<Boolean>)
}
CHAPTER 6
SNAPSHOTS
CONCLUSION
This paper gives the idea of a mobile ticket application on android phones developed by Android The
platform independent language java is used for the implementation. Along with that SQLite and Cloud
Database are used as databases for user and ticket information respectively. PHP is also used as a
development framework. All these things taken together can change the total concept of buying tickets in
the coming days. This application can be modified according to any kind of transport system. But this is
defined exclusively for sub urban railways. This android application reduces the manual work of both
ticket bookers and ticket checkers. It is basically the transition from a manual to digital system for ticket
booking of as well as ticket checking of suburban railways. QR code used for user validation ensures
security of the system. Automatically available train time allows the user to book tickets according to his
convenience; this work is performed in this project by GPS. Thus the problem associated with local train
ticket booking as almost ceased.
FUTURE ENHANCEMENT