luminate-old/README.md
Brendan Szymanski f374dc663d Add contributor templates and update README
Reviewed-on: echo/Luminate#2
Co-authored-by: Brendan Szymanski <hello@bscubed.dev>
Co-committed-by: Brendan Szymanski <hello@bscubed.dev>
2026-06-21 20:01:52 +00:00

100 lines
4.3 KiB
Markdown

# Luminate ✨
Luminate is a modern Jellyfin client for the Linux desktop, built with Swift and Adwaita.
It aims to provide a delightful browsing experience for any Jellyfin server with features rivaling the default Jellyfin Media Player, all while feeling right at home in your GNOME desktop.
## 🛠️ Building
### Linux (Native)
```bash
swift build
swift run
```
Requires `libadwaita-devel` (Fedora) or `libadwaita` (Ubuntu/Debian) and the Swift 6 toolchain.
### Flatpak
```bash
flatpak-builder --force-clean build-dir dev.bscubed.Luminate.json
flatpak-builder --run build-dir dev.bscubed.Luminate.json Luminate
```
### macOS (Development)
```bash
brew install libadwaita
swift build
swift run
```
macOS builds work for development, but the target platform is Linux/Flatpak.
### Release Build
```bash
swift build -c release
```
## 🤝 Contributing
Contributions are welcome! Check out [CONTRIBUTING.md](CONTRIBUTING.md) for the full guide on branching, coding style, pull requests, and everything you need to get started. You can also browse the [issue tracker](https://git.bscubed.dev/echo/Luminate/issues) for open issues to tackle.
## 🗺️ Project Roadmap
### Login
| Feature | Completion | Version | Details |
| :--- | :---: | :--- | :--- |
| Server Authentication | ✅ | v0.1.0 | Login via server URL, username, and password |
| Persistent Session Storage | ✅ | v0.1.0 | Auto-login across restarts via SQLite |
| Multi-User Support | ❌ | | Switch between accounts without re-entering credentials |
| Quick Login | ❌ | | One-click reconnect to recently used servers |
### Libraries
| Feature | Completion | Version | Details |
| :--- | :---: | :--- | :--- |
| Home Screen | ✅ | v0.1.0 | Continue Watching, Next Up, and Recently Added rows |
| Library Grid Browsing | ✅ | v0.1.0 | Folder navigation with responsive grid layout |
| Movie Detail View | ✅ | v0.1.0 | Backdrop, poster, metadata, cast, similar items, actions |
| TV Show Detail View | ✅ | v0.1.0 | Season picker, episode list with thumbnails and runtime |
| Search | ✅ | v0.1.0 | Debounced text input with results across libraries |
| Detail View Navigation | 🚧 | v0.1.0 | Connecting poster cells to their detail views |
| Unified Search Integration | ❌ | | Search results navigating directly to content |
### Playback
| Feature | Completion | Version | Details |
| :--- | :---: | :--- | :--- |
| Playback Progress Reporting | ✅ | v0.1.0 | Start, progress, and stop reported to server |
| Video Player Widget | 🚧 | v0.1.0 | mpv + GtkGLArea integration (placeholder currently) |
| Full Video Playback | ❌ | | Play, pause, seek, progress bar, and fullscreen |
| Resume Playback | ❌ | | Continue Watching from home screen plays at saved position |
### Functionality
| Feature | Completion | Version | Details |
| :--- | :---: | :--- | :--- |
| Favorites | ✅ | v0.1.0 | Toggle favorite status on items |
| Mark Played / Unplayed | ✅ | v0.1.0 | Track watched state |
| Image Caching | ✅ | v0.1.0 | Two-tier cache (memory + disk) with deferred loading |
| WebSocket Client | ✅ | v0.1.0 | Real-time server event notifications |
| Dependency Injection | ✅ | v0.1.0 | `@Injected` property wrapper and `DIContainer` |
| Stack Navigation | ✅ | v0.1.0 | `NavigationView` with typed `NavigationStack<Page>` |
| Localization (en/de) | ✅ | v0.1.0 | YAML-based strings with the `localized` package |
| `@Injected` Migration | 🚧 | v0.1.0 | Migrating library views from parameter injection |
| Keyboard Shortcuts | ❌ | | Global shortcuts for search, navigation, playback |
| Error Handling UI | ❌ | | User-facing error states for network failures |
| Testing | ❌ | | Unit and UI test coverage |
| CI/CD Pipeline | ❌ | | Automated builds and test runs |
| Flatpak Publishing | ❌ | | Release on Flathub |
| Offline / Download Support | ❌ | | Cache media for offline playback |
## 📄 License
Luminate is free software: you can redistribute it and/or modify it under the terms of the [GNU General Public License](LICENSE) as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the [GNU General Public License](LICENSE) for more details.