Hi @mahmoodali01 Sounds like an ambitious undertaking. The most important thing to know about making changes to the core is that your changes can be overwritten by future updates. If you are interested in contributing your changes to have them part of the core, be sure to check out our Contributing guide and aim to keep your code flexible for different schools (eg: there is an attendance code table, rather than hard-coding them).
If you’d prefer to make the changes for yourself, which is fine, be sure to fork the Core so that you can track your changes in GitHub and merge any new versions of Gibbon into your forked version, so you can keep your changes and acquire new changes from new versions.
Hope this helps! Attendance can be quite complex in Gibbon, so give a shout if you need help or clarification with your development efforts.