From d130b156eb7571922df7f4e43c50b92303e18c30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Dufraisse?= Date: Mon, 16 Oct 2023 14:58:18 +0200 Subject: [PATCH] docs(dev.md): keep some info about structure --- README.md | 1 + docs/dev.md | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 docs/dev.md diff --git a/README.md b/README.md index 04b001093..fa3bbf7be 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,7 @@ We appreciate any contribution to Mobilizon. Check [our contributing page](https * 🔢 Pick an instance [https://mobilizon.org](https://mobilizon.org) * 💻 Source: [https://framagit.org/framasoft/mobilizon](https://framagit.org/framasoft/mobilizon) * 📜 Documentation [https://docs.joinmobilizon.org](https://docs.joinmobilizon.org) + * A summarized description of structure of sources is done in [`docs/dev.md`](./docs/dev.md) ### Discuss * 💬 Element/Matrix: [https://matrix.to/#/#Mobilizon:matrix.org](https://matrix.to/#/#Mobilizon:matrix.org) diff --git a/docs/dev.md b/docs/dev.md new file mode 100644 index 000000000..1fa63f020 --- /dev/null +++ b/docs/dev.md @@ -0,0 +1,30 @@ +# Documentation for developpers + +_This file is a summary of the documentation for developpers. As explained in [CONTRIBUTING.md](../CONTRIBUTING.md), the main documentation is available at _ + +## Technologies + +Mobilizon is an app that uses: + * [Elixir](https://elixir-lang.org/) for backend, + * [VueJS](https://vuejs.org/) for front-end + * [GraphQL](https://graphql.org/) as it's API layer + +[GraphQL](https://graphql.org/) is managed using: + * [Absinthe](https://absinthe-graphql.org/) on the backend + * [VueApollo](https://apollo.vuejs.org/) on the front-end. + +[UI](https://en.wikipedia.org/wiki/User_interface) is handled with [Tailwind](https://tailwindcss.com/) and [Oruga](https://oruga.io/). + +## Structure of sources + + * `config` backend compile-time and runtime configuration + * `docker` 🐳 + * `js/src` Front-end + * `lib/federation` Handling all the federation stuff (sending and receving activities, converting activities, signatures, helpers…) + * `lib/graphql/schema` The schema declarations for the GraphQL API + * `lib/graphql/resolvers` The logic behind the GraphQL API + * `lib/mix/tasks` CLI + * `lib/mobilizon` model structures, database queries + * `lib/service` various services + * `lib/web` controllers, middlewares, auth-related stuff + * `test` tests