Files
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

35 lines
1.9 KiB
Markdown

# Timepoll Implementation
- [x] Poll model, SQLite persistence, timezone-aware schedules and vote conversion.
- [x] Public/admin API, edit conflicts, live updates and basic abuse limits.
- [x] Poll creation, administration, voting grid and overlap summaries.
- [x] Responsive light/dark UI, touch interactions and accessibility.
- [x] 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
- [x] Explicit added-date collection and pending-date validation.
- [x] Matching time dropdowns and outward rounding on slot-size changes.
- [x] Root-level public/private links; old preview routes removed.
- [x] Direct clipboard copying, tested against the actual clipboard over HTTP.
- [x] Dismiss hover details on pointer exit and page/grid scrolling.
- [x] Other participants' availability and boundaries remain visible through draft selections; combined view after saving or cancelling.
- [x] Compact 15-minute rows on desktop and mobile.
- [x] Emphasized hour labels and rules for 15- and 30-minute grids.