mDIS For Developers (ICDP internal - scratch)
Related Pages
mDIS For Developers
ICDP internal
Scratch Area
Questions from 2019
Older Questions for mDIS training Dec 2019
Not ordered or ranked
Q: Template manager: "Add Behaviors" feature of the Generated Code is in Base*.php files. Could be overridden? (= Should it be copied/moved into derived classes?)
Q: Template manager: How to add "Online help" to Templates-manager GUI? (At least links to documentation)
Q: Maintenance: What is safe to delete in
web/
directory?Q: Yii Asset compression: Is it useful to us? We do not use it, no plan to do so.
Q: How to adapt the Vuetify JS theme. Is it a good idea at all to attempt to change the theme?
Q: how to learn and make better use of "Charts.js" JS library?
Q: Vue 3: what's new? (no more work on vue2?) . See various Talks and discussions on the internet, e.g. "Vue 3 Beta" (opens new window) on Hacker News
@vue/cli v3 -> v4 major upgrade possible?yes, I simply did it on my dev workstation
Feature-requests
Not prioritized or ordered
feature: Export to "GFZ FTP Server" feature
feature: Export to CoreWall (create exchange file, XML-based interchange format)feature: Export to PSICAT (create exchange file, XML-based interchange format)
Barcode scanner integration TBC. At this time only an ICDP feature.feature: Special-Purpose File-Importers, Complex Device integration TBC Corescanners, Cameras etc ICDP only
Feature: Delete many rows in batches. "Select All" checkbox as convenience feature for deleting records. At this time, Adminer has to be used, and a "DELETE FROM WHERE" SQL QueryFeature: Support password management by users themselves
Feature: HTTPS-, Progressive web app (PWA) support- (Is it really important for mobile users?)
Maintenance: finetune caching settings: see backend/config/web.php. We use
\yii\caching\FileCache
for code generation, for database caching, keysenableSchemaCache
,enableQueryCache
should be set to true in a production environment. Browser-Side caching is another can of worms.Feature: DB Schema design
- renaming existing forms and models (with low-level DB tools, and IDE) is hard
using the CSV Importer correctly, customizing it, using it together with Adminer's Importer
using version control (git) efficiently
- rapid growth of git-Repo with .php files generated by mDIS Templates-manager
- Q: what to add to file
.gitignore
? (provide a recommendation or a prepopulated.gitignore
template), what to add to .gitattributes - coupling with other Gitlab features: for future mDIS installations, keep a feedback channel to Main development site open;
- settings and notable changes in file
.git/config
; removal of.git
folder (implications)
Docs: use Continuous-Integration features of gitlab to trigger a rebuild and reindex, publish rendered HTML to webserver
Missing documentation
TBC Need to document this
Template manager: Documentation of
DefaultFromParentBehavior
,DefaultFromSiblingBehavior
,SiblingsLimitBehavior
,TemplateManagerBehaviorInterface
Yii routing:
- general knowledge is important for API calls
Dashboard: (its configuration and the widgets) - documentation, tips+tricks
DB-based/Model-based validation vs Form validation: even more fine points
Browser validation: Input Types (built-In to the Browsers)
Browser Validation vs Javascript Validation
Javascript validation: principles and implementation
- how Vue does it (required fields)
- (validation of custom listvalues / selection boxes)
- (autocompleters)
See also older wiki page from 2018 (opens new window)
Data File Upload: Filesystem I/O, Event Processing
document DB Schema design : Primary Keys, Foreign keys, Relations, Pseudo-Autoincrement cols
Development:
yii cg
task, APICallsTemplate manager: Naming convention: when to use Kebab-case, CamelCase, snake_case etc
Development: Anatomy of a Webpage rendering (walkthrough all APIcalls necessary to render an input form, Step-By-Step, perhaps with the remote debugger)
Development: Browser Local storage: What it is, how it is used by mDIS, when is cache busting (refresh) necessary
Documentation See sections marked "TBC" in viewer-operator (opens new window)
Document caching: see backend/config/web.php. Server-side caching, Browser-Side caching is another can of worms.
Testing TO DO
Ideas for Unit Tests and Integration Tests
- use more assertions in some of the production code
- Also write some end-to-end tests with Codeception
- Document how they can be run
- to get a quick-look on the current state of the app/stack, (assert that mysql is up, php/apache up, can login)
- to check important features of the app (assert that data tables are populated)
- write some load tests: many connections, handle large imports, ...
- write GUI tests for GUI based workflows
ICDP Configuration TO DO
WARNING
Change management
Development best practices for working i n a distributed team
- Periodic Recordings for monitoring, baselining (Nagios?)
- Extra Log for Important configuration changes
Virtualbox configurations: Reference Implementation (write a Vagrantfile)specify Vagrant benefits (setting up, etc)
Hardware/Device configurations
- same items as Virtualbox configurations (see above)
- but also
- Database of devices (collect Invoices, Warranty infos...)
Development Environments
same items as Virtualbox configurations (see above)
but also
- specific hacks and setups (coding style - avoid messy diffs due to IDE autoformatting whitespace)
- .editorconfig file
- .env files
- .gitignore files
git conventions (technical and social) .
Fringe Ideas
- Collect ideas about potential premium/open source features of mDIS
- Study Vuetify in depth
- Follow "Material Design guidelines" - needed to understand Vuetify - Iconset Library (opens new window) and how to use it (opens new window) . We don't use the Guidelines yet but it would be cool if we did.
.
Font test
Major fonts used in this document
"Lato" - Text Body Font
"Consolas" - Code Font
Side-By-Side Comparison with teststring Illegal1 = -> O0
:
Lato:
Illegal1 = -> O0
Illegal1 = -> O0
Consolas/Inconsolata
Consolas/Inconsolata
back to mDIS For Developers or ICDP internal