mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-10 09:53:48 +00:00
55d1aca9b6
* refactor: cleanup routes * style: smaller base font * chore: upgrade dependencies * chore: lock node version to electron * refactor: pass HTTP to integration controller (#652) * refactor: deprecate onair control * refactor: remove playback router * Several project files user folder (#617) * chore: automated screenshots (#667) * feat: app settings (#658) * refactor: remove deprecated event data (#674) * Studio clock (#663) --------- Co-authored-by: Carlos Valente <carlosvalente@pm.me> * Feat: reorder events with alt+ctrl + arrow up/down (#645) * Warning and danger per event (#677) --------- Co-authored-by: Fabian Posenau <fabian@fphome.de> * refactor: stabilise actionHandler (#683) Co-authored-by: Fabian Posenau <fabian@fphome.de> * improvement: hide seconds (#675) * wip: overview (#688) * fix: focus cursor (#695) * refactor: update lower third (#665) * Refactor/time formatting (#696) --------- Co-authored-by: Carlos Valente <34649812+cpvalente@users.noreply.github.com> Co-authored-by: Carlos Valente <carlosvalente@pm.me> * feat: multiple selection (#703) --------- Co-authored-by: asharonbaltazar <asharonbaltazar@outlook.com> Co-authored-by: Alex <ac@omnivox.dk> * fix: test - go to `Edit mode` befor tying to click `Event options` button (#708) * refactor: runtime service (#715) * fix: issue with loosing cursor position on message (#719) * remove info panel (#721) * Event editor continue (#722) * update API - part (#709) --------- Co-authored-by: Carlos Valente <34649812+cpvalente@users.noreply.github.com> Co-authored-by: Carlos Valente <carlosvalente@pm.me> * refactor: update timers (#729) * feat: many timers (#706) --------- Co-authored-by: arc-alex <ac@omnivox.dk> * refactor: excel cleanup (#734) * refactor: allow import of blocks and skip import (#735) * Project manager (#697) * refactor: UI for linking events (#763) * upgraded pipeline actions (#777) * Over under (#771) * custom fields (#744) --------- Co-authored-by: Carlos Valente <carlosvalente@pm.me> * Sheets settings (#774) --------- Co-authored-by: arc-alex <ac@omnivox.dk> * style: tweaks to lower thirds (#785) * refactor: delays account for gaps (#784) * refactor: partial state updates (#780) * feat: generate crash report (#787) * Sheet use limited input device auth flow (#782) --------- Co-authored-by: cv <34649812+cpvalente@users.noreply.github.com> Co-authored-by: Carlos Valente <carlosvalente@pm.me> * Custom fields views (#789) * refactor: deprecate presenter and subtitle (#795) * refactor: organise API around resources (#798) --------- Co-authored-by: Bianca Procopio <biancahprocopio@gmail.com> * Time to end (#804) * Skip fixes (#805) * fix: onair derives from playback * Param nav (#822) --------- Co-authored-by: Alex Christoffer Rasmussen <ac@omnivox.dk> * refactor: download files from interface (#831) * Quick options (#814) * End pause (#832) * chore: bump node version in docker (#834) * refactor: follow in run mode (#840) * fix: uncaught error in http integration (#837) * Apply project (#843) Co-authored-by: Matteo Gheza <matteo.gheza07@gmail.com> Co-authored-by: Ary <arylmoraesn@gmail.com> Co-authored-by: Alex Christoffer Rasmussen <ac@omnivox.dk> Co-authored-by: Fabian Posenau <19673098+kellhogs@users.noreply.github.com> Co-authored-by: Fabian Posenau <fabian@fphome.de> Co-authored-by: Alex Rohleder <alexrohleder96@gmail.com> Co-authored-by: asharonbaltazar <asharonbaltazar@outlook.com> Co-authored-by: Bianca Procopio <biancahprocopio@gmail.com> Co-authored-by: Fabian Posenau <fabianpos99+github@gmail.com>
107 lines
3.9 KiB
Markdown
107 lines
3.9 KiB
Markdown
# GETTING STARTED
|
|
|
|
Ontime consists of 3 distinct parts
|
|
|
|
- __client__: A React app for Ontime's UI and web clients
|
|
- __electron__: An electron app which facilitates the cross-platform distribution of Ontime
|
|
- __server__: A node application which handles the domains services and integrations
|
|
|
|
The steps below will assume you have locally installed the necessary dependencies.
|
|
Other dependencies will be installed as part of the setup
|
|
|
|
- __node__ (~18.18.2)
|
|
- __pnpm__ (>=8)
|
|
- __docker__ (only necessary to run and build docker images)
|
|
|
|
## LOCAL DEVELOPMENT
|
|
|
|
The electron app is only necessary to distribute an installable version of the app and is not required for local
|
|
development.
|
|
Locally, we would need to run both the React client and the node.js server in development mode
|
|
|
|
From the project root, run the following commands
|
|
|
|
- __Install the project dependencies__ by running `pnpm i`
|
|
- __Run dev mode__ by running `turbo dev`
|
|
|
|
### Debugging backend
|
|
|
|
To debug backend code in Node.js:
|
|
|
|
- Open two separate terminals and navigate to the `apps/client` and `apps/server` directories.
|
|
- In each terminal, run the command `pnpm dev` to start the development servers for both the client and server
|
|
applications.
|
|
- If you need to set breakpoints and inspect the code execution, enable Node.js inspect mode by
|
|
running `pnpm dev:inspect`.
|
|
|
|
## TESTING
|
|
|
|
Generally we have 2 types of tests.
|
|
|
|
- Unit tests for functions that contain business logic
|
|
- End-to-end tests for core features
|
|
|
|
### Unit tests
|
|
|
|
Unit tests are contained in mostly all the apps and packages (client, server and utils)
|
|
|
|
You can run unit tests by running turbo `turbo test:pipeline` from the project root.
|
|
This will run all tests and close test runner.
|
|
|
|
Alternatively you can navigate to an app or project and run `pnpm test` to run those tests in watch mode
|
|
|
|
### E2E tests
|
|
|
|
E2E tests are in a separate package. On running, [playwright](https://playwright.dev/) will spin up an instance of the
|
|
webserver to test against
|
|
These tests also run against a separate version of the DB (test-db)
|
|
|
|
Before running the E2E, you should first build the project with `pnpm build:local`.
|
|
|
|
You can run playwright tests from project root with `pnpm e2e`
|
|
|
|
When writing tests, it can be handy to run playwright in interactive mode with `pnpm e2e:i`. You would need to manually
|
|
start the webserver with `pnpm dev:server`
|
|
|
|
Some other useful commands
|
|
|
|
- `pnpm e2e --ui` open playwright UI
|
|
- `pnpm e2e --headed` run tests with a visible browser window
|
|
|
|
## CREATE AN INSTALLABLE FILE (Windows | MacOS | Linux)
|
|
|
|
Ontime uses Electron to distribute the application.
|
|
You can generate a distribution for your OS by running the following steps.
|
|
|
|
From the project root, run the following commands
|
|
|
|
- __Install the project dependencies__ by running `pnpm i`
|
|
- __Build the UI and server__ by running `turbo build:electron`
|
|
- __Create the package__ by running `turbo dist-win`, `turbo dist-mac` or `turbo dist-linux`
|
|
|
|
The build distribution assets will be at `.apps/electron/dist`
|
|
|
|
## DOCKER
|
|
|
|
Ontime provides a docker-compose file to aid with building and running docker images.
|
|
While it should allow for a generic setup, it might need to be modified to fit your infrastructure.
|
|
|
|
From the project root, run the following commands
|
|
|
|
- __Install the project dependencies__ by running `pnpm i`
|
|
- __Build packages__ by running `pnpm build:localdocker`
|
|
- __Build docker image from__ by running `docker build -t getontime/ontime`
|
|
- __Run docker image from compose__ by running `docker-compose up -d`
|
|
|
|
Other useful commands
|
|
|
|
- __List running processes__ by running `docker ps`
|
|
- __Kill running process__ by running `docker kill <process-id>`
|
|
|
|
## General Info
|
|
|
|
# APP Building
|
|
|
|
We build the app from app.js for almost all applications. The output file will still be named index.cjs. This is because of Electron.
|
|
Building the app from index.ts only applies for applications that don't use electron. index.ts will take over the initialization of the server and UI when electron isn't present.
|