Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
261 commits
Select commit Hold shift + click to select a range
9933fba
Replace v-model with separate value and event handler props
Yoronex Jan 20, 2024
cd05fa7
Add effect settings dialog with simple color selector
Yoronex Jan 20, 2024
c20cfa7
Fix auth store
Gijsdeman Jan 20, 2024
9b13419
Add separate component for effect creation dialogs
Yoronex Jan 21, 2024
974fb5b
Improve effects controller page layout
Yoronex Jan 21, 2024
c072b8a
Refactor EffectsController state to separate stores
Yoronex Jan 21, 2024
b1e4da3
Implement store action to send created effects to core
Yoronex Jan 21, 2024
9ee560a
Improve and finish BeatFadeOut parameter selection
Yoronex Jan 21, 2024
2ce7801
Add strobe button
Yoronex Jan 21, 2024
882ac95
Improve layout of chosen effects card
Yoronex Jan 21, 2024
bca9f68
Add SearchLight create dialog
Yoronex Jan 21, 2024
32d2863
Add global error handling
Gijsdeman Jan 21, 2024
205c03b
Remove locales
Gijsdeman Jan 21, 2024
cc75542
Add husky
Gijsdeman Jan 21, 2024
ed5e882
Add settings dialogs for remaining effects
Yoronex Jan 22, 2024
ba39f06
Add consistent theme
Gijsdeman Jan 22, 2024
5eefcbe
Fix lint-staged config
Gijsdeman Jan 22, 2024
e0fe121
[WIP] Temporary fix for toast errors
Gijsdeman Jan 23, 2024
771dfbd
Update toast for error handling
Gijsdeman Jan 23, 2024
2035f8c
Fix build & dockerize application
Yoronex Jan 24, 2024
6369500
Fix crash on initial load
Yoronex Jan 24, 2024
1af1272
Add proxy to backend to nginx docker config
Yoronex Jan 24, 2024
5c45514
Fix incorrect statics location & crash on start due error 401
Yoronex Jan 24, 2024
c64a4f2
Reduce amount of invalid API calls when user is not authenticated
Yoronex Jan 27, 2024
52254f8
Add socketIO integration with beat visualizer in effects controller
Yoronex Jan 27, 2024
3b45506
Add dialog to configure artificial beat generator
Yoronex Jan 27, 2024
3f5f8f8
Fix typing issues
Yoronex Jan 27, 2024
8fea62f
Update client to latest backend
Yoronex Jan 28, 2024
5459892
Separate color and movement effects
Yoronex Jan 28, 2024
e0d1ce5
Add more parameters to static color
Yoronex Jan 28, 2024
89ad6f0
Add RandomPosition and TableRotate movement effects
Yoronex Jan 28, 2024
6c17da7
Add dark mode with toggle in top menu bar
Yoronex Jan 29, 2024
6c8e34c
Fetch OIDC parameters dynamically from backend
Yoronex Jan 31, 2024
c6fd1fb
Update client
Yoronex Jan 31, 2024
ee02198
Update client
Yoronex Feb 4, 2024
0e5b880
Start with putting all subscribers on dashboard real-time
Yoronex Feb 4, 2024
7fe4763
Add all subscriber status to dashboard with handler dropdown
Yoronex Feb 17, 2024
efe9b0a
Update client to support socket IDs list
Yoronex Feb 21, 2024
29ae00f
Add currently playing track to dashboard
Yoronex Feb 24, 2024
219acb8
Start with Centurion mode view to select mixtape
Yoronex Feb 24, 2024
c2a5111
Add panel for info about currently active mixtape with operation buttons
Yoronex Feb 24, 2024
abde1a4
Add Centurion quit button with confirmation modal
Yoronex Feb 24, 2024
bd54ec8
Update subscriber entities on connect event
Yoronex Feb 25, 2024
cdaaeb0
Fix typing issues
Yoronex Feb 25, 2024
0b8f006
Add page to see all loaded posters
Yoronex Mar 1, 2024
df14792
Add loading spinner
Yoronex Mar 1, 2024
f81b9d8
Remove auto generated file
Gijsdeman Mar 6, 2024
ac69b81
Auto mock login in development
Gijsdeman Mar 6, 2024
c25ff6c
Intercept error messages
Gijsdeman Mar 6, 2024
0593661
Fix all lint and prettier issues
Gijsdeman Mar 6, 2024
f23193f
Fix build errors
Gijsdeman Mar 6, 2024
49c1038
Fix lint conflicts
Gijsdeman Mar 7, 2024
d790bd0
Refactor to new client
Gijsdeman Mar 7, 2024
983685f
Finish new client, implement infoscreensettings
Gijsdeman Mar 9, 2024
e046734
Remove api from upstream
Gijsdeman Mar 9, 2024
9bcdb42
Update client generate scripts
Gijsdeman Mar 9, 2024
49f2d16
Fix dashboard handler selector width
Yoronex Mar 17, 2024
0668d74
Fix crash when LDAP is not connecting and throwing a 404 error
Yoronex Mar 17, 2024
a4f0e95
Improve Effects Controller layout and user experience
Yoronex Mar 17, 2024
c518996
Improve EffectsController button naming, disabling and coloring
Yoronex Mar 17, 2024
966f7bd
Update PrimeVue with Lara theme to v3.50.0
Yoronex Mar 31, 2024
355787d
Add time trail race stepper to implement play workflow
Yoronex Mar 31, 2024
39b8e49
Add scoreboard panel to TimeTrailRaceView
Yoronex Mar 31, 2024
459f131
Improve TimeTrailRace layout
Yoronex Apr 2, 2024
dd12a80
Fix not building
Yoronex Apr 2, 2024
cfa9dd1
Add poster borrel mode toggle
Yoronex Apr 26, 2024
11a8729
Add gobo property to Static Color effect
Yoronex Apr 28, 2024
e888d7b
Add classic rotate effect
Yoronex Apr 28, 2024
8aecf80
fix: centurion mode not enabled error message
Yoronex May 3, 2024
6ccb424
feat: add TimeTrialRace stop button
Yoronex May 22, 2024
205fbfb
feat: add scenes controller page
Yoronex Jun 5, 2024
fcc9c47
feat: remove copyright banner
Yoronex Jun 14, 2024
2ee4a48
feat!: update client to latest version
Yoronex Jun 17, 2024
259543c
chore!: update client to latest version
Yoronex Jun 17, 2024
08752ca
feat: add shortcut panel to dashboard
Yoronex Jun 19, 2024
e8b80c0
feat: add goboRotate option to StaticColor lights effect
Yoronex Jun 19, 2024
291f160
feat: add predefined lights scenes shortcut to dashboard
Yoronex Jun 19, 2024
20bd257
chore: remove console logging & simple undefined error
Yoronex Jun 19, 2024
59d7c6c
feat: add shortcut icons for modes
Yoronex Jun 26, 2024
c80ee02
feat: add audit logs to dashboard
Yoronex Jun 27, 2024
737de41
feat: update audit logs real time using websocket
Yoronex Jun 27, 2024
18e7f70
fix: layout issues on small displays
Yoronex Jun 27, 2024
8c8a789
feat: improve time trail race button size & add reset button
Yoronex Jun 27, 2024
68f5f48
feat: add lights fixture management page
Yoronex Jun 29, 2024
130a034
chore: update README
Yoronex Oct 13, 2024
5876164
chore: add AGPL-3.0 license
Yoronex Oct 13, 2024
00fd57a
chore: update links in README
tomudding Oct 13, 2024
133b1e5
fix(gen-client): Renamed from narrowcasting to Aurora
SuperVK Oct 14, 2024
fc9489b
[WIP] initial changes to sakai
Gijsdeman Jun 27, 2024
e81cd33
feat: sakai styling
Gijsdeman Jun 28, 2024
cccb7eb
chore: minor build changes
Gijsdeman Jun 28, 2024
e0c138b
feat: add temporary ico
Gijsdeman Jun 29, 2024
b3f973b
feat: mobile sidebar support
Gijsdeman Jun 29, 2024
5fc3b42
feat: update subscriber overviews
Gijsdeman Jun 29, 2024
518460e
fix: faulty topbar alignments
Gijsdeman Jun 29, 2024
5341138
feat: initial update handler components
Gijsdeman Jun 29, 2024
1b1825f
feat: add new favicon
Gijsdeman Jun 30, 2024
bc08b6d
refactor: shuffle around components
Gijsdeman Jun 30, 2024
1946a34
feat: dashboard update
Gijsdeman Jun 30, 2024
34eda2d
feat: make shortcuts two columns
Gijsdeman Jul 1, 2024
48c1f25
feat: update audit logs styling
Gijsdeman Jul 1, 2024
53ce164
feat: introduce better responsivity
Gijsdeman Aug 16, 2024
f3cd4ca
fix: minor dashboard issues
Gijsdeman Aug 16, 2024
7d8f526
refactor: remove fontawesome
Gijsdeman Aug 16, 2024
b277ec0
chore: update packages
Gijsdeman Aug 16, 2024
d17aa26
fix: husky script
Gijsdeman Aug 16, 2024
0e40bfe
refactor: update containers
Gijsdeman Aug 16, 2024
f5e3699
refactor: upgrade to PrimeVue 4
Gijsdeman Aug 17, 2024
bc369a3
fix: final stylistic issues
Gijsdeman Aug 17, 2024
a46bc1e
fix: routing to fixtures
Gijsdeman Aug 17, 2024
866e42d
fix: font resolve issues
Gijsdeman Aug 17, 2024
64563e6
refactor: move to tailwindcss
Gijsdeman Aug 18, 2024
ad92513
[WIP] Centurion mode rewrite
Gijsdeman Aug 18, 2024
1bc7bef
feat: upgrade packages and client
Gijsdeman Oct 6, 2024
4e44d87
fix: add baseroute to client
Gijsdeman Oct 6, 2024
c067f48
feat: user control and store updates
Gijsdeman Oct 6, 2024
563937d
feat: first layer authentication
Gijsdeman Oct 9, 2024
1925203
docs(centurion-store): add comments
Gijsdeman Oct 14, 2024
ae4fad8
fix(centurion-mode): faulty initialization check
Gijsdeman Oct 14, 2024
22bb835
feat(layout-store): add documentation and resize listeners
Gijsdeman Oct 15, 2024
af158ba
refactor(centurion): rework centurion view
Gijsdeman Oct 16, 2024
c633cdf
refactor(layout): extract delete confirmation button
Gijsdeman Oct 17, 2024
00916f9
feat(sass): update dependencies
Gijsdeman Oct 17, 2024
563a3fe
refactor(eslint): upgrade eslint
Gijsdeman Oct 17, 2024
c57c3d0
ci(github): add template files and depandabot
Gijsdeman Oct 19, 2024
78718e9
fix(centurion): final styling touchups
Gijsdeman Oct 19, 2024
2b96f7b
fix(icons): remove lingering files
Gijsdeman Oct 19, 2024
99ae5a0
refactor(layout): extract standard box
Gijsdeman Oct 19, 2024
2b6bc39
refactor(centurion): extract stepper exponent
Gijsdeman Oct 19, 2024
9f03086
docs(time-trail-store): add annotations to store
Gijsdeman Oct 20, 2024
93462ac
refactor(confirm-dialog): extract properly
Gijsdeman Oct 20, 2024
26e02f1
feat(stepper-wrapper): add extra props
Gijsdeman Oct 20, 2024
2be8194
fix(centurion): properly use refactorered components
Gijsdeman Oct 20, 2024
a8ded38
fix(shortcut): remove console log
Gijsdeman Oct 20, 2024
7dd5cc0
feat(time-trail): overhaul ui
Gijsdeman Oct 20, 2024
c1b9580
feature(error): implicit error handling
Gijsdeman Oct 28, 2024
9090bbb
fix(dashboard): light group layout
Gijsdeman Oct 28, 2024
7359db4
feat(audit): proper error handling
Gijsdeman Oct 28, 2024
368c870
feat(posters): update posters to UI
Gijsdeman Oct 29, 2024
4ad2dcd
fix(effects): fix general layout
Gijsdeman Oct 29, 2024
7f5400f
docs(github): issue templates
Gijsdeman Oct 30, 2024
2b96cb9
chore(yarn): update missing locations to yarn
Gijsdeman Oct 30, 2024
55189c7
fix(css): remove unnecessary colors
Gijsdeman Oct 30, 2024
732ac85
fix(auth): remove double authorization check
Gijsdeman Oct 30, 2024
c0c9955
chore(api-client): fix client generation from backoffice side
Gijsdeman Oct 30, 2024
f1ec840
fix(todos): remove and update todos
Gijsdeman Oct 30, 2024
f5f3aa8
refactor(time-trail-race): remove unnecessary await-then-catch clauses
Gijsdeman Oct 30, 2024
901ab96
fix(lights): updates types for new client
Gijsdeman Oct 30, 2024
4fa7ed0
Revert "fix(css): remove unnecessary colors"
Gijsdeman Oct 30, 2024
916c150
refactor(effects): move flex-col up a layer
Gijsdeman Oct 30, 2024
b129d82
fix(centurion): add artist as identifier for a tape
Gijsdeman Oct 30, 2024
ff52c79
refactor(noop): remove unnecessary noops
Gijsdeman Oct 31, 2024
d575c62
Feature/UI overhaul (#10)
Gijsdeman Oct 31, 2024
6710337
ci(workflows): add workflows for linting and building
Gijsdeman Nov 2, 2024
3c241b4
ci(dockerfile): update dockerfile
Gijsdeman Nov 2, 2024
8e79ddf
build(deps): upgrade dependencies
Gijsdeman Nov 3, 2024
618d9d9
build(node): upgrade to node 22
Gijsdeman Nov 3, 2024
15ddd9f
docs(readme): update node 22 dependency
Gijsdeman Nov 4, 2024
06a7937
build(deps): upgrade dependencies (#12)
Gijsdeman Nov 4, 2024
dfab506
CI/workflows (#11)
Gijsdeman Nov 6, 2024
e2789b6
fix(semantic-release): various fixes
Gijsdeman Nov 6, 2024
152a4d8
chore(semver): add config to disable GitHub comments on releases (#14)
tomudding Nov 8, 2024
03d78bd
Revert "chore(semver): add config to disable GitHub comments on relea…
Gijsdeman Nov 8, 2024
69f4f44
fix(auth): fix endless authentication loop
Gijsdeman Nov 8, 2024
1448bf1
refactor(eslint): use default GEWIS config
Gijsdeman Nov 3, 2024
7fe21b9
feat(prettier): use shared GEWIS config
Gijsdeman Nov 3, 2024
eed4020
feat(centurion): add loading to initialize & cursor pointer to play
Yoronex Nov 11, 2024
9fd5208
feat(settings): add Server Settings page
Yoronex Nov 16, 2024
9f9efa2
feat(settings): add updating settings
Yoronex Nov 16, 2024
32bc477
feat(settings): disable child settings if parent feature flag is off
Yoronex Nov 16, 2024
493c890
Merge branch 'feat/settings-menu' into develop
Yoronex Nov 16, 2024
2c58376
feat(settings): add feature flags to hide modes if disabled
Yoronex Nov 16, 2024
1ce1740
feat(settings): add feature flags to hide modes if disabled (#15)
Yoronex Nov 17, 2024
f757443
feat(poster): Add Hubble Poster view (#17)
SuperVK Dec 29, 2024
856d4e4
feat(timed-events): add administration interface for new timed events…
Yoronex Jan 5, 2025
4bf07f2
fix(timed-events): skipNext must be undefined instead of false/undefi…
SuperVK Feb 3, 2025
5a201c9
ci: bump GEWIS actions to v1 (#23)
JustSamuel Feb 3, 2025
1d754e7
feat(effect-controller): add new effects controller based on preconfi…
Yoronex Feb 5, 2025
3668d77
ci: fix typo in github action
JustSamuel Feb 6, 2025
c718f5b
ci: fix type in github action
Yoronex Feb 6, 2025
d35e2b0
feat(fixtures): improved overview with support for new fixture settin…
Yoronex Feb 18, 2025
f948c54
ci: dependabot
Gijsdeman Feb 20, 2025
94b58f0
chore(deps): bump dependencies
dependabot[bot] Feb 28, 2025
251c462
ci: update dependabot
Gijsdeman Mar 4, 2025
af296db
chore(deps): update dependencies
dependabot[bot] Mar 4, 2025
96d6fc4
ci: change client for develop branches
Gijsdeman Mar 21, 2025
71eebb4
ci: change client for develop branches (#53)
Gijsdeman Mar 21, 2025
7fe8008
feat(spotify): add Spotify settings view (#27)
Yoronex Mar 22, 2025
3de320f
feat(static-poster): adds new static poster management view (#49)
Yoronex Mar 22, 2025
c072c62
chore(posters): merge GEWISPosterHandler and HubblePosterHandler into…
Yoronex Mar 22, 2025
a3d52de
chore(deps): update all dependencies to quiet Dependabot (#54)
Yoronex Mar 23, 2025
7a30f80
ci: only run build-develop action on push to develop
Yoronex Mar 23, 2025
528ebd6
feat(centurion): add start timestamp to go to the beginning of the in…
Yoronex Mar 26, 2025
1b672db
fix(layout): main menu always being closed on large displays (#57)
Yoronex Mar 26, 2025
158151d
feat: splash for browser console (#58)
Gijsdeman Mar 26, 2025
36765db
fix: install gewis splash as package (#64)
SuperVK Apr 1, 2025
e9096b0
fix(auth): infinite loading when authorizing/logging in (#68)
Gijsdeman Apr 2, 2025
4224356
chore(deps): bump tailwindcss-primeui from 0.5.1 to 0.6.1 (#60)
dependabot[bot] Apr 2, 2025
ed0f18f
chore(deps): bump @hey-api/client-fetch from 0.8.3 to 0.9.0 (#62)
dependabot[bot] Apr 2, 2025
d134e60
chore(deps-dev): bump the development_minors_and_patches group across…
dependabot[bot] Apr 2, 2025
0fbce99
fix(lights-effects): small UX issues in simple effects controller for…
Yoronex Apr 9, 2025
ad7fe7b
feat: add integration users to allow other services to integrate with…
Yoronex Apr 9, 2025
a6c6523
fix(spotify): replace URL after Spotify login callback & fix too larg…
Yoronex Apr 9, 2025
5943aac
style: fix Tailwind autocomplete in Webstorm (#81)
Yoronex Apr 22, 2025
912ec5e
feat: add a beat generators overview to see all active beat generator…
Yoronex Apr 22, 2025
359be04
chore(deps): bump @tailwindcss/postcss from 4.0.17 to 4.1.3 (#72)
dependabot[bot] Apr 22, 2025
8660d7e
chore(deps): bump dotenv from 16.4.7 to 16.5.0 (#77)
dependabot[bot] Apr 22, 2025
1b44fdd
chore(deps): bump cronstrue from 2.57.0 to 2.59.0 (#78)
dependabot[bot] Apr 22, 2025
23965b5
chore(deps): bump the production_patches group across 1 directory wit…
dependabot[bot] Apr 23, 2025
446b9eb
chore(deps-dev): bump the development_minors_and_patches group across…
dependabot[bot] Apr 23, 2025
dd6e3a6
feat: changes the primary color from rose red to amber (#82)
Yoronex Apr 25, 2025
c52b1bb
chore: implement feedback on release PR (#86)
Yoronex Apr 25, 2025
b084284
ci: fix Python missing in Docker image
Yoronex Apr 25, 2025
d9aed6f
ci: remove redundant & failing apk add command
Yoronex Apr 25, 2025
efacb36
fix(poster): update urls for poster to reflect reality (#89)
SuperVK Apr 28, 2025
7bc9d5e
chore(deps-dev): bump the development_minors_and_patches group across…
dependabot[bot] Apr 29, 2025
5714dbd
chore(deps): bump vue-router from 4.5.0 to 4.5.1 in the production_pa…
dependabot[bot] Apr 29, 2025
bded883
chore(deps): bump cronstrue from 2.59.0 to 2.60.0 (#95)
dependabot[bot] May 5, 2025
ee0ad99
chore(deps): bump @tailwindcss/postcss from 4.1.4 to 4.1.5 in the pro…
dependabot[bot] May 5, 2025
e2ccc77
chore(deps-dev): bump the development_minors_and_patches group across…
dependabot[bot] May 5, 2025
3d4d041
chore(deps): bump cronstrue from 2.60.0 to 2.61.0 (#101)
dependabot[bot] Jun 4, 2025
7d2b278
chore(deps): bump the production_patches group across 1 directory wit…
dependabot[bot] Jun 4, 2025
73d7c54
fix: stores not initializing when refreshing the page while logged in…
Yoronex Jun 4, 2025
85544cd
chore(deps-dev): bump the development_minors_and_patches group across…
dependabot[bot] Jun 4, 2025
018de21
chore(deps): bump the production_patches group across 1 directory wit…
dependabot[bot] Jul 3, 2025
bffc71b
chore(deps-dev): bump the development_minors_and_patches group across…
dependabot[bot] Jul 3, 2025
daacefd
chore(deps): bump dotenv from 16.5.0 to 16.6.1 (#120)
dependabot[bot] Jul 8, 2025
a1d467a
chore(deps): bump the production_patches group across 1 directory wit…
dependabot[bot] Jul 8, 2025
9822b00
chore(deps-dev): bump eslint from 9.30.1 to 9.31.0 in the development…
dependabot[bot] Jul 21, 2025
dfcae4d
chore(deps): bump the production_patches group across 1 directory wit…
dependabot[bot] Oct 15, 2025
4f55685
fix(audit-log): improved timestamp formatting (#138)
ijsbol Oct 21, 2025
b405af8
chore: upgrade to yarn v4
SuperVK Feb 5, 2026
1130b0d
ci: workflow fix (#150)
SuperVK Feb 5, 2026
94c1724
fix(confirm-dialog): add prop for accept label (#149)
LarsvanDartel Feb 5, 2026
95affe6
fix: lint fix
SuperVK Feb 5, 2026
a4110a0
feat(status): show satus updates in tooltip for status icon (#151)
LarsvanDartel Feb 13, 2026
ac98465
fix: enable corepack
SuperVK Feb 13, 2026
7881d3c
ci: use pnpm install for aurora-core (#155)
Gijsdeman Jun 19, 2026
c5d8eac
feat: native poster creation (#154)
Wand3rerz Jun 19, 2026
94ad122
chore: move files to subdir for monorepo merge
Gijsdeman Jun 21, 2026
6e541b9
chore: import aurora-backoffice with history
Gijsdeman Jun 21, 2026
ac9d428
chore: remove unused files
Gijsdeman Jun 21, 2026
c17eb11
chore: use monorepo resolved api-client
Gijsdeman Jun 21, 2026
da04877
chore: merge develop into chore/aurora-backoffice-monorepo
Gijsdeman Jun 21, 2026
87ba0c2
chore: lint and format fix
Gijsdeman Jun 21, 2026
7a1b933
chore: update docker files
Gijsdeman Jun 21, 2026
410ed86
chore: update development environment
Gijsdeman Jun 21, 2026
48129fe
docs: update according to new structure
Gijsdeman Jun 21, 2026
6326990
chore: consolidate dev command
Gijsdeman Jun 21, 2026
0473592
chore: start CI
Gijsdeman Jun 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/semantic-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ jobs:
if: ${{ needs.versioning.outputs.next-version != '' }}

with:
projects: '["apps/aurora-core", "apps/aurora-client"]'
projects: '["apps/aurora-core", "apps/aurora-client", "apps/aurora-backoffice"]'
version: ${{ needs.versioning.outputs.next-version }}
docker-registry: 'abc.docker-registry.gewis.nl'
docker-paths: '["nc/aurora/core", "nc/aurora/client"]'
docker-paths: '["nc/aurora/core", "nc/aurora/client", "nc/aurora/backoffice"]'
github-registry: 'true'
secrets:
REGISTRY_USERNAME: ${{ secrets.SVC_GH_ABCNC_USERNAME }}
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
.pnpm-store

# Coverage directory used by tools like istanbul
coverage
Expand Down
28 changes: 15 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,9 @@ All subscribers authenticate with an API key, then maintain a persistent SocketI

| Repository | Role | Tech |
| --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ | ---------------------------- |
| [aurora-core](https://github.com/GEWIS/aurora-core) | Central publisher — receives commands and pushes state to all subscribers | TypeScript, NodeJS, SocketIO |
| [aurora-backoffice](https://github.com/GEWIS/aurora-backoffice) | Web management UI for humans to control Aurora | TypeScript, React, SocketIO |
| [aurora-client](https://github.com/GEWIS/aurora-client) | Narrowcasting screen client — displays posters and information on screens | TypeScript, NodeJS, SocketIO |
| `aurora-core` (this repo) | Central publisher — receives commands and pushes state to all subscribers | TypeScript, NodeJS, SocketIO |
| `aurora-backoffice` (this repo) | Web management UI for humans to control Aurora | TypeScript, Vue, PrimeVue |
| `aurora-client` (this repo) | Narrowcasting screen client — displays posters and information on screens | TypeScript, NodeJS, SocketIO |
| [aurora-audio-player](https://github.com/GEWIS/aurora-audio-player) | Audio subscriber — plays music as commanded by the core | TypeScript, NodeJS |
| [aurora-lights-proxy](https://github.com/GEWIS/aurora-lights-proxy) | DMX controller bridge — forwards DMX packets from core to ArtNet hardware | Python, Art-Net |
| [aurora-lights-simulator](https://github.com/GEWIS/aurora-lights-simulator) | Lights effect development tool — simulate DMX output without physical hardware | TypeScript, NodeJS |
Expand Down Expand Up @@ -85,7 +85,7 @@ cd apps/aurora-core && pnpm dev

## Development with Docker Compose

The monorepo includes a one-command Docker Compose setup that runs the core, client (narrowcasting), and their dependencies together.
The monorepo includes a one-command Docker Compose setup that runs the core, backoffice, client (narrowcasting), and their dependencies together.

### Prerequisites

Expand All @@ -96,27 +96,29 @@ The monorepo includes a one-command Docker Compose setup that runs the core, cli

```bash
# Start everything
pnpm dev-up
pnpm dev
```

This will:

1. Start the **core** (`http://localhost:3000`) with a pre-seeded SQLite database (GEWIS data set)
2. Start the **client** (`http://localhost:8081`) with Vite dev server proxying API calls to the core
3. Wait for the core to be ready and the database seeded
4. Extract the first screen's API key from the database
5. Open `http://localhost:8081?key=<screen-key>` in your browser — you are authenticated as that screen
2. Start the **backoffice** (`http://localhost:8080`)
3. Start the **client** (`http://localhost:8081`) with Vite dev server proxying API calls to the core
4. Wait for the core to be ready and the database seeded
5. Extract the first screen's API key from the database
6. Open the client, backoffice, and API docs in your browser
7. Stay running in the foreground — press **Ctrl-C** to stop the environment gracefully

### Teardown

```bash
pnpm dev-down
docker compose down
```

Containers are removed but the `node_modules` volume is kept for fast restarts. To fully reset:

```bash
pnpm dev-down -v # also removes cached node_modules
docker compose down -v # also removes cached node_modules
```

## External Integrations
Expand All @@ -139,8 +141,8 @@ If you want to integrate your own service with Aurora — to fetch data, send co
1. Fork the repository.
2. Create a feature branch: `git checkout -b feat/your-feature-name`.
3. Make your changes.
4. Run tests: `pnpm --filter aurora-core test`.
5. Run linting: `pnpm --filter aurora-core lint-fix`.
4. Run tests: `pnpm --filter @gewis/aurora-core test`.
5. Run linting: `pnpm lint`.
6. Commit using [Conventional Commits](https://www.conventionalcommits.org/): `git commit -m "feat: add your feature"`.
7. Push: `git push origin feat/your-feature-name`.
8. Open a Pull Request.
Expand Down
5 changes: 5 additions & 0 deletions apps/aurora-backoffice/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Build output
dist

# Local dev
.env
23 changes: 23 additions & 0 deletions apps/aurora-backoffice/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# build context: the output of `pnpm turbo prune @gewis/aurora-backoffice --docker`
FROM node:22 AS builder
ENV CI=true
WORKDIR /app

COPY json/ ./
COPY full/ ./

RUN corepack enable
RUN pnpm install --no-frozen-lockfile
RUN pnpm --filter @gewis/aurora-api-client run sync
RUN pnpm --filter @gewis/aurora-api-client run build
RUN pnpm --filter @gewis/aurora-backoffice run build

FROM nginx:alpine
WORKDIR /usr/src/app

COPY full/apps/aurora-backoffice/docker/nginx.conf /etc/nginx/nginx.conf
COPY full/apps/aurora-backoffice/public /usr/src/app/public
COPY --from=builder /app/apps/aurora-backoffice/dist /usr/src/app

EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
24 changes: 24 additions & 0 deletions apps/aurora-backoffice/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Aurora Backoffice

This is the **management interface** of the Aurora suite — the web UI used to control DMX lighting, narrowcasting screens, and music playback. The backoffice sends commands to the core over HTTP and receives real-time state updates over SocketIO.
See the root [README](../README.md) for the full architecture overview and list of all Aurora repositories.

## Prerequisites

- NodeJS 22.

## Development setup

1. Run `pnpm install` from the monorepo root.
1. Run `pnpm dev`.
1. The application is now running at http://localhost:8080.
In development mode, you are automatically logged in without OIDC credentials (mock auth).

By default, the dev server proxies API requests to `http://localhost:3000`. To use a different core URL, set `VITE_CORE_URL` in the environment.

## Deployment

Deployment is handled by Docker Compose from the monorepo root alongside Aurora Core.
The backoffice can be built standalone with `pnpm docker-build` from this directory.

In production, the backoffice authenticates via OIDC (Keycloak). The `VITE_OIDC_*` environment variables must be configured for the production build.
84 changes: 84 additions & 0 deletions apps/aurora-backoffice/docker/nginx.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

http {

upstream aurora_core {
server core:3000;
}

include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root /usr/src/app;
index index.html;
try_files $uri $uri/ /index.html;
}

location /api-docs {
proxy_pass http://aurora_core;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}

location /api/ {
proxy_pass http://aurora_core;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}

location /socket.io/ {
proxy_pass http://aurora_core;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}

location /static/posters/ {
alias /usr/src/app/data/posters/;
}

location /static/local-posters/ {
alias /usr/src/app/data/local-posters/;
}

location /static/audio/ {
alias /usr/src/app/data/audio/;
}


error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
}
1 change: 1 addition & 0 deletions apps/aurora-backoffice/env.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/// <reference types="vite/client" />
5 changes: 5 additions & 0 deletions apps/aurora-backoffice/eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import { eslintConfig as common } from '@gewis/eslint-config-typescript';
import { eslintConfig as vue } from '@gewis/eslint-config-vue';
import { eslintConfig as prettier } from '@gewis/prettier-config';

export default [...common, ...vue, prettier];
16 changes: 16 additions & 0 deletions apps/aurora-backoffice/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
<link rel="manifest" href="/site.webmanifest" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Aurora</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>
59 changes: 59 additions & 0 deletions apps/aurora-backoffice/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
{
"name": "@gewis/aurora-backoffice",
"version": "1.0.0",
"private": true,
"scripts": {
"dev": "vite",
"preview": "vite preview",
"build": "vite build",
"typecheck": "vue-tsc -b --noEmit",
"lint": "eslint src --max-warnings=1",
"lint-fix": "eslint src --fix",
"docker-build": "pnpm turbo prune @gewis/aurora-backoffice --docker && docker build -f Dockerfile -t aurora-backoffice ../../out"
},
"dependencies": {
"@gewis/aurora-api-client": "workspace:*",
"@gewis/splash": "2.4.0",
"@primeuix/themes": "1.2.0",
"@primevue/core": "4.3.6",
"@tailwindcss/postcss": "4.1.14",
"@vee-validate/yup": "4.15.1",
"cronstrue": "2.61.0",
"dotenv": "16.6.1",
"pinia": "3.0.3",
"primeicons": "7.0.0",
"primevue": "4.3.6",
"socket.io-client": "4.8.1",
"tailwind": "4.0.0",
"tailwindcss-primeui": "0.6.1",
"uuid": "11.1.0",
"vue": "3.5.22",
"vue-router": "4.5.1",
"vue-timeago3": "2.3.2",
"yup": "1.6.1"
},
"devDependencies": {
"@gewis/eslint-config-typescript": "2.3.0",
"@gewis/eslint-config-vue": "2.3.0",
"@gewis/prettier-config": "2.2.2",
"@tsconfig/node22": "22.0.2",
"@types/lodash": "4.17.20",
"@types/uuid": "10.0.0",
"@vitejs/plugin-vue": "5.2.4",
"@vue/tsconfig": "0.7.0",
"autoprefixer": "10.4.21",
"eslint": "9.31.0",
"lodash": "4.17.21",
"npm-run-all": "4.1.5",
"postcss": "8.5.6",
"sass": "1.89.2",
"tailwindcss": "4.1.11",
"typescript": "5.8.3",
"vite": "6.3.5",
"vite-plugin-chunk-split": "0.5.0",
"vue-tsc": "2.2.12"
},
"engines": {
"node": ">=22.0.0"
}
}
6 changes: 6 additions & 0 deletions apps/aurora-backoffice/postcss.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module.exports = {
plugins: {
'@tailwindcss/postcss': {},
autoprefixer: {},
},
};
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added apps/aurora-backoffice/public/favicon-16x16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added apps/aurora-backoffice/public/favicon-32x32.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added apps/aurora-backoffice/public/favicon.ico
Binary file not shown.
Binary file not shown.
Binary file not shown.
4 changes: 4 additions & 0 deletions apps/aurora-backoffice/public/layout/images/helmet-black.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions apps/aurora-backoffice/public/layout/images/helmet-white.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 11 additions & 0 deletions apps/aurora-backoffice/public/site.webmanifest
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"name": "",
"short_name": "",
"icons": [
{ "src": "/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" },
{ "src": "/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" }
],
"theme_color": "#ffffff",
"background_color": "#ffffff",
"display": "standalone"
}
4 changes: 4 additions & 0 deletions apps/aurora-backoffice/src/App.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<template>
<ConfirmDialog />
<RouterView />
</template>
14 changes: 14 additions & 0 deletions apps/aurora-backoffice/src/assets/layout/_content.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
@use './_variables' as *;

.layout-main-container {
display: flex;
flex-direction: column;
min-height: 100vh;
justify-content: space-between;
padding: 7rem 2rem 2rem 4rem;
transition: margin-left $transitionDuration;
}

.layout-main {
flex: 1 1 auto;
}
Loading
Loading