Skip to content

Full stack architecture

Benjamin Piouffle edited this page Apr 4, 2018 · 4 revisions

Backend

Backend is not open-sourced yet, but docker images for the GraphQL API and the ATOM feed are made available publicly on DockerHub.

Main API

  • Private (team only)
  • Contains all intelligence (vote, comment, create an account...)
  • Only used by the main website
  • Offers REST endpoints for usual stuff and websockets for all real-time interactions
  • Only team can access the docker image at the moment

Source code: https://gitlab.com/CaptainFact/captain-fact-api
Docker image: https://registry.gitlab.com/captainfact/captain-fact-api
Servers: Production | Staging

GraphQL API

  • Public API
  • Gives access to most data except personal information such as the email addresses
  • It is used by the javascript injector and thus the web extension

Source code: https://gitlab.com/CaptainFact/captain-fact-api/tree/master/apps/captain_fact_graphql
Docker image: https://hub.docker.com/r/captainfact/graphql-api
Servers: Production | Staging

ATOM/RSS feed

Public ATOM feed to track new comments through a classic feed reader.

Source code: https://gitlab.com/CaptainFact/captain-fact-api/tree/master/apps/captain_fact_atom_feed
Docker image: https://hub.docker.com/r/captainfact/atom-feed/
Servers: Production | Staging

Frontend

Frontend is completely open sourced (mostly under AGPL3).

Website

The one you see on https://catpainfact.io. Uses the main API.

Source code: https://github.com/CaptainFact/captain-fact-frontend

Injector

Injects overlays on HTML5 videos with the community verifications. Used on Thinkerview's website to provide information without the need for a browser extension.

Source code: https://github.com/CaptainFact/captain-fact-overlay-injector
Test pages: https://embed.captainfact.io

Web extension

Uses the injector to automatically inject the overlay on verified Youtube videos. Works on Chrome and Firefox.

Source code: https://github.com/CaptainFact/captain-fact-extension
Chrome extension: https://chrome.google.com/webstore/detail/captainfact-beta/fnnhlmbnlbgomamcolcpgncflofhjckm
Firefox addon: https://addons.mozilla.org/en-US/firefox/addon/captainfact/

Clone this wiki locally