Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# The builder reads only the keys in this file; never store admin credentials here.
OPENFUEL_PUBLIC_ENV=development
OPENFUEL_PUBLIC_API_BASE_URL=/api/v1
OPENFUEL_PUBLIC_SOURCE_URL=/downloads/openfuel-source.zip
OPENFUEL_PUBLIC_SOURCE_URL=https://github.com/AKolenda/openfuel/releases/latest/download/openfuel-source.zip
# A built static site does NOT read its host's environment after deployment.
# Changing these values requires a fresh site build.
# Optional donation page (HTTPS) for the database and map costs. Without it no donate
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ SwiftUI app still needs an Apple SDK build and simulator verification on a Mac.

- [Public repository](https://github.com/AKolenda/openfuel)
- [Website](https://openfuel.ca/) and [station map](https://openfuel.ca/preview/)
- [Android APK](https://openfuel.ca/downloads/openfuel-android.apk) — development build, Android 8+
- [API health](https://openfuel.ca/api/v1/health) and [source download](https://openfuel.ca/downloads/openfuel-source.zip)
- [Android APK](https://github.com/AKolenda/openfuel/releases/latest/download/openfuel-android.apk) — development build, Android 8+
- [API health](https://openfuel.ca/api/v1/health) and [source download](https://github.com/AKolenda/openfuel/releases/latest/download/openfuel-source.zip)

Allow location when you enter the app to find nearby stations. If permission is
unavailable, search a Canadian city or choose an area on the map. The app uses
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/pages.js

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions apps/docs/pages.json

Large diffs are not rendered by default.

5 changes: 0 additions & 5 deletions apps/web/_headers
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,3 @@
Cache-Control: no-store
/preview/sw.js
Cache-Control: no-cache
/downloads/*
Cache-Control: public, max-age=300
/downloads/openfuel-android.apk
Content-Type: application/vnd.android.package-archive
Content-Disposition: attachment; filename="openfuel-android.apk"
4 changes: 2 additions & 2 deletions apps/web/designs/variant-b/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
Accountable everywhere.</h2><p data-i18n="b-project-body" >The product is simple. The commitments behind it should be just as clear.</p></div><div class="utility-rows"><article><h3 data-i18n="b-u1" >See the map first.</h3><p data-i18n="b-u1b" >Prices, freshness and a clear next step. No account wall in the preview.</p></article><article><h3 data-i18n="b-u2" >Keep your route to yourself.</h3><p data-i18n="b-u2b" >The native prototype requests no location or background-driving permissions. Maps opens only when you choose it.</p></article><article><h3 data-i18n="b-u3" >Make the record portable.</h3><p data-i18n="b-u3b" >Public exports and independently runnable code are the plan—not an exclusive database tied to one company.</p></article></div></section>
<section id="data" class="ledger-section"><div class="wrap"><div class="ledger-intro"><div><h2 data-i18n="b-data" >Open data should
look like open data.</h2><p data-i18n="b-data-b" >No mystery scores. No invisible corrections. A station record with a source, a status and a history.</p></div><button data-i18n="csv" class="button secondary" type="button" data-action="csv">Download sample CSV</button></div><div class="table-scroll"><table><caption data-i18n="table-caption">Three synthetic records. Downloadable without signing in.</caption><thead><tr><th data-i18n="col-station">Station</th><th data-i18n="col-fuel">Fuel</th><th data-i18n="col-price">CAD ¢/L</th><th data-i18n="col-state">Record status</th></tr></thead><tbody><tr><td>Petro-Canada</td><td data-i18n="grade-regular">Regular</td><td>142.9</td><td data-i18n="record-demo">Synthetic example</td></tr><tr><td>Shell</td><td data-i18n="grade-regular">Regular</td><td>147.9</td><td data-i18n="record-demo">Synthetic example</td></tr><tr><td>Esso</td><td data-i18n="grade-regular">Regular</td><td>149.9</td><td data-i18n="record-demo">Synthetic example</td></tr></tbody></table></div></div></section><section class="native-block section"><div class="wrap native-inner"><div><h2 data-i18n="native-title" >Native from
the first tap.</h2><p data-i18n="native-body" >Native Android and iPhone clients, one shared sample database. Start on Android or build the SwiftUI source with Xcode.</p></div><div class="platforms"><div class="platform"><div><strong>Android</strong><span data-i18n="android-note" >Kotlin / Jetpack Compose · installable prototype</span></div><a data-i18n="android-build" class="button secondary" href="/downloads/openfuel-android.apk" download>Download APK</a></div><div class="platform"><div><strong>iPhone</strong><span data-i18n="ios-note" >Swift / SwiftUI · source for Xcode</span></div><a data-i18n="ios-build" class="button secondary" href="/downloads/openfuel-source.zip" download>Get iOS source</a></div></div></div></section><section class="faq wrap"><div><h2 data-i18n="faq-title" >A few things worth knowing.</h2><p data-i18n="faq-intro" >The ambition is national. The next step is a carefully tested local launch.</p></div><div class="faq-list"><details><summary data-i18n="q-live" >Are these live prices?</summary><p data-i18n="a-live" >The six stations and map are fictional, so these are not real pump prices. Reports you share are stored online and visible in the web and native prototypes. Real coverage and licensed data feeds still need to be added.</p></details><details><summary data-i18n="q-native" >Can I try the native apps?</summary><p data-i18n="a-native" >Yes. The Android prototype uses Kotlin and Jetpack Compose and is available as a downloadable APK. The iPhone app uses Swift and SwiftUI; its source is included, and building it requires a Mac with Xcode.</p></details><details><summary data-i18n="q-edits" >Who can change a station?</summary><p data-i18n="a-edits" >The proposed model lets people suggest additions, edits and closures. Evidence is reviewed before changes reach the public map. A vote count alone does not delete a station.</p></details><details><summary data-i18n="q-code" >Where is the source?</summary><p data-i18n="a-code" >Download the full repository: website, Android and SwiftUI apps, Cloudflare API, D1 database migrations and tests. A public GitHub repository has not been published yet.</p></details></div></section><section class="end-call"><h2 data-i18n="end-title" >Take the next version for a spin.</h2><p data-i18n="end-body" >Start with the map. Help shape what comes next.</p><a data-i18n="end-demo" class="button primary" href="/preview/">Open the app</a></section></main><footer><div class="footer-inner"><a class="wordmark" href="#">openfuel<span class="canada">Canada</span></a><p data-i18n="foot-copy" >An open-source project for Canadian fill-ups.</p><div><button data-i18n="foot-source" class="text-button" type="button" data-action="source">Source code</button><button data-i18n="foot-notes" class="text-button" type="button" data-action="status">Build status</button></div></div><p data-i18n="foot-license" class="fineprint" >Prototype code: AGPL-3.0-only. Original sample data: CC0. Brand names do not imply affiliation. No app-store release or nationwide coverage is claimed.</p></footer><dialog id="menu-dialog" class="site-dialog small-dialog"><button class="dialog-grip" aria-label="Close menu" data-close></button><div class="dialog-header"><h2 data-i18n="menu-title">Explore OpenFuel</h2><button class="close" data-close aria-label="Close">×</button></div><div class="dialog-body menu-links"><a href="../../docs/" data-nav-close data-i18n="nav-docs">Documentation</a><a href="#project" data-nav-close data-i18n="nav-project">The project</a><a href="#data" data-nav-close data-i18n="nav-data">Open data</a><button data-action="source" data-i18n="nav-source">Get the source</button><a data-i18n="nav-demo" href="/preview/">Open app</a></div></dialog>
<dialog id="source-dialog" class="site-dialog"><button class="dialog-grip" data-close aria-label="Close"></button><div class="dialog-header"><h2 data-i18n="source-title">Open by design</h2><button class="close" data-close aria-label="Close">×</button></div><div class="dialog-body"><p data-i18n="source-body">Website, documentation, Android, iOS, API and registry source live in one AGPL-3.0-only repository. This source archive is separate from the Android APK download.</p><p data-i18n="source-license">First-party code: AGPL-3.0-only. Synthetic fixtures: CC0. Third-party rights are separate.</p><p><a href="../../docs/#repo">Repository guide</a> · <a href="../../docs/#testing">Build evidence</a> · <a href="../../docs/#licence">Licence scope</a></p><a class="button primary" href="../../downloads/openfuel-source.zip" download data-i18n="source-export">Download the source repository</a></div></dialog>
the first tap.</h2><p data-i18n="native-body" >Native Android and iPhone clients, one shared sample database. Start on Android or build the SwiftUI source with Xcode.</p></div><div class="platforms"><div class="platform"><div><strong>Android</strong><span data-i18n="android-note" >Kotlin / Jetpack Compose · installable prototype</span></div><a data-i18n="android-build" class="button secondary" href="https://github.com/AKolenda/openfuel/releases/latest/download/openfuel-android.apk">Download APK</a></div><div class="platform"><div><strong>iPhone</strong><span data-i18n="ios-note" >Swift / SwiftUI · source for Xcode</span></div><a data-i18n="ios-build" class="button secondary" href="https://github.com/AKolenda/openfuel/releases/latest/download/openfuel-source.zip">Get iOS source</a></div></div></div></section><section class="faq wrap"><div><h2 data-i18n="faq-title" >A few things worth knowing.</h2><p data-i18n="faq-intro" >The ambition is national. The next step is a carefully tested local launch.</p></div><div class="faq-list"><details><summary data-i18n="q-live" >Are these live prices?</summary><p data-i18n="a-live" >The six stations and map are fictional, so these are not real pump prices. Reports you share are stored online and visible in the web and native prototypes. Real coverage and licensed data feeds still need to be added.</p></details><details><summary data-i18n="q-native" >Can I try the native apps?</summary><p data-i18n="a-native" >Yes. The Android prototype uses Kotlin and Jetpack Compose and is available as a downloadable APK. The iPhone app uses Swift and SwiftUI; its source is included, and building it requires a Mac with Xcode.</p></details><details><summary data-i18n="q-edits" >Who can change a station?</summary><p data-i18n="a-edits" >The proposed model lets people suggest additions, edits and closures. Evidence is reviewed before changes reach the public map. A vote count alone does not delete a station.</p></details><details><summary data-i18n="q-code" >Where is the source?</summary><p data-i18n="a-code" >Download the full repository: website, Android and SwiftUI apps, Cloudflare API, D1 database migrations and tests. A public GitHub repository has not been published yet.</p></details></div></section><section class="end-call"><h2 data-i18n="end-title" >Take the next version for a spin.</h2><p data-i18n="end-body" >Start with the map. Help shape what comes next.</p><a data-i18n="end-demo" class="button primary" href="/preview/">Open the app</a></section></main><footer><div class="footer-inner"><a class="wordmark" href="#">openfuel<span class="canada">Canada</span></a><p data-i18n="foot-copy" >An open-source project for Canadian fill-ups.</p><div><button data-i18n="foot-source" class="text-button" type="button" data-action="source">Source code</button><button data-i18n="foot-notes" class="text-button" type="button" data-action="status">Build status</button></div></div><p data-i18n="foot-license" class="fineprint" >Prototype code: AGPL-3.0-only. Original sample data: CC0. Brand names do not imply affiliation. No app-store release or nationwide coverage is claimed.</p></footer><dialog id="menu-dialog" class="site-dialog small-dialog"><button class="dialog-grip" aria-label="Close menu" data-close></button><div class="dialog-header"><h2 data-i18n="menu-title">Explore OpenFuel</h2><button class="close" data-close aria-label="Close">×</button></div><div class="dialog-body menu-links"><a href="../../docs/" data-nav-close data-i18n="nav-docs">Documentation</a><a href="#project" data-nav-close data-i18n="nav-project">The project</a><a href="#data" data-nav-close data-i18n="nav-data">Open data</a><button data-action="source" data-i18n="nav-source">Get the source</button><a data-i18n="nav-demo" href="/preview/">Open app</a></div></dialog>
<dialog id="source-dialog" class="site-dialog"><button class="dialog-grip" data-close aria-label="Close"></button><div class="dialog-header"><h2 data-i18n="source-title">Open by design</h2><button class="close" data-close aria-label="Close">×</button></div><div class="dialog-body"><p data-i18n="source-body">Website, documentation, Android, iOS, API and registry source live in one AGPL-3.0-only repository. This source archive is separate from the Android APK download.</p><p data-i18n="source-license">First-party code: AGPL-3.0-only. Synthetic fixtures: CC0. Third-party rights are separate.</p><p><a href="../../docs/#repo">Repository guide</a> · <a href="../../docs/#testing">Build evidence</a> · <a href="../../docs/#licence">Licence scope</a></p><a class="button primary" href="https://github.com/AKolenda/openfuel/releases/latest/download/openfuel-source.zip" data-i18n="source-export">Download the source repository</a></div></dialog>
<dialog id="status-dialog" class="site-dialog"><button class="dialog-grip" data-close aria-label="Close"></button><div class="dialog-header"><h2 data-i18n="status-title">What is ready today</h2><button class="close" data-close aria-label="Close">×</button></div><div class="dialog-body"><p data-i18n="status-web">Web: a working map-first app with shared sample prices, reporting, search, filters and saved stations. Cached prices remain available offline after your first visit.</p><p data-i18n="status-android">Android: native Kotlin / Compose prototype with shared reports, local cached prices, favourites and bottom sheets. Download the APK to install and test it. It is a development build, not a Play Store release.</p><p data-i18n="status-ios">iPhone: native SwiftUI source with the same sample stations and cloud API. Build it on a Mac with Xcode. No signed iPhone download or App Store release is available.</p><p data-i18n="status-data">Data: Cloudflare Workers and D1 store shared prototype reports. All six station records and the illustrated map are synthetic. No live fuel-price feed or verified nationwide coverage is connected.</p></div></dialog>
<dialog id="demo-dialog" class="site-dialog demo-dialog"><div class="demo-toolbar"><span class="wordmark">openfuel</span><span data-i18n="demo-note">Working app · shared sample data</span><button class="close" data-close aria-label="Close preview">×</button></div><iframe id="demo-frame" title="Interactive OpenFuel map prototype" referrerpolicy="no-referrer"></iframe></dialog><script src="app.js" defer></script></body></html>
Loading
Loading