ouija-io / ouija

Communicating with ghosts
http://ouija.io
BSD 3-Clause "New" or "Revised" License
128 stars 14 forks source link

[Epic] Ouija Architecture #76

Open halfdan opened 10 years ago

halfdan commented 10 years ago

This is a proposal for the architecture for Ouija 1.0.

untitled diagram

Ouija

Ouija will be the core package and deployed as ouija.js. This package will take care of the visual layer (showing comments, visual interaction) and provide an interface for Connector APIs.

Connector API

The connector API will allow people to implement custom connectors to different data backends. Connectors will live in separate repositories (e.g. ouija-connector-firebase). A connector is both responsible for getting data from and to a backend and authenticating users using OAuth providers.

Firebase Connector

This connector implements the Connector API and acts as a lightweight wrapper around the Firebase API. This would be the first connector we could provide as it builds on top of an already existing backend and allows us to focus on Ouija first without having to work on our own server backend.

Ouija Base Connector

This connector directly wraps the Ouija Server API and can be used in a self-hosted scenario.

Ouija Server (missing in diagram)

Ouija Server is a self-contained Ouija instance that serves ouija.js + ouija-base-connector.js and provides an API to handle storing/retrieving data and handling OAuth requests.