mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/tickme.git
synced 2026-08-19 04:23:56 +00:00
06074949dcda14ef320c0a5ed4cd1e66a7518044
This project was created in 1 week with a code generator I have created to increase productivity, and this is the "real-world usage test" to learn more about the limitations and downfalls of the generator.
Files Structure
Common Backend file structure
Inside App/Modules:
- Each module on the site is separated into folders without sub-categorization
- Controller logic is all the logic required before executing the action
- Data Transfer Objects are class in charge of validating the request data types & for unifying the methods and the names for request data
- Service classes are for executing specific actions and don't run any conditions
- Standards are represent the rule for executing an action like authorization, validations, and criterias
Common Vue Files
General Components
- list component is responsible for calling the fetch endpoint and uses 3 components:
- Loading animation component
- slot for custom component (e.g. user component, client component)
- pagination component
- Validation Wrapper component is responsible for each form input validation and displaying validation errors
- Additional support components:
- transition component
- Modal Component
- Selectable component for fetching data and creating a select input component
Modules components
- Each module usually has only 3 components:
- element component singular component layout
- form component for creating and editing modules
- filter component is used for searching a list of components
Common Issues
- Some database types are not being converted correctly in the code base and has to be manually fixed after being generated (e.g. UnsignedBigInteger)
- Categorizing the folders is currently 1 level and doesn't really work with sub-categorizations
- There are unnecessary files being generated
- Time tracker backend code needs to be cleaned up
- Project task generator uses a primitive foreach loop which isn't efficient solution and can be improved
- excessive use of resource objects to loading relationships
- task details vue component needs to be cleaned and divided into smaller components
Description
Languages
PHP
56.7%
Vue
20.6%
HTML
18.7%
Blade
4%