mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/tickme.git
synced 2026-08-19 04:23:56 +00:00
44 lines
2.1 KiB
Markdown
44 lines
2.1 KiB
Markdown
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:
|
|
1. Loading animation component
|
|
2. slot for custom component (e.g. user component, client component)
|
|
3. pagination component
|
|
- Validation Wrapper component is responsible for each form input validation and displaying validation errors
|
|
- Additional support components:
|
|
1. transition component
|
|
2. Modal Component
|
|
3. Selectable component for fetching data and creating a select input component
|
|
|
|
`Modules components`
|
|
- Each module usually has only 3 components:
|
|
1. element component singular component layout
|
|
2. form component for creating and editing modules
|
|
3. 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 |