Skip to main content

Introduction

This is the documentation of the Graasp digital education platform targeted at developers.

info

This documentation focuses on Development guides and tutorials (i.e people that write code).

For the end-user documentation, tutorials and reference, please go to the User docs

This documentation focuses on:

  • the setup and installation of the platform on your machine
  • the guidelines and protocols to participate and contribute in the development of Graasp
  • a technical description of the architecture and features of Graasp

Prerequisites

This documentation assumes that you are familiar with the command line. We will guide you and tell you which commands to run, but it is best if you can understand what they will do.

If you need a complete refresher on how to do web development you should have a look at the Odin Project

What you'll need

Here we list the tools that you should have installed in order to make your development work easier.

Required

  • A modern browser: Arc, Chrome, Firefox, Safari or others will work, choose based on your personal preference (it is recommended to have at least 2 installed on your machine in cases where you need to debug browser compatibility issues)
  • Node.js version 20.0 or above:
  • A code editor:
    • We recommend VSCode as our main supported development IDE, because we will be using devcontainers to create our development environment for the backend.
    • You can also use IntelliJ WebStorm, SublimeText, or even vi, vim, nvim, emacs or nano
  • Docker Desktop: to run containers
    tip

    You do not need to login to Docker.

Nice to have

These are a few tools that we find nice to have when developing. Feel free to install them if you see their value. If you don't see an added value maybe don't install them. You can always install them later once you think they can benefit you.

  • An API client that allows you to make requests to the backend:
    • We recommend Bruno: an API client similar to Postman or Insomnia.
    • Postman: lets you send API requests with a GUI
  • Starship: a utility to improve your terminal prompt (git branch, node version etc...)

Special note for people running macOS

Fo users on macOS here is a list of tools that we think will make your life easier:

  • Rectangle.app a window manager that allows you to re-organize your window layout with the keyboard. It also supports dragging and snapping to edges of the screen. Very light weight, try it out by pressing ctrl + alt + left arrow, your current window should now take half the horizontal space on the left. There is a pro version available. IMO the base version is already enough, but if you think you will benefit from the upgrade and want to support the work of the developer, maybe consider buying the pro version.
  • brew the missing package manager for macOS. You might already have installed it, but if not, it is a good tool to have.

Best practices

We use: