Modernize BookIT UI, runtime, and deployment - #117
Open
Portals wants to merge 41 commits into
Open
Conversation
Migrate to pnpm 12 and Vite+, React 19 with shadcn and FullCalendar, TanStack Router and Query, Apollo Server, Prisma 7, and generated TypeScript contracts. Restore compact room filters and original calendar, booking, and rules behavior. Add signed sessions, private phone fields, serializable booking writes, modern CI, and real Gamma Playwright coverage. Keep PostgreSQL 12 and Redis 5 server upgrades as documented separate follow-ups. Verified 45 unit/API tests, four E2E flows, strict types and lint, production builds, clean dependency audit, and local Docker smoke tests.
Invalidate the moved booking's detail query alongside all calendar ranges. Cover opening details, dragging, immediately editing and preserving the moved timestamps in the real browser suite.
Build frontend and backend from the repository root, replace obsolete demo Gamma settings with required current OIDC configuration, and keep backing services private on the deferred database versions. Document explicit schema setup and existing database storage migration precautions.
Split four packed flows into ten independent tests while sharing the existing worker environment. Separate setup, actions and assertions with whitespace, format all E2E files with Vite+, and document role-first selectors with date/time label fallbacks. Verified ten browser tests, the retained mobile day-view regression, 45 unit/API tests, strict TypeScript and formatting/lint checks.
Portals
commented
Sep 6, 2026
Portals
commented
Sep 6, 2026
Portals
commented
Sep 6, 2026
This was
linked to
issues
Sep 6, 2026
Portals
commented
Sep 6, 2026
Portals
commented
Sep 6, 2026
Portals
marked this pull request as ready for review
September 6, 2026 16:42
Member
Member
Author
I think I fixed it. Updated the screenshots. @GAsplund |
Member
Member
Author
|
@GAsplund I see! Check it out, all fixed. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Important
Deployment changes:
bookit-node-frontendandbookit-node-backendhave been merged intobookit-node.ghcr.io/cthit/bookit:<tag>. Route/and/api/*to its port 8080 and remove the separate frontend deployment.DB_HOST,DB_NAME,DB_USER, andDB_PASS;DB_PORTdefaults to5432.NODE_ENV=production. Keep the existingSECRET; no new key is required.SESSION_SECRETis accepted only as a compatibility fallback.db-scriptscleanup container or scheduled job. The backend cleans up old booking contact data automatically at startup and daily.Modernizes BookIT across the UI, runtime, and deployment. Replaces the legacy frontend with TypeScript and shadcn/ui, generates GraphQL contracts, strengthens booking concurrency and contact-data privacy, and serves the frontend and API from one container.
Review guide
Dependency changes
Removed unused legacy dependencies including express-session, connect-redis, js-base64, qs, prop-types and web-vitals. Moved personal-data cleanup from the separate Jobber container into the backend. Updated CI and container builds for the workspace layout.
PostgreSQL 12 and Redis 5 server upgrades are intentionally deferred to separate PRs.
Issues resolved
Screenshots
Desktop
Rules table
Calendar — list view
Calendar — month view
Calendar — week view
Mobile
Mobile — booking form
Mobile — rules table
Mobile — list view
Mobile — month view