Skip to content

feat: native poster creation#225

Merged
Wand3rerz merged 63 commits into
developfrom
feat/local-poster-trello-replacement
Jun 18, 2026
Merged

feat: native poster creation#225
Wand3rerz merged 63 commits into
developfrom
feat/local-poster-trello-replacement

Conversation

@Wand3rerz

@Wand3rerz Wand3rerz commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Description

Adds an alternative to all functionality currently provided by the trello system.

  • Consolidate static and carousel poster types into one definition.
  • Add database tables for posters and carousels (only one default carousel currently).
  • Add migration for these new tables and migrating static posters.
  • Add feature flag for trello sync.
  • Add endpoints for management of posters.
  • Add endpoints for setting and getting carousel poster order.
  • Add seeding command for special poster types.

Related issues/external references

#193
GEWIS/aurora-client#157
GEWIS/aurora-backoffice#154

Types of changes

  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Breaking changes

Due to major changes to the API endpoints involving the poster systems, this breaks compatibility with clients and backoffice on previous versions.

Migration

GEWIS:

  1. Make sure the database is up to date with a synchronized migrations table.
  2. Run pnpm migrate to setup the database.
  3. Run pnpm seed:gewis-posters to seed the special posters.

Hubble:
No pnpm seed:hubble-posters is included in this pr, to maintain access to e.g. the NS poster a way to create an entry for it has to be enabled. Other than that its the same procedure.

LarsvanDartel and others added 30 commits March 31, 2026 19:47
and fixed route inconsistency in local poster controller
We wanted to put enabled as part of the carousel system right? there is no global notion of enabled or not.
This change does break the client as it still expects the Poster model
Now deletes old and fetches new trello posters every 15 minutes. TODO: add button maybe
Needs good test instance to verify
@Wand3rerz Wand3rerz requested review from Gijsdeman and SuperVK June 11, 2026 12:54
@Wand3rerz Wand3rerz linked an issue Jun 15, 2026 that may be closed by this pull request

@Gijsdeman Gijsdeman left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good initiative 😎

There are some concerns in the services that should be addressed, but I also left some general suggestions for optimizations and refactors with the goal of brevity or legibility. Those are in principle optional, but should make the code easier to maintain in the long term.

Comment thread src/modules/handlers/screen/poster/local/poster-service.ts Outdated
Comment thread src/modules/handlers/screen/poster/local/poster-service.ts Outdated
Comment thread src/modules/handlers/screen/poster/local/poster-service.ts
Comment thread src/modules/handlers/screen/poster/local/poster-service.ts
Comment thread src/modules/handlers/screen/poster/local/poster-service.ts Outdated
Comment thread src/modules/handlers/screen/poster/trello/trello-poster-manager.ts
Comment thread src/modules/handlers/screen/poster/trello/trello-poster-manager.ts
Comment thread src/modules/handlers/screen/poster/trello/trello-poster-manager.ts
Comment thread src/modules/handlers/screen/poster/trello/trello-poster-manager.ts
Comment thread src/modules/handlers/screen/poster/trello/trello-poster-manager.ts Outdated
Wand3rerz and others added 2 commits June 16, 2026 22:05
These are all small immediate improvements, mostly just better typescript. The larger suggestions will be handled separately.

Co-authored-by: Gijs de Man <43375368+Gijsdeman@users.noreply.github.com>
Comment thread src/modules/handlers/screen/poster/local/local-carousel.ts Outdated
Comment thread src/modules/handlers/screen/poster/local/carousel-poster-service.ts Outdated
Comment thread src/modules/handlers/screen/poster/local/poster-controller.ts
Comment thread src/modules/handlers/screen/poster/local/poster.ts
Comment thread src/modules/handlers/screen/poster/carousel-poster-controller.ts
Comment thread src/seed/seedGewis.ts
Comment thread src/database.ts Outdated
Comment thread src/database.ts Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a native, database-backed poster system (including carousel ordering) intended to replace/augment the existing Trello-based poster flow, with migrations + seeding and new management endpoints.

Changes:

  • Introduces Poster and Carousel DB entities with a migration that converts existing local_poster rows into poster rows.
  • Adds poster CRUD/media-upload endpoints and updates static/carousel handlers/controllers to use the new poster service + ordering.
  • Refactors Trello sync to reconcile Trello cards into DB posters behind a Poster.Trello feature flag, and adds seeding for default GEWIS posters.

Reviewed changes

Copilot reviewed 24 out of 24 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
src/seed/seedGewis.ts Adds seedPosters() to seed default GEWIS poster definitions.
src/seed/index.ts Adds a --gewis-posters seeding mode and runs poster seeding in --gewis.
src/modules/timed-events/cron-manager.ts Switches timed-event static poster selection to the new PosterService.
src/modules/handlers/screen/poster/trello/trello-poster-storage.ts Removes old Trello attachment-to-disk storage implementation.
src/modules/handlers/screen/poster/trello/trello-poster-manager.ts Refactors Trello sync to create/update/delete DB-backed posters.
src/modules/handlers/screen/poster/static/static-poster-controller.ts New controller for static poster handler state, clock, and show/hide actions.
src/modules/handlers/screen/poster/static-poster-handler.ts Updates handler state typing to use PosterResponse.
src/modules/handlers/screen/poster/poster.ts Removes legacy in-memory poster type definitions.
src/modules/handlers/screen/poster/poster-screen-handler-settings.ts Adds Poster.Trello setting with default.
src/modules/handlers/screen/poster/poster-manager.ts Removes legacy poster manager abstraction.
src/modules/handlers/screen/poster/local/poster.ts Adds new Poster TypeORM entity + enums.
src/modules/handlers/screen/poster/local/poster-service.ts Adds DB + media storage service for posters (create/update/delete/attach).
src/modules/handlers/screen/poster/local/poster-controller.ts Adds CRUD + media upload + update endpoints for posters.
src/modules/handlers/screen/poster/local/local-poster.ts Removes legacy LocalPoster entity.
src/modules/handlers/screen/poster/local/local-poster-service.ts Removes legacy LocalPosterService.
src/modules/handlers/screen/poster/local/local-poster-controller.ts Removes legacy local poster endpoints.
src/modules/handlers/screen/poster/local/local-carousel.ts Adds Carousel entity to persist poster ordering.
src/modules/handlers/screen/poster/local/carousel-poster-service.ts Adds service to get/set carousel poster order.
src/modules/handlers/screen/poster/carousel-poster-handler.ts Updates handler to use PosterService instead of a poster manager.
src/modules/handlers/screen/poster/carousel-poster-controller.ts Adds endpoints for carousel order + poster enable toggling, and switches to DB posters.
src/migrations/1781087463209-PosterMigration.ts Creates new tables and migrates local_poster rows into poster rows.
src/index.ts Initializes Trello sync at startup when configured + feature enabled.
src/database.ts Registers new entities and migration.
package.json Updates migration/seed scripts and adds seed:gewis-posters.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/modules/handlers/screen/poster/local/poster.ts
Comment thread src/modules/handlers/screen/poster/local/poster-service.ts
Comment thread src/modules/handlers/screen/poster/local/poster-service.ts
Comment thread src/modules/handlers/screen/poster/local/poster-controller.ts Outdated
Comment thread src/modules/handlers/screen/poster/static/static-poster-controller.ts Outdated
Comment thread src/modules/handlers/screen/poster/carousel-poster-controller.ts Outdated
@Wand3rerz Wand3rerz merged commit c1b3ee2 into develop Jun 18, 2026
2 checks passed
@Wand3rerz Wand3rerz deleted the feat/local-poster-trello-replacement branch June 18, 2026 11:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Native poster creation

5 participants