Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

πŸ”Ž CaptainFact - API. The one that serves and process all the data for https://captainfact.io

License

Notifications You must be signed in to change notification settings

CaptainFact/captain-fact-api

Repository files navigation

Discord

AGPL3 GitHub release CI Status Coverage Status




Install & Run

Prerequisites

You need to install Elixir. We recommand using asdf-vm. Check their documentation on how to install it, then run asdf install from root captain-fact-api folder.

Start DB

Create / launch a PostgreSQL instance on your local machine. If you have Docker installed, you can use the pre-Seed PostgreSQL Docker image:

docker run -d --name cf_dev_db -p 5432:5432 captainfact/dev-db:latest

Start API

  • mix deps.get --> Get dependencies
  • mix ecto.create --> Create DB
  • mix ecto.migrate --> Migrate DB
  • iex -S mix --> Start project

Following services will be started:

You can also see all e-mail sent, by going to http://localhost:4000/\_dev/mail

Other useful commands

  • mix test --> Run tests
  • mix test.watch --> Run test watcher
  • mix format --> Format code
  • mix ecto.gen.migration [migration_name] --> Generate migration

Project architecture

This application is organized as an umbrella project which allows us to divide CaptainFact API into small apps.

.
β”œβ”€β”€ apps
β”‚  β”œβ”€β”€ cf => Core functions as a library. **Not deployed**
β”‚  β”œβ”€β”€ cf_atom_feed => Atom feed.
β”‚  β”œβ”€β”€ cf_graphql => GraphQL API (public).
β”‚  β”œβ”€β”€ cf_jobs => Jobs.
β”‚  β”œβ”€β”€ cf_rest_api => REST/WS API (private).
β”‚  └── db => DB repository and schemas **Not deployed**
β”‚  β”œβ”€β”€ lib
β”‚  β”‚  β”œβ”€β”€ db
β”‚  β”‚  β”œβ”€β”€ db_schema => Contains all the schemas (Video, Speaker, Comment...etc)
β”‚  β”‚  β”œβ”€β”€ db_type => Special types (SpeakerPicture...etc.)
β”‚  β”‚  └── db_utils => Some utility functions
β”‚  └── priv
β”‚   └── repo/migrations => All DB migrations files
β”œβ”€β”€ README.md => You're reading it right now. Are you?
β”œβ”€β”€ rel => Release configs & tools
β”‚  β”œβ”€β”€ commands => Commands that will be available to run on the release (seed DB...etc.)
β”‚  β”œβ”€β”€ hooks => Some hooks for automatically run commands when release run.
β”‚  β”œβ”€β”€ runtime_config => Runtime configurations for all apps.
β”‚  └── config.exs => Release configuration.

Linked projects

About

πŸ”Ž CaptainFact - API. The one that serves and process all the data for https://captainfact.io

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Contributors 15

Languages

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /