Skip to content

usr-wwelsh/railway-android

Repository files navigation

Railway Android

License: MIT Platform Language API

A lightweight, native Android app for monitoring Railway projects on-the-go. Built with Kotlin + Jetpack Compose for optimal performance and minimal bloat.

Features

  • 🔐 Privacy-First: API tokens stored with AES256-GCM encryption
  • 📱 Native Android: No bloat, just fast Kotlin + Jetpack Compose
  • 🌙 Railway Design: Dark-first UI matching Railway's aesthetic
  • 📊 Project Monitoring: View all projects with deployment status
  • 📝 Live Logs: View deployment logs and live server logs
  • 💾 Offline Ready: Caches data for viewing without connection

Getting Started

Prerequisites

  • Android Studio Hedgehog or later
  • Android SDK 26+ (Android 8.0+)
  • JDK 17

Building

  1. Clone this repository:

    git clone https://github.com/usr-wwelsh/railway-android.git
    cd railway-android
  2. Open in Android Studio

  3. Build and run:

    ./gradlew assembleDebug

Getting a Railway API Token

  1. Visit railway.app/account/tokens
  2. Create a new Personal or Project token
  3. Copy the token
  4. Enter it in the app on first launch

💡 Tip: For maximum security, use a read-only Project token!

Tech Stack

  • Language: Kotlin
  • UI: Jetpack Compose + Material3
  • Architecture: MVVM + Clean Architecture
  • DI: Hilt
  • GraphQL: Apollo Kotlin
  • Storage: EncryptedSharedPreferences + Room Database
  • Navigation: Compose Navigation

Project Structure

app/src/main/kotlin/com/railway/mobile/
├── data/               # Data layer
│   ├── local/         # EncryptedSharedPreferences, Room database
│   └── repository/    # Repository implementations
├── domain/            # Business logic
│   ├── model/         # Domain models
│   └── repository/    # Repository interfaces
├── presentation/      # UI layer
│   ├── theme/         # Material3 theme
│   ├── onboarding/    # Token setup
│   ├── projects/      # Projects list
│   ├── projectdetails/ # Project details & deployments
│   ├── logs/          # Deployment logs
│   ├── environmentlogs/ # Live server logs
│   └── navigation/    # App navigation
└── di/                # Dependency injection

Contributing

This is an open-source community project! Contributions welcome.

  1. Fork the repo
  2. Create a feature branch
  3. Make your changes
  4. Submit a PR

License

MIT License - see LICENSE for details

Disclaimer

This is an unofficial community project, not affiliated with Railway Corp.


Built with ❤️ for indie devs who ship from anywhere 🚂

About

unofficial railway android app

Resources

License

Stars

Watchers

Forks

Languages