Compare commits

...

3 commits

Author SHA1 Message Date
Dorian Zedler b5cdc09f84
Feat: some more led display stuff
Some checks failed
continuous-integration/drone/push Build is failing
2023-02-18 17:14:04 +01:00
Dorian Zedler e55e0b50f4
Feat: seperate privacy policy for apps and get source code button 2023-01-26 20:43:16 +01:00
Dorian Zedler 5d882ec692
Feat: some history about the fannyapp 2023-01-26 20:42:28 +01:00
23 changed files with 131 additions and 36 deletions

View file

@ -15,4 +15,13 @@ languages:
markup:
goldmark:
renderer:
unsafe: true
unsafe: true
outputFormats:
privacypolicy:
baseName: "privacypolicy"
isPlainText: false
isHTML: true
permalinkable: true
suffix: "html"
mediaType: "text/html"

View file

@ -8,7 +8,15 @@ links:
googleplay: 'https://play.google.com/store/apps/details?id=com.itsblue.blueROCK'
appstore: 'https://apps.apple.com/de/app/bluerock/id1503699996?app=itunes&ign-mpt=uo%3D4'
opensource: 'https://itsblue.dev/dorian/blueROCK'
privacyPolicy: "While you're using blueROCK Itsblue Development does not collect any of your personal data.<br>\r\n<br>\r\nHowever, digitalROCK (provider of rankings and resultservice) may collect personal data. <br>\r\nFurther information can be found in their privacy policy:<br>\r\n<a href=\"https://www.digitalrock.de/?load=kontakt.php%3Fprivacy-policy\" target=\"blank\">https://www.digitalrock.de/?load=kontakt.php%3Fprivacy-policy</a>"
privacyPolicy: |
While you're using blueROCK Itsblue Development does not collect any of your personal data.<br>
<br>
However, digitalROCK (provider of rankings and resultservice) may collect personal data.<br>
Further information can be found in their privacy policy:<br>
<a href=\"https://www.digitalrock.de/?load=kontakt.php%3Fprivacy-policy\" target=\"blank\">https://www.digitalrock.de/?load=kontakt.php%3Fprivacy-policy</a>
outputs:
- html
- privacypolicy
menu:
main:

View file

@ -1,15 +1,20 @@
---
title: Fannyapp
layout: appitem
title: Fannyapp
heroClasses: 'overlay-dark text-light hero-tiny'
heroImageParallax: true
heroAlign: center
image: images/apps/fannyapp.png
imagesDir: images/apps/fannyapp
links:
googleplay: 'https://play.google.com/store/apps/details?id=com.itsblue.flgvertretung'
appstore: 'https://apps.apple.com/de/app/fannyapp/id1495583845'
opensource: 'https://itsblue.dev/dorian/fanny-app'
privacyPolicy: |
While you're using the Fannyapp Itsblue Development does not collect any of your personal data.<br>
<br>
However, Treffpunkt Fanny e.V. (provider of foodplan data) may collect personal data.<br>
Further information can be found in their privacy policy:<br>
<a href=\"http://www.treffpunkt-fanny.de/index.php/datenschutzerklaerung\" target=\"blank\">http://www.treffpunkt-fanny.de/index.php/datenschutzerklaerung</a>
outputs:
- html
- privacypolicy
menu:
main:
@ -19,9 +24,24 @@ menu:
parent: Apps
---
The Fannyapp is an app designed for a school in Stuttgart (Germany).
The Fannyapp was our first public app and the reason we decided to start publishing apps for Apple devices.
<!--more-->
Find out more over here:
[http://www.fanny-leicht.de/j34/index.php/aktuelles/fanny-app](http://www.fanny-leicht.de/j34/index.php/aktuelles/fanny-app)
##### What it is now
It is a simple app for the mensa of my former highschool, [Treffpunkt Fanny](https://treffpunkt-fanny.de), which shows the meals being served in the next ten days.
To accomplish this, we also wrote a php script which parses the [excel table](http://www.treffpunkt-fanny.de/images/stories/dokumente/Essensplaene/current.xlsx), which Treffpunkt Fanny uses to keep track which meals will be served, and turns it into a [REST-API](http://www.treffpunkt-fanny.de/images/stories/dokumente/Essensplaene/api/TFfoodplanAPI.php). The source code of that php script can be found on [GitHub](https://github.com/Fanny-Leicht-Gymnasium/TFfoodplan).
##### What it used to be
Back when I still went to the Fanny-Leicht-Gymnasium, the Fannyapp used to be more than just a meal-plan. It showed events like "The maths class today at 7:30am is cancelled", or "The biology class today at 3:30pm is moved to a diffrent room". The last three screenshots are from back when it could still do that.
I'd like to give a little background on that:
At that time, this so-called "substitution plan" was only available as an ugly pdf at the schools website. It was very annoying to read on a phone, as it was small text and always contained all events for all grades. The app was able to filter the eventy by grade and group (see last screenshot), which made it much more convenient to read.
Also, users had to login to the website every time, since it used plain old http basic authentication. The app could just remember the username and password.
At that time, I was also maintaining the schools main website. Since I found the http basic system very annoying and outdated, the authentication was fully migrated to Joomla (the CMS we were using) on my initiative.
That opened up more possibilities, since I was now able to use Joomlas plugin system to write a [plugin](https://github.com/Fanny-Leicht-Gymnasium/JoomlaFannySubstitutionPlan) which converted the pdf to an easy to parse REST-API.
As you can see, I spent lots of time to develop all of this, and it was my first public project that was actually useful.
So what happened? It's pretty simple actually: The school decided to purchase the commercially available app "Untis mobile" and therefore, my app was no longer needed and truned into a meal-plan.

View file

@ -1,12 +1,14 @@
---
title: 'Led Display Controller'
layout: appitem
heroClasses: 'overlay-dark text-light hero-tiny'
imagesDir: images/apps/leddisplaycontroller
links:
googleplay: 'https://play.google.com/store/apps/details?id=de.itsblue.LedDisplayController'
opensource: 'https://itsblue.dev/itsblue-development/LedDisplay'
privacyPolicy: 'While you are using the Led Display Controller app, Itsblue Development does not collect any of your personal data.'
outputs:
- html
- privacypolicy
menu:
main:

View file

@ -8,7 +8,10 @@ links:
appstore: 'https://apps.apple.com/de/app/speed-climbing-reactiontrainer/id1527603031'
opensource: 'https://itsblue.dev/ScStw/reaction-trainer'
privacyPolicy: 'While you are using the Speed Climbing Reaction Trainer app, Itsblue Development does not collect any of your personal data.'
outputs:
- html
- privacypolicy
menu:
main:
title: Speed Climbing Reaction Trainer

View file

@ -8,7 +8,10 @@ links:
appstore: 'https://apps.apple.com/de/app/speed-climbing-stopwatch/id1527590772'
opensource: 'https://itsblue.dev/scstw/app'
privacyPolicy: 'While you are using the Speed Climbing Stopwatch app, Itsblue Development does not collect any of your personal data.'
outputs:
- html
- privacypolicy
menu:
main:
title: Speed Climbing Stopwatch App

View file

@ -8,3 +8,35 @@
# The LED-Display
The Itsblue LED-Display provides an easy way to show off messages.
02-display:
modularLayout: text
imageAlign: right
image: images/led-display/close-up.jpg
content: |
## Powered by RGB
The display consists of 384 individually adressable RGB LEDs. together, they form a powerful matrix that can be used to display anything you can imagine.
04-bus:
modularLayout: text
align: "left"
image: images/led-display/omobi-bus.jpg
content: |
## Used every day
Our displays are in active use by Omobi busses in southern Bavaria.
<br />
<a href="https://www.omobi.de" target="_blank" class="">More about omobi <i class="fa fa-angle-right"></i></a>
05-app:
modularLayout: text
align: "right"
image: images/apps/leddisplaycontroller/banner.png
content: |
## Easy to configure
Intuitive configuration a feature of itsblue products. The LED display can be easily configured through the led display controller app.
The password protection feature also makes sure, that no unauthorized access can occur.
<br />
<a href="../../apps/leddisplaycontroller/" class="">Get the app <i class="fa fa-angle-right"></i></a>

View file

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 549 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 537 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

View file

@ -18,18 +18,7 @@
<div id="item" class="column col-12 extra-spacing">
<div class="content-item h-entry">
<div class="container">
<div class="columns" style="justify-content: center;">
{{ with .Params.imagesDir}}
<div class="column col-auto" style="display:flex; flex-direction: column; justify-content: center;">
<img src="{{ site.BaseURL }}/{{ . }}/favicon.png" style="max-height: calc(5rem);">
</div>
{{ end }}
<div class="column col-auto" style="max-width: 100%; text-align: center;">
<h1>{{ .Title }}</h1>
</div>
</div>
</div>
{{ partial "iconAndTitle.html" . }}
{{ with .Params.imagesDir }}
<h3>Screenshots</h3>
@ -56,22 +45,16 @@
<a href="{{ . }}" target="blank"><img alt="Get it on Google Play" src="{{site.BaseURL}}/assets/GooglePlay.png"></a><br>
{{ end }}
{{ with .Params.links.appstore }}
<a href="{{ . }}" target="blank"><img alt="Download on the App Store" src="{{site.BaseURL}}/assets/AppStore.png"></a>
<a href="{{ . }}" target="blank"><img alt="Download on the App Store" src="{{site.BaseURL}}/assets/AppStore.png"></a><br>
{{ end }}
{{ with .Params.links.opensource }}
<br><br>
<p>
This app is open-source!
<br>
<a href="{{ . }}" target="blank">{{ . }}</a>
</p>
<a href="{{ . }}" target="blank"><img alt="Download on the App Store" src="{{site.BaseURL}}/assets/GetSourceCode.png"></a><br>
{{ end }}
{{ end }}
{{ with .Params.privacyPolicy }}
<h3>Privacy Policy</h3>
{{ . | safeHTML }}
<br>
<a href="privacypolicy.html">privacy policy <i class="fa fa-angle-right"></i></a>
{{ end }}
</div>

View file

@ -0,0 +1,14 @@
{{ define "content" }}
{{ partial "iconAndTitle.html" . }}
{{ with .Params.privacyPolicy }}
<h3>Privacy Policy</h3>
{{ . | safeHTML }}
{{ end }}
<p class="prev-next text-center">
<a href="index.html"><i class="fa fa-angle-left"></i> back to overview</a>
</p>
{{ end }}

View file

@ -0,0 +1,12 @@
<div class="container">
<div class="columns" style="justify-content: center;">
{{ with .Params.imagesDir}}
<div class="column col-auto" style="display:flex; flex-direction: column; justify-content: center;">
<img src="{{ site.BaseURL }}/{{ . }}/favicon.png" style="max-height: calc(5rem);">
</div>
{{ end }}
<div class="column col-auto" style="max-width: 100%; text-align: center;">
<h1>{{ .Title }}</h1>
</div>
</div>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

View file

@ -12,4 +12,13 @@ min_version: "0.80.0"
author:
name: "Dorian Zedler <mail@dorian.im>"
homepage: "https://dorian.im"
homepage: "https://dorian.im"
outputFormats:
privacypolicy:
baseName: "privacypolicy"
isPlainText: false
isHTML: true
permalinkable: true
suffix: "html"
mediaType: "text/html"