Update home authored by Leindecker Ingo's avatar Leindecker Ingo
REPCO Requirements for Display EU: https://hackmd.io/LDGoiG7WQEOC7-KozhPLDw REPCO Requirements for Display EU: https://hackmd.io/LDGoiG7WQEOC7-KozhPLDw
\ No newline at end of file
# displ.eu repco project
## required features
### language support
* all entities have a content language header
* translations are regular entities that have a header `IsTranslationOf` that links back to the entity in the original language entity
* queries support either listing entities in a particular language (originals and translations), or all originals (in all languages)
* relations between entities (e.g. from ContentItem to Concepts) always link to the original. translations are then resolved in a second step.
* translations may be marked as user- or auto-generated including metadata about their origin
* open question: how to deal with the graphql api for nested entites?
* ingest translation and language info from cba datasource has to be fully supported
* open question: translation of metadata, concepts, etc
### subtitles
* repco has to support subtitles per media asset
* subtitles have to support translations
### activitypub import
* repco can import channels from activitypub servers
* must support mastodon and peertube feeds
* must support media attachements
### full-text search
* all content in a repco repo is (optionally) indexed into a full-text search engine
* special consideration has to be put to support multilingual search, approach is tbd (index per language vs multi-language indexes)
* the repco server provides a GraphQL interface to perform search queries
### minimal management UI
* create and sync repos
* manage datasources
* view status of ingest tasks
## non-feature tasks
repco needs development in these fields independent of the mentioned features to become a production-ready tool:
### seperate core from domain data model
currently, the domain data model and the lower data model are not properly seperated in the codebase. this is needed to better support schema evolution
### schema evolution for domain data model
* add more flexible schema definition to e.g. include indexing properties
* develop and test a way to perform schema migrations
* have a good developer and devops experience for schema evolution over time
### monitoring and error handling
* better way to surface errors during ingest (which can always happen because external data sources may be nonconfirming)
* monitoring, e.g. via a prometheus endpoint
### testing and devops
* write more unit and integration tests
* devops guides for deployment and updates
## potential later features
### job queues and bots
* have APIs for bots/workers to pull and push content from/to repco
* support different authentication methods
### user content
* support storing user-generated content in repco repos
* support different authentication methods