/lemmingpants

A system to handle the speakerlist on Datateknologsektionens meetings.

Primary LanguagePureScriptApache License 2.0Apache-2.0

Lemmingpants

The purpose of this project is to develop a system to manage the speaker list of Datateknologsektionens meetings.

Feel free to fork, do pull requests and post issues!

The name is much inspired by DHack's totem animal, the lemming.

Installation

For development you should be good to go if you install the programs below:

Initialize the database

createuser -P lemmingpants
createdb lemmingpants -O lemmingpants
echo 'ALTER DATABASE lemmingpants SET "app.jwt_secret" TO "feBU1ykZ4icKs2nKam9l8CD84qhgeOl6QQakrUJBiRTUu4dKTLVoH8o";' | psql -d lemmingpants
echo 'CREATE EXTENSION pgcrypto; CREATE EXTENSION pgjwt; CREATE EXTENSION pgtap;' | psql -d lemmingpants
psql -d lemmingpants < init.sql

Running in dev-mode

For development, the local web-server that serves the static resources is run with this command ./dev-server.sh

Building the frontend

Build the frontend by running make dev in the frontend/ directory.

Running with docker

This builds and starts the containers.

cd frontend
./build_all.sh
docker-compose up

And this compiles the Purescript frontend code:

cd frontend
docker-compose up lemmingpants-frontend

Architecture

Postgrest is used for the backend REST API, while postgrest-websockets handles the websocket part. The backend code is written in SQL and PL/pgSQL. You can find it in init.sql and sql/ with subdirectories.

The frontend is written in Purescript using the library Purescript Halogen. The pretty stuff is made with Bourbon, Bitters and Neat on SASS.

Some links: