• Stars
    star
    165
  • Rank 228,906 (Top 5 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created almost 2 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The social hub for your media server. Rate, review and recommend movies and shows, as well as manage your watchlist, follow friends and more.

Jolt

The social hub for your media server.

Note: This project is still in very early alpha stages. A lot of features are only lightly tested, and may not even be implemented yet, but there's lots more to come!

Introduction

Jolt brings the users of your media server together in one place. With profiles directly integrated into Jellyfin, movie and TV data from TMDB, and a powerful feed and recommendation system, Jolt connects your users by allowing them to review and rate media, recommend movies and TV shows to each other, as well as [WIP] suggest movies and shows that groups can watch together.

Features

  • Rate, review, recommend movies and TV shows
  • Add and remove movies and TV shows to and from your watchlist
  • Discover new media using TMDB's discovery API
  • [WIP] Generate media suggestions
  • [WIP] Comment on movies and episodes with timestamp support
  • [WIP] Sync Jellyfin media library and watched status
  • [WIP] Create clips from media on your media server (Jellyfin) with optional burnt-in subtitles for sharing

Screenshots

Architecture

Jolt uses the modern approach, by separating frontend and backend. The frontend is implemented in React, using Mantine for UI, and Apollo Client for state management and GraphQL requests. This powerful combination enables a slick frontend app that looks great on desktop and mobile devices.

The backend is implemented using Golang. It uses the uber/fx library for dependency injection, GORM, GQLGen and Viper for configuration.

Deployment

Since Jolt is still in alpha, currently no images are available on Docker Hub. The Docker Compose however can be used to deploy the current version of Jolt, with examples for the configuration at sample-config.yaml which needs to be renamed to config.yaml and shared values in .env.sample.

The Dockerfile compiles the frontend using Vite, and includes the files in a single run container which means all you need is one container to get Jolt up and running (and Postgres).

Thanks

  • Mantine
  • Apollo
  • GORM
  • uber/fx
  • Viper
  • TMDB

Contributing

🚧 Work in Progress!

Development

The React app uses Vite as a dev server and for builds. Run yarn dev to start the dev server which supports HMR πŸ”₯ and uses the vite-plugin-graphql-codegen to generate GraphQL type definitions.

In order to generate GraphQL types, the backend server must be running at port 5001.

The backend uses dev containers to isolate the Go development environment and enable easy networking with Postgres without needing to reserve port 5432. VSCode should detect the dev container configuration files in the server directory once opened, and prompt you to build the dev container and open VSCode in it.

Run go run main.go to start the server whenever changes are made. The GraphQL resolvers can be regenerated using go generate ./....

License

This project is licensed under the terms of the MIT license.

More Repositories

1

sk-auth

Authentication library for use with SvelteKit featuring built-in OAuth providers and zero restriction customization!
TypeScript
578
star
2

share-me

An image and video hosting platform for your server, with rich embed support and API.
TypeScript
143
star
3

aPRAW

Asynchronous Python Reddit API Wrapper
Python
50
star
4

Fuzzle

Expandable search engine written in Python. Models upcoming!
HTML
15
star
5

Cheeri-No

Say no to those pesky corporate overlords!
TypeScript
13
star
6

go-gqlgen-fx-template

Go GraphQL API template with Uber FX for Dependency Injection and GORM.
Go
11
star
7

Banhacker

Mariavi's take on Reddit moderation.
Python
10
star
8

Banhammer.py

Python framework to create Reddit moderation bots for Discord using reactions and streams.
Python
9
star
9

reddit-comments-crypto-counter

Crypto coin ticker counter for Reddit comments.
Python
8
star
10

Reddify

Reddit verification bot for Discord with useful statistics and an intuitive verification process.
Python
6
star
11

react-video-trimmer

TypeScript
5
star
12

media-hoarder

A simple web app to calculate how many shows and movies can be stored on a given array of storage.
TypeScript
5
star
13

svelte-custom-element-template

Svelte custom elements (WebComponent) template with Prettier and ESLint!
JavaScript
5
star
14

kraken-staking-countdown

Tracking app for Kraken staking rewards and countdown timer.
JavaScript
3
star
15

1000DOP

Bot for /r/1000DaysOfPractice.
Python
2
star
16

Hyperlinkr

Quickly generate hyperlinks for the web as a PWA!
Vue
2
star
17

anti-crypto-scammer

Python
2
star
18

Idealist

Bot for the Idealist Discord server
Python
2
star
19

ReactivePy

Reactive properties and owners for Python classes.
Python
2
star
20

dan6erbond.github.io

Website about me
HTML
2
star
21

SchoolHelper

A tool to provide support for the busy I1A students...
Java
2
star
22

Egosaurus

Script to print/post/save Reddit statistics.
Python
2
star
23

shrinkarr

Shrink your qBittorrent downloads folder by magnitudes.
Python
2
star
24

terraform-kubernetes-shlink

HCL
1
star
25

Seedless

Clear your Reddit comments and use simple rules to specify which ones!
Python
1
star
26

SantasChristmasWish

Bots for the SCW subreddit and its Discord server.
Python
1
star
27

Im17A

Im17A Class Website
TypeScript
1
star
28

terraform-kubernetes-mariadb

HCL
1
star
29

ChatApp

GraphQL based web server and Vue chat app.
JavaScript
1
star
30

CarRanker

Car ranking web app with built-in webscraper to find your perfect car.
TypeScript
1
star
31

RGB

A simple script that takes images, gets the most prominent colors and turns it into a grid/stretch.
Python
1
star
32

terraform-kubernetes-chevereto

HCL
1
star
33

Employee-Manager

Employee Manager to describe the Composite Pattern.
Java
1
star
34

2019-Casino

Casino-Projekt der Gruppe 3 von der IMS Projektwoche 2019.
Java
1
star
35

projects

Project-Page for GH-Pages
TypeScript
1
star
36

CarManagement

Car management system for a luxury car rental garage with VueJS frontend and NodeJS backend.
JavaScript
1
star
37

crypto-wallet-widget

Crypto wallet widget to accept payments in various blockchain coins and tokens.
Svelte
1
star