An open API service indexing awesome lists of open source software.

https://github.com/usr-wwelsh/railway-android

unofficial railway android app
https://github.com/usr-wwelsh/railway-android

Last synced: 5 months ago
JSON representation

unofficial railway android app

Awesome Lists containing this project

README

          

# Railway Android

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Platform](https://img.shields.io/badge/platform-Android-green.svg)](https://www.android.com)
[![Language](https://img.shields.io/badge/language-Kotlin-purple.svg)](https://kotlinlang.org)
[![API](https://img.shields.io/badge/API-26%2B-brightgreen.svg)](https://android-arsenal.com/api?level=26)

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:
```bash
git clone https://github.com/usr-wwelsh/railway-android.git
cd railway-android
```

2. Open in Android Studio

3. Build and run:
```bash
./gradlew assembleDebug
```

### Getting a Railway API Token

1. Visit [railway.app/account/tokens](https://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](LICENSE) for details

## Disclaimer

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

---

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