Skip to content

UnKabaraQuiDev/shared-timetable

Repository files navigation

shared-timetable

A synchronized client-server to display ongoing & upcoming events on a/multiple display(s).

Probably only compatible with Linux, untested on Windows

Capabilities

  • MySQL database for storing events & users
  • Discord bot to quickly add/edit/list events
  • Multiple clients can connect simultaneously and are kept synchronized through a websocket connection
  • Clients support multiple frame styles

Config

Server

Directory: ~/.config/shared-timetable-server/

  • db_connector.json

    • username: The MySQL username
    • password: The MySQL password
    • host: The MySQL host
    • port: The MySQL port
  • discord_bot.json

    • token: The discord bot's token

Client

Directory: ~/.config/shared-timetable-client/

  • frame.json

    • style: classic or train, the style of the used frame. Can be overwritten at runtime with the --frame.style= cmd line arg.
  • remote.json

    • user.name: The username used for authentication to the server
    • user.pass: The password used for authentication to the server
    • user.token: The token used for authentication to the server
    • user.regenToken: Whether the token should be regenerated using the username/password (iff the given token is invalid/empty)
    • server.secure: Use https & wss instead of http & ws
    • user.url: The server's url/ip (incl. port if needed. Default server port: 8443, can be owerwritten using the --server.port cmd line arg.)
  • other configs: The different frame styles may create additional configuration for things such as colors, locale, scaling, etc.

Frame styles

Adding your own frame styles

  • Frames and their respective configuration (if needed) should be contained in one package
  • The frame class has to be a Spring @Component implementing AbstractTimetableFrame (or extending AbstractTimetableJFrame if using a JFrame)
  • A AbstractTimetableFrame class can only include one StyleConfig field to store additional configs
  • Use an @Autowired TimetableList to get the events

Feel free to create a Pull Request to implement your style in the main repo

Images

Clients:

image _Using frame: 'train'_
image

Using frame: 'classic'

About

A synchronized client-server to display ongoing & upcoming events on a/multiple display(s).

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages