Skip to content

ClayenKitten/itam-edu

Repository files navigation

ITAM Education

An LMS for the ITAM community.

✨ Features

  • Courses
  • Homeworks
  • Live Streams
  • Admin panel

🧩 Integrations

ITAM Education supports integration with some third-party tools.

  Telegram Bot

Telegram bot is used for user login and notifications. Check itam-edu-tg package for more information.

  GitHub App

GitHub App manages GitHub organization of the course. Check itam-edu-gh package for more information.

Important

GitHub integration is not implemented yet.

📦 Packages

ITAM Education platform consists of multiple NodeJS/Bun packages that communicate with each other over typesafe HTTP powered by Elysia.

All packages are built into OCI images and hosted on GitHub Container Registry.

🚀 Deploy

🐋 Docker Compose

Clone repository

git clone https://github.com/ClayenKitten/itam-edu.git

Configure packages

Copy every .env.example in packages/PACKAGE_NAME as .env and modify values

Note

All services are started at port 3000, changes to ports in .env will be ignored.

Configure reverse proxy

Compose deployment includes Caddy as a reverse-proxy.

Copy Caddyfile.example as Caddyfile and adjust its content as needed.

Start

docker compose up --detach

☸️ Helm

WIP

🛠️ Development

Run task to see a list of available commands.

Prerequisites

Environment

The development environment is setup by running task dev:up.

This command starts the reverse proxy, PostgreSQL, and all packages in development mode with hot reloading enabled.

Service Description URL
itam-edu-web Frontend www.localhost
itam-edu-api Backend api.localhost
itam-edu-tg Telegram bot
dbgate Web interface to Postgres db.localhost
PostgreSQL PostgresSQL RDBMS localhost:5432