https://github.com/mpgirro/hemin
🔎 Hemin is a Podcast Catalog & Search Engine System built with Scala, Akka, and Elm
https://github.com/mpgirro/hemin
akka elm mongodb play-framework podcast-catalog scala search-engine solr
Last synced: 3 months ago
JSON representation
🔎 Hemin is a Podcast Catalog & Search Engine System built with Scala, Akka, and Elm
- Host: GitHub
- URL: https://github.com/mpgirro/hemin
- Owner: mpgirro
- Created: 2018-01-14T12:23:53.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2021-05-04T19:43:23.000Z (about 4 years ago)
- Last Synced: 2024-04-21T03:15:49.427Z (about 1 year ago)
- Topics: akka, elm, mongodb, play-framework, podcast-catalog, scala, search-engine, solr
- Language: Scala
- Homepage: https://hemin.io
- Size: 12 MB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 25
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
HEMIN
Podcast Catalog & Search Engine System
[](https://hemin.io/) [](https://travis-ci.org/mpgirro/hemin) [](https://www.codacy.com/app/mpgirro/hemin?utm_source=github.com&utm_medium=referral&utm_content=mpgirro/hemin&utm_campaign=Badge_Grade) [](https://www.scala-lang.org/download/2.12.0.html) [](https://github.com/elm/compiler/blob/master/upgrade-docs/0.19.md) [](https://akka.io/blog/news/2017/04/13/akka-2.5.0-released) [](https://www.playframework.com/documentation/2.6.x/Highlights26) [](https://lucene.apache.org/solr/guide/7_5/index.html) [](https://docs.mongodb.com/manual/release-notes/4.0/)Hemin is a podcast catalog & search engine infrastructure. It's engine is written in [Scala](https://www.scala-lang.org), uses [MongoDB](https://www.mongodb.com) to store the podcast/episode/feed catalog, and indexes the data with [Solr](http://lucene.apache.org/solr/). The REST API relies on the [Play](https://www.playframework.com) framework for routing and JSON. The server is fully asynchronous, and makes heavy use of [Akka](https://akka.io) actors and [Scala Futures](https://docs.scala-lang.org/overviews/core/futures.html). The current web client is written in ~~[Typescript](https://www.typescriptlang.org) and builds on the [Angular](https://angular.io) framework~~ [Elm](https://elm-lang.org).
## WebApp
A WebApp is available at [hemin.io](https://hemin.io)
There are several different frontend variant implementations for the Hemin system. The webapps are named after the letters in the greek alphabet. Currently there are these:
* _Alpha_ – based on [Angular](https://angular.io). An early proof-of-concept UI back from when Hemin was called something else and it's engine served as a scientific guinea pig (more about those days [here](https://github.com/mpgirro/dipl)). Development on Alpha is discontinued.
* [Beta](beta) – written in [Elm](https://elm-lang.org). It is still work in progress and quite *beta* (pun intended), but will become the production implementation.
## RESTful API
The base for all REST endpoints is: [https://api.hemin.io/api/v1](https://api.hemin.io/api/v1)
## Engine
The Hemin engine can be started as a standalone command line application that feature a REPL. Alternatively, it can be used embedded within another Scala/Java (or other compatible JVM language) application. This second way is how the API server integrates the engine.