# Demo code for interviewing This repository contains a simplified version of one of my personal commercial pet project prepared for technical interviews. Because of that: 1. All sensitive data has been renamed and/or deleted. In some places this may break autoloading or other integrations, but the code structure remains intact and suitable for review. 2. The Git history has been squashed into a single commit for the same reason. 3. The maximum supported PHP version is 7.4. This requirement comes from the external CMS that this project integrates with. Therefore, some modern PHP 8+ features are not used here, although I have experience working with the latest PHP versions. ## What the application does The application integrates with an e-commerce CMS and provides a Telegram Mini App that exposes the product catalog to the end users. The application uses the external e-commerce database (MySQL) and adds some tables (see `backend/src/database/migrations`). # Directory structure The project has monorepo includes frontend (vuejs) and backend (php). ## Backend structure main points: ``` backend - native php code with my framework. └── src ├── app - the main application code ├── bastion - the admin panel application code ├── cli.php - cli entrypoint ├── composer.json ├── composer.lock ├── configs ├── console - CLI application ├── database ├── framework - self-written php framework ├── phpstan.neon ├── phpunit.xml ├── stubs └── tests ```