Have you tried:
https://docs.moodle.org/dev/NEWMODULE_Documentation
https://docs.moodle.org/dev/Activity_modules
https://docs.moodle.org/dev/Blocks
https://docs.moodle.org/31/en/Development:NEWMODULE_Documentation
or:
Moodle 3.1 LTS modules development by Tomasz Muras