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
1.9 KiB
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.