This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
# Full build process
./configure --prefix=$HOME/opt/oktdb
make
make install
# Development mode (serves Qooxdoo source directly)
./bin/oktdb-source-mode.sh
# Package distribution
make dist
# Clean build
make clean# Run Perl tests
make test
# or
prove -w# Navigate to frontend directory
cd frontend
# Install dependencies
npm install
# Qooxdoo compilation happens automatically via makeOktDB is a web application for managing "Oltner Kabarett Tage" (cabaret festival) data. The architecture consists of:
- Main App:
lib/OktDB.pm- extends CallBackery framework - Database: SQLite with migrations embedded in OktDB.pm
__DATA__section - GUI Plugins:
lib/OktDB/GuiPlugin/- contains form and table definitions for each entity - Models:
lib/OktDB/Model/- report generation classes - Entry Point:
bin/oktdb.pl- Mojolicious application script
- Main App:
frontend/source/class/oktdb/Application.js- extends callbackery.Application - Build System: Uses Qooxdoo 7.x framework
- Compilation: Handled by make system, outputs to
frontend/compiled/
Core entities managed by the application:
- pers - People (artists, contacts, team members)
- agency - Talent agencies
- artpers - Artist persons/groups
- production - Shows/performances
- event - Specific event instances
- location - Venues
- okt - Festival editions
- review - Event reviews with structured JSON data
- CallBackery: Web application framework (backend)
- Mojolicious: Perl web framework
- Mojo::SQLite: Database layer
- Qooxdoo: JavaScript application framework (frontend)
- Configuration: Uses autotools (configure.ac, Makefile.am)
- Dependencies: Perl modules managed via cpanfile and Carton
- Database: Migrations handled automatically via Mojolicious::Plugin::Migration
- Frontend: Qooxdoo compilation integrated with make system
- Deployment: Supports prefork mode for production
- Perl tests in
t/directory - Test configuration in
t/oktdb.yaml - Use
prove -wto run tests in watch mode
- Main config:
etc/oktdb.yaml(or$OKTDB_CONFIGenvironment variable) - Development mode: Set
MOJO_MODE=development - Logging: Controlled via
MOJO_LOG_LEVEL