How to read this handover
Conventions
Section titled “Conventions”- Paths are relative to the repository root unless stated otherwise. The Frappe app lives in
leekimerp/leekimerp/. - DocType names match Frappe (e.g.
Sales Invoice,Employee). - Whitelisted methods are exposed as Frappe API methods (typically
POST /api/method/leekimerp.api.<module>.<function>).
Standard page template
Section titled “Standard page template”Module and integration pages follow a consistent structure:
- Purpose — Business problem.
- Scope in codebase — File paths.
- Key DocTypes — Data touched.
- Flow — Steps and often a Mermaid diagram.
- Entry points — Desk, Page, API, hooks.
- Function / method list — Inputs, outputs, side effects (where applicable).
- Dependencies — Other modules and services.
- Configuration — Settings DocTypes / site config.
- Operational notes — Schedulers, logs.
- Known gaps — Tech debt and TODOs in code.
Finding behavior quickly
Section titled “Finding behavior quickly”- User-visible change → Desk customization:
doctype_js,public/js/. - On save / submit →
hooks.py→doc_events. - HTTP API →
leekimerp/api/*.py→@frappe.whitelist. - Cron →
hooks.py→scheduler_eventsandscheduler_events/. - Core DocType customized →
override/andoverride_doctype_classinhooks.py.
Diagrams
Section titled “Diagrams”Architecture and sequence diagrams use Mermaid and render in this site. Source lives in Markdown alongside the narrative so you can update flows when code changes.