Prepare project for archival

This commit is contained in:
Manuel Cillero 2025-06-22 08:00:07 +02:00
parent 6f513abb52
commit ea0332d4a5

48
README.md Normal file
View file

@ -0,0 +1,48 @@
# Perl-Dam
**perl-dam** is a modular Perl library that simplifies the creation of interactive query forms and
filtered data listings through a menu-based interface. It includes reusable components to define UI
filters, manage user sessions, generate SQL queries, and control data access securely.
# Features
- Build dynamic query forms with reusable filter controls
- Generate custom data listings from SQL queries
- Export results to CSV or generate printable PDF reports
- Fine-grained access control for users and groups
- Modular structure with customizable UI components and templates
- Session management and error handling tools included
## Project Layout
```
perl-dam/
├── Dam/ # Core library
│ ├── Application.pm # Highlevel application wrapper
│ ├── DamLogic.pm # Session handling, rendering, permissions
│ ├── Database.pm # Lightweight DBI wrapper + SQL helpers
│ ├── Debug.pm # Debugging and logging utilities
│ ├── Util.pm # Generic helper functions
│ ├── Var.pm # Global constants
│ └── Components/ # Reusable UI pieces
│ ├── Controls/ # Filter widgets (Date.pm, Option.pm, Upload.pm…)
│ ├── Actions/ # Listing actions (Download.pm, Print.pm, Sort.pm)
│ ├── Templates/ # Template Toolkit (.tt) snippets for each control
│ └── Translations/ # Locale strings for UI texts
└── www/ # Sample web frontend (static assets)
└── dam/
├── css/ # Bootstrap + custom styles
├── js/ # jQuery, validators, menus, charting
├── fonts/ # Webfonts used by templates
└── img/ # Icons and generic imagery
```
## Key Modules
| Module | Purpose |
| ------ | ------- |
| **Dam::DamLogic** | Central dispatcher; builds menus, enforces permissions, renders forms & listings. |
| **Dam::Database** | Wraps DBI to assemble SQL from filter definitions and execute safely. |
| **Dam::Components::Controls** | Individual widgets (DateRange, MultiCheck, Year…) used to build query forms. |
| **Dam::Components::Actions** | Postlisting operations: CSV export, PDF generation, sorting. |
| **Dam::Application** | Thin application entry point—integrate it in CGI/FCGI/PSGI scripts. |