Skip to main content

Developer setup

List Pilot is a Flutter app. This guide covers building and running from source.

Prerequisites

Setup

git clone https://github.com/mzbrau/list-pilot.git
cd list-pilot
flutter pub get
dart run build_runner build

Run

flutter run

Test

flutter test

Project structure

lib/
core/ # Theme, constants, Riverpod providers
data/ # Drift database, repositories, seed loader
features/ # Screens and widgets
router/ # go_router configuration
assets/
seed_catalog.json
docs/ # Docusaurus documentation site

Releasing

Releases are driven by git tags in the form vX.Y.Z:

./tool/set_version.sh v1.0.0
git add pubspec.yaml
git commit -m "Release v1.0.0"
git tag v1.0.0
git push origin main
git push origin v1.0.0

Pushing a tag triggers the GitHub Action that builds an Android APK (list-pilot-X.Y.Z.apk) and attaches it to a GitHub Release.

Local release builds

Create android/key.properties (gitignored):

storePassword=<keystore-password>
keyPassword=<key-password>
keyAlias=upload
storeFile=app/upload-keystore.jks

Copy your keystore to android/app/upload-keystore.jks.

Documentation site

The docs site lives in docs/ and deploys to GitHub Pages on pushes to main.

cd docs
npm ci
npm start # local dev server
npm run build

Enable GitHub Pages → Source: GitHub Actions in repository settings for deployment.

Site URL: https://mzbrau.github.io/list-pilot/

License

Apache 2.0 — see LICENSE.