No description
Find a file
Philip Peterson dcb58bbb3a
All checks were successful
deploy / image (push) Successful in 5m17s
Serve Preact from the site: the components rendered nothing
Every component imported Preact, its hooks and htm/preact from esm.sh
separately. htm/preact imports Preact unversioned, which esm.sh now
resolves to Preact 11, while the components asked for preact@10: two
Preacts on one page, so render() drew nothing, silently. Booking, FAQ,
testimonials, carousel, toggle and appointment type were all blank.

Use htm's single-file standalone build instead (Preact 10, its hooks and
html in one module, no further imports), downloaded at image build
pinned by version and checksum, like FullCalendar, and imported from
../vendor/preact-standalone.js. Checked on the live page: the booking
component renders again with it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 06:08:05 -09:00
.forgejo/workflows CI: clone from the forge's public address 2026-11-02 05:36:03 -09:00
.idea Structure 2026-05-12 17:28:47 -07:00
.vscode File extensions 2026-05-08 22:56:06 -07:00
config/sync wip booking flow 2026-05-13 14:55:52 -07:00
docker Fix CI, use postgres drop cascade 2026-06-11 22:25:31 -07:00
node_modules fix scrolling 2026-06-14 01:55:30 -07:00
scripts wip booking flow 2026-05-13 14:55:52 -07:00
web Serve Preact from the site: the components rendered nothing 2026-11-02 06:08:05 -09:00
.gitignore Serve Preact from the site: the components rendered nothing 2026-11-02 06:08:05 -09:00
build.sh Fix styling 2026-05-27 23:42:59 -07:00
CLAUDE.md Suppress duplicate key errors on semaphore table during rebuilds 2026-06-04 00:06:27 -07:00
composer.json Allow the symfony/runtime Composer plugin 2026-11-02 05:39:29 -09:00
docker-compose.yml Fix statelessness 2026-05-28 18:14:59 -07:00
Dockerfile Serve Preact from the site: the components rendered nothing 2026-11-02 06:08:05 -09:00
jsconfig.json wip 2026-06-14 00:08:08 -07:00
Makefile Fix styling 2026-05-27 23:42:59 -07:00
package-lock.json fix scrolling 2026-06-14 01:55:30 -07:00
package.json fix scrolling 2026-06-14 01:55:30 -07:00
README.md Fix statelessness 2026-05-28 18:14:59 -07:00
tailwind.config.js add swatch page, rename colors 2026-06-01 02:46:47 -07:00
tsconfig.json ts fixes 2026-06-14 00:38:35 -07:00

Riverside Physical Therapy

A Drupal-based appointment scheduling site for booking sessions between patients and practitioners.

Running locally

docker compose up --build

Default behavior: Every start performs a full database wipe + rebuilds the entire site from code (content types, fields, menu, etc.). See CLAUDE.md for details and the DRUPAL_FAST=1 escape hatch for faster iteration.

Admin login: admin / admin at /user/login

Makefile commands

make shell        # open a bash shell in the app container
make drush <cmd>  # run any drush command, e.g. make drush cr

Scripts

Seed provider availability

Populates provider_availability nodes for the next calendar month across all active providers, using randomised noise per provider.

make drush php-script scripts/seed_availability.php

Preview without saving:

SEED_DRY_RUN=1 make drush php-script scripts/seed_availability.php

Wipe existing availability for the month before seeding:

SEED_WIPE=1 make drush php-script scripts/seed_availability.php

Running the script twice without SEED_WIPE=1 will create duplicates.

Modules

  • FullCalendar View — interactive appointment calendar
  • Webform — patient booking forms
  • Symfony Mailer — transactional email