rage / mooc.fi

Home Page:https://mooc.fi

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Development environment

Requirements

Create .env files for backend and frontend. See examples and ask your local boffin for details.

Install docker-compose, if not already installed.

Development workflow

Run npm ci in the each of the root, backend and frontend directories to install dependencies.

Create separate shells for the database container, backend and frontend:

cd backend
docker-compose up
cd frontend
npm run dev
cd backend
npm run migrate
npm run dev

If the database doesn't seem to do anything, ie. no messages after the initial ones after running docker-compose up and the database queries are not getting through, run docker-compose down and try again. You can always run the database container in detached mode (-d) but then you won't see the logs live.

Run npm run prettier in the root directory before committing. The commit runs hooks to check this as well as some linters, type checks etc.

Using pre-built librdkafka to speed up backend development

By default, node-rdkafka builds librdkafka from the source. This can take minutes on a bad day and can slow development down quite considerably, especially when you're working with different branches with different dependencies and need to run npm ci often. However, there's an option to use the version installed locally.

Do this in some other directory than the project one:

wget https://github.com/edenhill/librdkafka/archive/v1.8.2.tar.gz  -O - | tar -xz
cd librdkafka-1.8.2
./configure --prefix=/usr
make && make install

You may have to do some of that as root. Alternatively, you can install a prebuilt package - see here for more information.

Set the env BUILD_LIBRDKAFKA=0 when doing npm ci or similar on the backend to skip the build.

More documentation

About

https://mooc.fi


Languages

Language:TypeScript 94.0%Language:MDX 3.9%Language:JavaScript 1.6%Language:Shell 0.4%Language:Dockerfile 0.1%Language:Mustache 0.0%