GraphQL backend for a multimedia dictionary
dictionariesdictionarydieseldiesel-rsgraphqlgraphql-serverjuniperjuniper-rslinguisticsrocketrocket-rsrust
Lucien Cartier-Tilet
c5f5e770e2
All checks were successful
continuous-integration/drone/push Build is passing
This commit changes the primary key of words to a serial number. That way, two words with the same normalized value will not collide with one another. It also adds two new tables in the database: - Users following languages - Users learning words The former can represent two stages of learning a word: - Either the user is currently learning it - Or they consider they know it and don’t need to work on it anymore These two new tables now have their API query available through the GraphQL API. This commit also fixes the issue of word-related tables and types not being dropped when resetting the database. |
||
---|---|---|
migrations | ||
src | ||
.drone.yml | ||
.editorconfig | ||
.env.example | ||
.gitignore | ||
Cargo.toml | ||
diesel.toml | ||
docker-compose.yml | ||
LICENSE | ||
README.org |
Ordabok
Introduction
Ordabok is a backend for multimedia dictionaries powered by its users.
Compiling and running the project
This project requires an accessible PostgreSQL database (to store
pretty much all of the project's data), an Appwrite instance (for
managing user accounts), and an S3 bucket (to store images, videos,
and audio). Copy .env.example
with
$ cp .env.example .env
and modify the .env
file accordingly. You will also need to set the
variables for Appwrite and your S3 bucket.
Once this is done, execute the following command to run the backend.
$ cargo run
# or
$ cargo run --release
This makes the API available at http://localhost:8000/
, with only
three paths:
-
http://localhost:8000/
- GraphiQL interface
-
GET http://localhost:8000/graphql?query=:query
GET
queries for the GraphQL API. However, it does not work due to this issue.-
POST http://localhost:8000/graphql
POST
queries for the GraphQL API.