# Project Overview: pomysloweprezenty.pl ## Purpose Polish e-commerce website (gift shop) - a custom-built online store at pomysloweprezenty.pl. ## Tech Stack - **Language**: PHP (no framework, custom MVC-like architecture) - **Database**: MySQL via RedBeanPHP ORM (`\R::`) and Medoo query builder - **Email**: PHPMailer - **Caching**: Redis (optional) - **Frontend**: PHP templates, SCSS for admin styles, vanilla JavaScript - **Libraries**: Included directly in `/libraries/` (no Composer) - **Server**: Apache (.htaccess files present) ## Architecture - **`autoload/`** - Core PHP classes (auto-loaded via custom spl_autoload_register) - `Domain/` - Business logic repositories (Article, Product, Category, Order, Client, etc.) - `admin/Controllers/` - Admin panel controllers - `admin/ViewModels/` - View models for admin forms and tables - `admin/Support/` - Form handling, table list support - `api/` - REST API router and controllers - `front/` - Frontend app, controllers, views, layout engine - `Shared/` - Helpers, Cache, Email, HTML, Image, Template engine - **`admin/`** - Admin panel (templates, JS, AJAX handlers, styles) - **`templates/`** - Frontend templates (shop, articles, basket, client, etc.) - **`templates_user/`** - User-customizable templates - **`libraries/`** - Third-party libraries (medoo, RedBeanPHP, PHPMailer) - **`cron/`** - Cron job scripts - **`plugins/`** - Plugin system ## Entry Points - `index.php` - Main frontend entry point - `admin/index.php` - Admin panel - `api.php` - API entry point - `ajax.php` - AJAX handler (frontend) - `admin/ajax.php` - AJAX handler (admin) - `cron.php` - Cron jobs entry point ## Key Patterns - Repositories pattern for data access (e.g., `ProductRepository`, `OrderRepository`) - PHP templates with `Tpl` engine for rendering - Admin uses form-edit and table-list component patterns - Session-based authentication with IP validation - Timezone: Europe/Warsaw