Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nicoburniske/muse
A place for music lovers to create interactive and collaborative reviews for music on Spotify
https://github.com/nicoburniske/muse
caliban functional graphql scala spotify
Last synced: 9 days ago
JSON representation
A place for music lovers to create interactive and collaborative reviews for music on Spotify
- Host: GitHub
- URL: https://github.com/nicoburniske/muse
- Owner: nicoburniske
- License: gpl-3.0
- Created: 2022-06-11T21:03:08.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-06-24T14:56:35.000Z (over 1 year ago)
- Last Synced: 2024-10-11T22:26:15.168Z (26 days ago)
- Topics: caliban, functional, graphql, scala, spotify
- Language: Scala
- Homepage: https://muselabs.xyz
- Size: 486 KB
- Stars: 29
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Muse
A place for music lovers to create interactive and collaborative reviews for music on Spotify.
> Frontend Code is available here https://github.com/nicoburniske/muse-frontend.
> Currently in Open Beta.
## Features
- Purely Functional with Scala 3 & [ZIO 2](https://github.com/zio/zio)
- Compile Time Postgres SQL Query Generation with [Quill](https://github.com/zio/zio-quill)
- GraphQL Server with [Caliban](https://github.com/ghostdogpr/caliban)
and [ZIO Http](https://github.com/dream11/zio-http)
- Compile time GraphQL Schema Generation
- GraphQL Schema Introspection and Apollo Tracing are supported
- See [Muse Schema](https://github.com/nicoburniske/muse/tree/main/src/main/resources/graphql/schema.graphql)
- GraphQL Query Batching Optimization with [ZIO Query](https://github.com/zio/zio-query)
- [Spotify API](https://developer.spotify.com/documentation/web-api/) Client written in Tagless Final
with [sttp client](https://github.com/softwaremill/sttp)
- GraphQL Subscriptions enable Real time review updates using ZStream
- User current playback state
- Review updates (created/deleted/updated comments)
- Caching and rate-limiting done with [ZIO-Redis](https://github.com/zio/zio-redis)
- Events broadcasted using [NATS](https://github.com/nats-io)