|
| 1 | +# Project Overview |
| 2 | + |
| 3 | +This is OpenMage, a community-driven fork of the Magento eCommerce platform. |
| 4 | + |
| 5 | +This project aims to provide a stable and secure version of Magento 1.x, with ongoing maintenance and improvements. |
| 6 | + |
| 7 | +## Folder Structure |
| 8 | + |
| 9 | +- `/app/code/community`: Contains the source code for the backend from community modules. |
| 10 | +- `/app/code/core`: Contains the source code for the backend from core modules. |
| 11 | +- `/app/code/local`: Contains the source code for the backend from local modules. |
| 12 | +- `/app/design/adminhtml`: Contains the template and layout files for admin view. |
| 13 | +- `/app/design/frontend`: Contains the template and layout files for frontend view. |
| 14 | +- `/app/design/install`: Contains the template and layout files for installer. |
| 15 | +- `/app/etc/modules`: Contains modules configuration. |
| 16 | +- `/app/locale`: Contains localization files. |
| 17 | +- `/cypress`: Contains cypress frontend test files. |
| 18 | +- `/docs`: Contains documentation for the project, including API specifications and user guides. |
| 19 | +- `/errors`: Contains source code for error pages. |
| 20 | +- `/js`: Contains JavaScript files for the frontend. |
| 21 | +- `/lib`: Contains third-party libraries and frameworks. |
| 22 | +- `/media`: Contains media files, such as product images. |
| 23 | +- `/shell`: Contains shell scripts for various tasks, such as database backups. |
| 24 | +- `/skin`: Contains CSS and image files for the frontend. |
| 25 | +- `/var`: Contains cache, logs, and session files. |
| 26 | + |
| 27 | +## Libraries and Frameworks |
| 28 | + |
| 29 | +- Zend Framework for core functionalities. See shardj/zf1 for more details. |
| 30 | +- jQuery for DOM manipulation and AJAX requests. |
| 31 | +- TinyMCE for rich text editing. |
| 32 | +- Chart.js for data visualization. |
| 33 | +- Flow.js for file uploads. |
| 34 | +- jscolor for color picker functionality. |
| 35 | +- Font Awesome for icons. |
| 36 | +- Plain JavaScript (ES6+) for custom scripts. Avoid using prototype libraries. |
| 37 | + |
| 38 | +## Coding Standards |
| 39 | + |
| 40 | +- Use Cypress for end-to-end testing. |
| 41 | +- Use PER2 coding standards for PHP. |
| 42 | +- Use PHP-CodeSniffer to enforce coding standards. |
| 43 | +- Use PHP-CS-Fixer for automatic code formatting. |
| 44 | +- Use PHPMD mess detector to find potential issues. |
| 45 | +- Use PHPStan for static analysis. |
| 46 | +- Use PHPUnit for unit testing. |
| 47 | +- Use Rector for automated refactoring. |
| 48 | +- Follow PSR-12 coding standards for PHP code. |
| 49 | +- Declare strict types in new PHP files. |
| 50 | +- Use type hints for function parameters and return types for new methods. |
| 51 | +- Do not use underscores in new method names. Use camelCase instead. |
| 52 | +- Use named parameters in new method calls where applicable. |
| 53 | +- Update docblocks to use proper types and descriptions for new methods and classes. |
| 54 | +- Update comments to reflect changes in code. |
| 55 | +- Update tests to cover new functionality and changes in code. |
| 56 | +- Update copyright notices in new files. |
| 57 | + |
| 58 | +## UI guidelines |
| 59 | + |
| 60 | +- Do not use prototype libraries. Use modern JavaScript (ES6+) features and libraries. |
| 61 | +- Use responsive design principles to ensure the application works well on both desktop and mobile devices. |
| 62 | +- Use a consistent color scheme and typography throughout the application. |
| 63 | +- Use clear and concise language in all user-facing text. |
| 64 | +- Ensure that all interactive elements are easily identifiable and accessible. |
| 65 | +- Provide feedback to users for their actions, such as loading indicators and success/error messages. |
| 66 | +- Test the application on multiple browsers to ensure compatibility. |
| 67 | +- Ensure that the application is accessible to users with disabilities, following WCAG guidelines. |
| 68 | +- Optimize the application for performance, minimizing load times and resource usage. |
0 commit comments