# OVDashboard
A fancy dashboard for use in a [THW](https://en.wikipedia.org/wiki/Technisches_Hilfswerk)-Ortsverband (OV).
![Screenshot](./doc/ovdashboard_en.jpg)
## Key Features
- **Clean Look**
All that matters, at one glance!
*Date and Time – Upcoming Events – Public Announcements – News – Pictures*
- **Easy Install**
Set up a RaspberryPi, run the [installer script](TODO), done!
- **DAV Server Interface**
Update your content anytime, from anywhere!
Basic [Markdown](https://www.markdownguide.org/) is enough!
Already have a [Nextcloud](https://nextcloud.com/) instance?
OVDashboard will take it from there!
- **Customizable – Yet Always Recognizable**
Change the Logo – Put your own Title – Publish Pictures – Create Event Lists – Customize the News Ticker Appearance – Adjust Item Rotation Speed
- **Responsive Design**
OVDashboard is made for the big screen – but it also shines in your visitors' mobile browsers!
- **Locale Aware**
No localized strings anywhere – formats generated using [Luxon](https://moment.github.io/luxon/#/), which [respects your browsers' settings](./doc/ovdashboard_de.jpg)!
- **Hackable**
The Dashboard UI is created using [Vue](https://vuejs.org/) and the [Vuetify](https://vuetifyjs.com/) UI library.
*Like my layout, but want it for something completely different? Fork me!*
## Quick Start
Make sure you have a WebDAV and CalDAV account available.
For an all-in-one solution, consider setting up an account on a [Nextcloud](https://nextcloud.com/) instance!
On your WebvDAV account, create a resource (directory) named `ovdashboard`.
The intended installation method is as follows:
1. Have a Raspberry Pi (3 or later) connected to a HDMI screen
1. Boot up "Raspberry Pi OS" (64 bit) and connect the Pi to your local network
1. Download (and review) the [OVDashboard installer](TODO), then run it from a terminal
> If you feel adventurous and want to skip the script review, run `curl --proto '=https' --tlsv1.2 -sSf 'TODO' | sh` instead.
1. Reboot the Raspberry Pi
For a better understanding of your newly created OVDashboard, refer to the [about section](TODO).
## Configuration
## Setup for development and contribution
Refer to the specific README files for [the API](./api/README.md) and [the UI](./ui/README.md) to contribute to one of those sub-projects.
## About the "default" OVDashboard deployment
The default deployment is made up of three parts: The **installer** which runs once, prepares your device for OVDashboard usage and deploys the **client** and the **service**.
The **client** will connect to and display your OVDashboard.
The **service** will run continuously and makes sure your OVDashboard is up to date.
### The OVDashboard installer will:
- install some general-purpose packages
- make you set a new password, if you haven't yet
- install and set up Docker Engine and Mozilla Firefox
- (optionally) enable SSH and/or VNC access to your device
- create the OVDashboard configuration directory `/usr/local/etc/ovdashboard` on your device
- set up the OVDashboard service
- (optionally) set up your device to auto-run the OVDashboard client
### The OVDashboard service will:
- regularly pull the latest `docker` image from [`TODO`](TODO), containing both the OVDashboard API and UI
- ensure a container of that image is always running, using your OVDashboard configuration directory
### The OVDashboard client will:
- open Mozilla Firefox in full-screen mode and browse to the local OVDashboard UI
- enable auto-hiding your mouse cursor