Files
docker-images/timepoll/PLAN.md
T
ajp_anton 4cc2e8fc80
Build custom container images / build (map[base_image:php:8-fpm-alpine build_args:PHP_VERSION=8 context:php8-pgsql fingerprint_command:{ apk info -v | LC_ALL=C sort; find /usr/local/lib/php/extensions /usr/local/etc/php/conf.d -type f -exec sha256sum {} + | LC_ALL=C sort; } name:ph… (push) Successful in 49s
Build custom container images / build (map[base_image:postgres:18 build_args:PG_VERSION=18 POSTGIS_VERSION=3 VCHORD_VERSION=0.5.3 context:postgres fingerprint_command:{ dpkg-query -W -f='${binary:Package}=${Version}\n' | LC_ALL=C sort; find /usr/lib/postgresql -type f -exec sha256su… (push) Successful in 1m42s
Build custom container images / build (map[base_image:python:3 build_args:PYTHON_VERSION=3 context:python-tools fingerprint_command:{ dpkg-query -W -f='${binary:Package}=${Version}\n' | LC_ALL=C sort; pip freeze | LC_ALL=C sort; } name:python-tools oci_labels:org.opencontainers.ima… (push) Successful in 54s
Build custom container images / build (map[base_image:python:3.12-slim build_args:PYTHON_VERSION=3.12-slim context:linkki-tiedotus fingerprint_command:{ dpkg-query -W -f='${binary:Package}=${Version}\n' | LC_ALL=C sort; pip freeze | LC_ALL=C sort; } name:linkki-tiedotus oci_labels:… (push) Successful in 29s
Build custom container images / build (map[base_image:python:3.12-slim build_args:PYTHON_VERSION=3.12-slim context:timepoll fingerprint_command:{ dpkg-query -W -f='${binary:Package}=${Version}\n' | LC_ALL=C sort; pip freeze | LC_ALL=C sort; } name:timepoll oci_labels:org.opencontai… (push) Successful in 44s
Add Timepoll availability polling application and image
2026-09-09 19:39:40 +00:00

1.9 KiB

Timepoll Implementation

  • Poll model, SQLite persistence, timezone-aware schedules and vote conversion.
  • Public/admin API, edit conflicts, live updates and basic abuse limits.
  • Poll creation, administration, voting grid and overlap summaries.
  • Responsive light/dark UI, touch interactions and accessibility.
  • Backend and browser tests, Docker image definition, build workflow and documentation.

Public codes use nine Crockford Base32 characters (3-3-3); private admin codes use twelve (4-4-4). Participant editing is intentionally trust-based. There are no accounts, calendar integrations, notifications or meeting durations. All persisted voting intervals are UTC instants; IANA timezones control display and conversion of the creator's local daily schedule.

Verification

  • 24 backend tests pass, including DST transitions, half-hour transitions, vote conversion, edit conflicts, code collisions and restart persistence.
  • Chromium desktop and touch/mobile tests pass in light/dark modes, including live updates and a 320-pixel-wide editing viewport.
  • Ruff, workflow/Compose YAML validation and whitespace checks pass.
  • The build workflow runs the backend tests before building and publishing the Docker image. Publishing an image does not deploy a running service.

Usability Follow-Up

  • Explicit added-date collection and pending-date validation.
  • Matching time dropdowns and outward rounding on slot-size changes.
  • Root-level public/private links; old preview routes removed.
  • Direct clipboard copying, tested against the actual clipboard over HTTP.
  • Dismiss hover details on pointer exit and page/grid scrolling.
  • Other participants' availability and boundaries remain visible through draft selections; combined view after saving or cancelling.
  • Compact 15-minute rows on desktop and mobile.
  • Emphasized hour labels and rules for 15- and 30-minute grids.