Web Application · Astronomy

Calendula Astronomical Tools

A full-stack single-page application delivering real-time astronomical calculations — sunrise, tides, moon phases, planets, and more — for any city on Earth, any date.

10
Feature Tabs
7
Canvas Charts
1 500+
Cities Covered
REST
Backend API

Features

Ten dedicated views, each backed by a precision astronomy API.

🌅

Sunrise & Sunset

Exact rise and set times with a parabolic altitude chart, sun direction compass, real-time altitude and distance, and a full monthly table.

🌕

Moonrise & Moonset

Moon events with illumination percentage, phase name, altitude arc chart, direction, and distance. Noon / Now toggle updates all values in real time.

🌆

Twilight Times

Civil, nautical, and astronomical twilight periods displayed on a midnight-to-midnight stacked bar chart and a segmented donut showing the current period.

🌑

Moon Phases

New moon, first quarter, full moon, and last quarter with exact times, a monthly illumination table, and a donut chart scaled to the lunar cycle.

🌿

Seasons

Precise solstice and equinox dates and times for the current year, with duration of each season and a circular chart aligned to the calendar year.

🪐

Planet Positions

Real-time altitude, direction, rise/set, and distances to Earth and Sun for all seven naked-eye planets, plus a grouped bar distance chart.

🌊

Tide Times

High and low tide predictions from the EOT20 global ocean tide model. Smooth spline chart with height in metres, available for 1 500+ coastal cities.

🎣

Solunar Calendar

Daily major and minor solunar periods, overall activity rating, and moon phase — useful for planning fishing, hunting, and wildlife observation.

📓

Astronomic Journal

All events for the day merged into a single chronological feed — a consolidated view replacing twelve separate API requests with one aggregated endpoint.

🕐

World Clock

Current local time in major cities worldwide with time-zone comparison. Persists the user's city selection across sessions via cookies.

Technology Stack

Modern frontend built on Vue 2 with a Python/Django astronomy backend.

Frontend Framework

Vue 2 Vuex Vue Router Single-Page App Component Mixins

UI & Styling

Bootstrap 5 Font Awesome flag-icons CSS Grid / Flexbox

Data Visualisation

HTML5 Canvas API Custom chart engine HiDPI / Retina support ResizeObserver SVG donut charts

Networking

Axios Bearer token auth 429 rate-limit handling Promise.allSettled

Mapping

Leaflet vue2-leaflet Browser Geolocation API Reverse geocoding

Observability

Sentry @sentry/vue Error tracking Performance monitoring

Build & Quality

Vue CLI Webpack Babel ESLint plugin:vue/recommended

Backend

Python / Django Skyfield REST API SHA-256 cache middleware EOT20 tide model

Infrastructure

Apache Virtualmin Static dist deploy Midnight cache warm cron

Architecture

Clean separation across four layers with a caching strategy optimised for SEO and API cost.

Browser

  • Vue 2 SPA
  • Vuex store
  • History-mode router
  • Cookie city persistence
  • Canvas chart engine

Geo API (Locci)

  • Nearest city lookup
  • Timezone resolution
  • City slug routing
  • 1 500+ city database

Astronomy API (Astra)

  • Skyfield ephemeris
  • Sun, Moon, Planets
  • Tides (EOT20)
  • Solunar periods
  • Journal aggregation

Cache Layer

  • SHA-256 request key
  • Noon-defaulting requests
  • Midnight cache warm
  • Server-side middleware

Technical Highlights

Engineering decisions worth noting.