Skip to the content.

Getting started with Development

Where work happens

Technical conversations often happen either on our GitHub repository or at #tech channel at volunteer chat. #log channel is great for following the work happening on GitHub.

Source code:

Stack

Trustroots is fully written in JavaScript (both back- and frontend) on Node.js.

Our main data storage is MongoDB which is a Document Database (and not a relational database like SQL databases are), and we access it with Mongoose which gives us Object Models.

We store additional data in InfluxDB for statistical purposes but developers typically don’t need to interact with InfluxDB.

Our backend framework is Express.js.

Our frontend framework is Angular v1 (Note that v1 has been deprecated) written in ES5 version of JavaScript but we are migrating to ES6 version and React.

The application is compiled and served using Gulp and Webpack.

Babel that transpiles modern ES6 frontend code back to ES5 that most browsers understand.

Our stylesheets are written in LESS language and our UI uses Bootstrap v3 (not the latest v4) framework quite extensively.

Architecture in short

└── modules
    └── module-name
        ├── client
        ├── server
        └── tests
            ├── client
            └── server

Development documentation dives deeper into architecture and folder layout.

Codebase’ origin

Trustroots was built upon MEAN.js boilerplate (from Mongo-Express-Angular-NodeJS). MEAN isn’t active anymore and we’ve modified the codebase extensively for our own purposes, so it’s better not to rely too much on their documentation.

While boilerplate was a great way to get started with rather large application, we inherited a lot of cruft and kinda complicated setup from it. As time has passed, several aspects of the application are not that modern anymore and we have lots to do to bring it up to date.

Note that meanjs.org and mean.io are two separate projects. The former was a fork of mean.io in 2014. Trustroots was built on the meanjs.org version.

Where to start?

Suppose you’ve already dropped by at volunteer chat at this point and if you haven’t, you should!

Then the first step is to get the application running and perhaps familiarise yourself little bit more with rest of the documentation.

Easy issues are a great place to start work. These should be issues which are fairly easily fixable.

Hopefully with a little diving into the code, you should be able to find and fix one or two of these issues. If you’re just starting out with the code, these are a great way to contribute something really useful very quickly.

Adding more significant features, major refactoring, and so on are typically handled by more experienced developers in the team.

Make sure to familiarise yourself with our pull request workflow.

How to write code

Coding conventions

Further studying

If you feel like checking out some docs before diving in fixing bugs with old Angular -sections of the frontend codebase, we recommend getting familiar with AngularJS documentation as it intends to have steep learning curve.

If you’re working on some of the newer parts of the frontend code, official React documentation is great.

While our JavaScript codebase is mostly still in older ES5 format, we are fast moving towards modern ES6. Here are few resources to get up to speed with ES6: