BiblioStatus

Real-time opening status of Finnish public libraries on an interactive map.

BiblioStatus app screenshot showing Finnish libraries on a map

Features

πŸ—ΊοΈ

Live Status Map

Colour-coded markers: open, self-service, closed. The status is recomputed every minute, so it changes while the page is open.

πŸ“

Find Nearest Library

Uses GPS to find the 3 (phone) or 5 (desktop) closest open libraries with distances, and can look only for libraries with a chosen service.

πŸ”Ž

Search All Libraries

Type part of a name and pick a library in any city: the map jumps to it, close up.

🏷️

City and Service Filters

240+ services, and an All Cities choice to see every library at once. The lists follow each other and say so when a choice no longer fits.

πŸ”—

Shareable Links

The filters are in the page address, so a link opens the same view and a reload keeps it.

πŸ“Š

Service Statistics

How common each service is, per city, as a chart and a table.

πŸ“…

Complete Daily Schedule

All opening periods for the day with their statuses, and the current one marked.

πŸ“ž

Contact and Directions

Phone and e-mail links, the library's website, and one-click Google Maps directions.

πŸŒ—

Light and Dark Mode

Light by default, one click to dark. The map follows.

πŸ“±

Mobile Optimized

A layout that works on phones, tablets and desktop.

πŸ›Ÿ

Says When Data Is Missing

If the database is unreachable the page shows the last good data or the nightly backup, and tells you which, instead of failing silently.

πŸ”„

Updated Every Night

Opening hours for the next seven days are fetched every night via GitHub Actions; library details and services every week.

Built With

R
Language
Shiny
Framework
Leaflet
Maps
Turso
Cloud Database
SQLite
Fallback DB
Docker
Container
Cloud Run
Deployment
GitHub Actions
Automation

How It Works

1

Fetch

GitHub Actions fetches the next seven days of opening hours every night, and the library details and services every week, from the Kirkanta API.

2

Store

The data is written to Turso (cloud SQLite) in all-or-nothing steps, so a visitor never sees a library without hours. Past days are kept, and a SQLite backup comes with the app.

3

Load

The Shiny app reads Turso (shared between visitors for a few minutes), and falls back to the SQLite backup if it has to, saying so on the page.

4

Display

Libraries are plotted on the map, and their status colours are recomputed from the opening hours every minute.

Data Source

BiblioStatus uses the official Finnish Libraries API (Kirkanta) to fetch library information and opening hours.

Map tiles © Esri — Esri, HERE, Garmin, © OpenStreetMap contributors, and the GIS user community.

# Kirkanta API v4 # https://api.kirjastot.fi/ # Fetch library data GET "https://api.kirjastot.fi/v4/library" # Fetch schedules GET "https://api.kirjastot.fi/v4/schedules"