Skip to content

Latest commit

 

History

History
94 lines (72 loc) · 2.6 KB

File metadata and controls

94 lines (72 loc) · 2.6 KB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Development Commands

Build and Install

# 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

Testing

# Run Perl tests
make test
# or
prove -w

Frontend Development

# Navigate to frontend directory
cd frontend

# Install dependencies
npm install

# Qooxdoo compilation happens automatically via make

Architecture Overview

OktDB is a web application for managing "Oltner Kabarett Tage" (cabaret festival) data. The architecture consists of:

Backend (Perl/Mojolicious)

  • 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

Frontend (Qooxdoo)

  • 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/

Data Model

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

Key Dependencies

  • CallBackery: Web application framework (backend)
  • Mojolicious: Perl web framework
  • Mojo::SQLite: Database layer
  • Qooxdoo: JavaScript application framework (frontend)

Development Workflow

  1. Configuration: Uses autotools (configure.ac, Makefile.am)
  2. Dependencies: Perl modules managed via cpanfile and Carton
  3. Database: Migrations handled automatically via Mojolicious::Plugin::Migration
  4. Frontend: Qooxdoo compilation integrated with make system
  5. Deployment: Supports prefork mode for production

Testing

  • Perl tests in t/ directory
  • Test configuration in t/oktdb.yaml
  • Use prove -w to run tests in watch mode

Configuration

  • Main config: etc/oktdb.yaml (or $OKTDB_CONFIG environment variable)
  • Development mode: Set MOJO_MODE=development
  • Logging: Controlled via MOJO_LOG_LEVEL