From bc257d36ed6e17c56d3db9917ede0ea721e86c2d Mon Sep 17 00:00:00 2001 From: Dessalines Date: Fri, 17 Jan 2020 17:52:48 -0500 Subject: Add more info to contributing. Fixes #429 --- docs/src/contributing.md | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/src/contributing.md b/docs/src/contributing.md index 4f29af3d..e73cc4b9 100644 --- a/docs/src/contributing.md +++ b/docs/src/contributing.md @@ -1 +1,32 @@ -Information about contributing to Lemmy, whether it is translating, testing, designing or programming. \ No newline at end of file +# Contributing + +Information about contributing to Lemmy, whether it is translating, testing, designing or programming. + +## Translating + +Go [here](https://github.com/dessalines/lemmy#translations) for translation instructions. + +## Architecture + +### Front end + +- The front end is written in `typescript`, using a react-like framework called [inferno](https://infernojs.org/). All UI elements are reusable `.tsx` components. +- The main page and routing are in `ui/src/index.tsx`. +- The components are located in `ui/src/components`. + +### Back end + +- The back end is written in `rust`, using `diesel`, and `actix`. +- The server source code is split into main sections in `server/src`. These include: + - `db` - The low level database actions. + - Database additions are done using diesel migrations. Run `diesel migration generate xxxxx` to add new things. + - `api` - The high level user interactions (things like `CreateComment`) + - `routes` - The server endpoints . + - `apub` - The activitypub conversions. + - `websocket` - Creates the websocket server. + +## Linting / Formatting + +- Every front and back end commit is automatically formatted then linted using `husky`, and `lint-staged`. +- Rust with `cargo fmt` and `cargo clippy`. +- Typescript with `prettier` and `eslint`. -- cgit v1.2.3