Skip to content

blizzardOfAce/akirax

Repository files navigation

AkiraX

AkiraX is an Android app for movie ticket booking and resale, built using Kotlin, Jetpack Compose and Firebase as backend.

✨ Features

🛠 Technologies Used

📱 Screenshots

Start Screen Register Screen First Login
Home Screen Search Screen Movie Details Screen
Seat Selection Screen Payment Screen Ticket Success
QR Code Tickets Screen Profile Screen

Markdown

🎬 Demo

demo.mp4

🚀 Setup Guide

1️⃣ Clone the Repository

git clone https://github.com/blizzardOfAce/akirax.git
cd AkiraX

2️⃣ Firebase Setup

Since the google-services.json file is not included in the repository for security reasons, you'll need to set up your own Firebase project:

  1. Go to Firebase Console

  2. Create a new project (name does not need to match "akirax-21926")

  3. Click "Add app" → Select Android icon

  4. Enter the package name com.example.akirax (this must match exactly as in build.gradle)

  5. Set app nickname (optional, e.g., "AkiraX")

  6. Get SHA-1 key (required for Google Sign-In):

    ./gradlew signingReport

    Copy SHA-1 from the DEBUG variant

  7. Click "Register app" → Download google-services.json

  8. Place it inside the app/ directory

Firestore Collections:

  • The app uses two collections: users and resaleTickets
  • These do NOT need to be manually created. The app will generate them automatically when first used
  • Structure:
    • users: Stores user details
    • resaleTickets: Stores resale ticket info
    • Each user has a tickets subcollection

3️⃣ Firebase Services Setup

Authentication

  1. Go to AuthenticationSign-in method
  2. Enable Email/Password and Google Sign-in

Firestore Database

  1. Go to Firestore DatabaseCreate database
  2. Start in production or test mode (adjust security rules later)

Data Models:

// User Model
data class User(
    val uid: String,
    val name: String?,
    val email: String?,
    val photoUrl: String?
)
// Ticket Model
data class Ticket(
    val eventId: String = "",
    val eventName: String = "",
    val language: String = "",
    val seatNumber: String = "",
    val ownerEmail: String = "",
    val ticketHash: String = "",
    val isForSale: Boolean = false,
    val resalePrice: Double? = null,
    val imageUrl: String? = null,
    val purchaseTimestamp: Long = 0L
)

4️⃣ Add API Keys & Local Properties

Create a local.properties file in the root directory and add:

TMDB_API_KEY=your_tmdb_api_key
CASHFREE_CLIENT_ID=your_cashfree_client_id
CASHFREE_CLIENT_SECRET=your_cashfree_client_secret
TICKETMASTER_API_KEY=your_ticketmaster_api_key
FIREBASE_WEB_CLIENT_ID=your_firebase_web_client_id

Get API keys from:

5️⃣ Build & Run 🚀

./gradlew assembleDebug

Open the project in Android Studio, connect a device, and run the app! 🎉

🛣️ Roadmap

  • Add support for multiple languages 🌍
  • Implement real-time notifications 🔔
  • Enhance UI and features 📲
  • Implement AR view for venue seating preview 🎭

🤝 Contributing

Contributions are welcome! Feel free to fork the repository, create a new branch, and submit a pull request. 🚀

About

Android app for movie ticket booking and resale, built using Kotlin and Jetpack Compose

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages