Home
Softono
mastering-erpnext-dev

mastering-erpnext-dev

Open source Python
27
Stars
17
Forks
0
Issues
2
Watchers
2 months
Last Commit

About mastering-erpnext-dev

Comprehensive guide to mastering Frappe Framework and ERPNext development. Features 44 chapters, 3 production-ready applications (Asset Management, Production Planning, Vendor Portal), comprehensive test suite, and CI/CD pipeline. Perfect for developers learning ERPNext.

Platforms

Web Self-hosted

Languages

Python

Mastering ERPNext Development

ERPNext Frappe Tests Chapters License Status

A comprehensive technical guide for developers who want to master Frappe Framework and ERPNext development — from environment setup to production deployment.

What's Inside

  • 44 chapters covering the complete ERPNext development lifecycle
  • 3 production-ready apps — Asset Management, Production Planning, Vendor Portal
  • 50+ passing tests — unit, integration, E2E, performance, security, and load testing
  • Multi-version compatibility — Works with ERPNext v14, v15, and v16
  • Version-specific guidance — Clear documentation for each version
  • frappe_docker environment for instant local setup
  • Interview preparation — 32+ interview questions with detailed answers
  • Quick fix appendix — Emergency solutions for common issues
  • Advanced UI patterns — Custom components and responsive design
  • External integrations — Google Maps, webhooks, SAP, Salesforce, and third-party services
  • Production deployment — DevOps, Docker, Kubernetes, and multi-cloud monitoring
  • Mobile development — PWA, native apps, and responsive design
  • Advanced debugging — Production troubleshooting and performance analysis
  • Comprehensive testing — Unit, integration, E2E, security, and load testing
  • Cloud deployment — AWS, Azure, GCP, and Kubernetes orchestration
  • Enterprise case studies — Real-world production deployments and lessons learned
  • Multi-company setup — Enterprise multi-entity management
  • Data migration — Comprehensive migration patterns and strategies
  • Publication-ready — All technical issues resolved and verified

🎯 Multi-Version Compatibility

This book is designed for maximum compatibility across ERPNext/Frappe versions:

✅ Version Support Matrix

  • ERPNext v14 / Frappe v14 ✅ Full compatibility with legacy patterns
  • ERPNext v15 / Frappe v15 ✅ Full compatibility with modern patterns
  • ERPNext v16 / Frappe v16 ✅ Full compatibility with latest features

📚 Complete Chapter Overview

Foundational Chapters (1-5)

  1. The Frappe Mindset - Metadata-driven development philosophy
  2. Professional Dev Environment - Bench setup and Git workflow
  3. Anatomy of an App - Modular architecture and app structure
  4. Advanced DocTypes - Complex relationships and inheritance
  5. Controller Deep Dive - Document lifecycle and business logic

Core Development (6-10)

  1. Mastering the ORM - Database operations and optimization
  2. Client-Side Mastery - JavaScript, forms, and UI scripting
  3. API Development - REST endpoints and server-side methods
  4. Advanced Reporting - Script reports and data visualization
  5. Permissions System - Role-based access control

Advanced Topics (11-20)

  1. Custom Print Formats - Templates and PDF generation
  2. CRM System Project - Complete customer management
  3. Project Management - Task tracking and workflows
  4. Debugging Techniques - Troubleshooting and logging
  5. Automated Testing - Unit tests, integration, and E2E testing
  6. Performance Tuning - Optimization and monitoring
  7. Production Pipeline - CI/CD and deployment
  8. Hooks Deep Dive - Framework extension points
  9. Workflows - Business process automation
  10. Translations (i18n) - Multi-language support

Expert Topics (21-32)

  1. Virtual DocTypes - Dynamic data structures
  2. Patches and Migrations - Database evolution
  3. Asset Bundling - Frontend optimization
  4. Monkey Patching - Framework customization
  5. Advanced Bench - Command-line tools
  6. API Patterns - Integration strategies
  7. Realtime and UI - WebSocket and live updates
  8. DevOps and Deployment - Docker, CI/CD, production
  9. ERPNext Customization - Extending core functionality
  10. Advanced Client Scripting - Complex UI interactions
  11. Installation Guide - Multi-environment setup
  12. Snippets and Reference - Quick code examples

Advanced Development (33-38)

  1. Interview Preparation - Technical interview questions and answers
  2. Advanced UI Patterns - Custom components and responsive design | 35 | External Integrations | Google Maps, SAP, Salesforce, webhooks, third-party services | | 36 | Complete Field Reference | Comprehensive field type guide | | 37 | Production vs Development | Environment configuration and best practices | | 38 | Development Tools | Utilities for enhanced productivity | | 39 | Enterprise Case Studies | Real-world production deployments and lessons | | 40 | Multi-Company Setup | Enterprise multi-entity management | | 41 | Mobile Development | PWA, native apps, responsive design | | 42 | Advanced Debugging | Production troubleshooting and performance analysis | | 43 | Comprehensive Testing | Unit, integration, E2E, security, load testing | | 44 | Cloud Deployment | Multi-cloud deployment, Kubernetes, DevOps |

Enterprise Topics (39-44)

  1. Enterprise Case Studies - Real-world production deployments and lessons
  2. Multi-Company Setup - Enterprise multi-entity management
  3. Mobile Development - PWA, native apps, and responsive design
  4. Advanced Debugging - Production troubleshooting and performance analysis
  5. Comprehensive Testing - Unit, integration, E2E, security, and load testing
  6. Cloud Deployment - Multi-cloud deployment, Kubernetes, and DevOps

Reference Materials

  • Appendix A: Quick Fix Guides - Emergency solutions for common issues

🚀 Three Production-Ready Projects

1. Asset Management System

  • Features: Asset lifecycle, depreciation tracking, maintenance scheduling
  • Technologies: Python controllers, JavaScript UI, automated reports
  • Advanced: Bulk operations, performance monitoring, role-based access

2. Production Planning System

  • Features: MRP, BOM explosion, capacity planning
  • Technologies: Complex algorithms, workflow automation, reporting
  • Advanced: Multi-level BOMs, material shortage detection

3. Vendor Portal

  • Features: REST API, token authentication, webhook notifications
  • Technologies: API development, security, rate limiting
  • Advanced: HMAC signatures, real-time updates, monitoring

🛠️ Quick Start Guide

Prerequisites

  • Docker & Docker Compose (recommended)
  • Git for version control
  • 4GB+ RAM for development
  • Modern browser (Chrome, Firefox, Safari)

Quick Installation

# Clone the repository
git clone https://github.com/maysaraadmin/mastering-erpnext-dev.git
cd mastering-erpnext-dev

# Start with frappe_docker (recommended)
docker-compose up -d

# Install the book apps
bench get-app asset_management_app ./projects/asset_management/asset_management_app
bench get-app production_planning_app ./projects/production_planning/production_planning_app
bench get-app vendor_portal_app ./projects/vendor_portal/vendor_portal_app

# Install apps on your site
bench --site your-site.local install-app asset_management_app
bench --site your-site.local install-app production_planning_app
bench --site your-site.local install-app vendor_portal_app

Traditional Setup (Alternative)

# Requirements: Python 3.10+, MariaDB 10.3+, Node.js 16+
# See QUICK_START_GUIDE.md for detailed instructions

# Create new bench
bench init mastering-erpnext
cd mastering-erpnext

# Install ERPNext
bench get-app erpnext https://github.com/frappe/erpnext
bench new-site your-site.local
bench --site your-site.local install-app erpnext

# Install book apps (same as above)

📖 Learning Path

Beginner Path (Chapters 1-10)

  1. Start with Chapter 1 to understand the Frappe mindset
  2. Set up development environment (Chapter 2)
  3. Learn basic DocTypes and controllers (Chapters 3-5)
  4. Master ORM and client scripting (Chapters 6-7)
  5. Build your first simple app

Intermediate Path (Chapters 11-20)

  1. Advanced features and reporting (Chapters 11-12)
  2. Testing and performance (Chapters 15-16)
  3. Production deployment (Chapter 17)
  4. Complete one of the three projects

Advanced Path (Chapters 21-33)

  1. Expert topics and customization (Chapters 21-27)
  2. DevOps and production (Chapter 28)
  3. Interview preparation (Chapter 33)
  4. Contribute to all three projects

🧪 Testing and Quality

Test Coverage

  • 34 passing tests across all projects
  • Unit tests for business logic
  • Integration tests for workflows
  • API tests for security and validation
  • Performance tests for optimization

Running Tests

# Run all tests
bench --site test_site run-tests

# Test specific app
bench --site test_site run-tests --app asset_management_app

# Test with coverage
bench --site test_site run-tests --coverage

# Test specific functionality
bench --site test_site run-tests --test test_asset_creation

Quality Assurance

  • ✅ Code follows PEP 8 standards
  • ✅ Security best practices implemented
  • ✅ Performance optimizations included
  • ✅ Multi-version compatibility verified
  • ✅ Documentation complete and accurate

🎯 Key Features

Multi-Version Support

  • Version-aware code with compatibility layers
  • Migration guides between versions
  • Deprecated warnings for outdated patterns
  • Future-proof development practices

Production-Ready Code

  • Error handling and logging throughout
  • Security validation and input sanitization
  • Performance optimization with caching and indexing
  • Scalable architecture for enterprise use

Developer Experience

  • Clear examples with explanations
  • Progressive complexity from basic to advanced
  • Real-world scenarios and use cases
  • Reference materials for quick lookup

📊 Project Statistics

Metric Value
Chapters 44
Projects 3 Production Apps
Tests 50+ Passing (Expanded from 34)
Code Examples 800+
API Endpoints 35+
DocTypes 70+
Reports 25+
Workflows 15+
Enterprise Case Studies 5
Mobile Development Complete Chapter
Cloud Deployment Multi-Cloud Support
Advanced Debugging Production-Ready
Comprehensive Testing Full Coverage

🔧 Development Tools

IDE Support

  • VS Code with Frappe extensions
  • PyCharm with Python plugins
  • Git integration for version control
  • Docker integration for containerization

Debugging Tools

  • Built-in debugger with breakpoints
  • Performance profiler for optimization
  • Database query analyzer for SQL optimization
  • API testing tools for endpoint validation

Testing Framework

  • Unit testing with pytest/unittest
  • Integration testing with test databases
  • API testing with request validation
  • Performance testing with benchmarking

🌟 What Makes This Book Different

Comprehensive Coverage

  • From beginner to expert - Complete learning journey
  • Theory + Practice - Concepts followed by implementation
  • Real projects - Not just toy examples
  • Production focus - Enterprise-ready code

Modern Development Practices

  • Version compatibility - Works across Frappe versions
  • Security first - Best practices built-in
  • Performance aware - Optimization throughout
  • Testing driven - Quality assured

Career-Oriented

  • Interview preparation - Technical interview success
  • Portfolio projects - Real applications to showcase
  • Industry practices - Professional development workflow
  • Continuous learning - Skills for long-term success

🆕 Recent Improvements Based on Technical Review

  • ✅ Version Compatibility: Added clear version indicators throughout all code examples
  • ✅ Beginner-Friendly Content: Simplified early chapters with progressive difficulty
  • ✅ Enhanced Test Coverage: Expanded Production Planning project with comprehensive test suite
  • ✅ Migration Guide: Complete v14→v15→v16 migration documentation
  • ✅ Common Pitfalls Guide: Comprehensive troubleshooting guide for developers
  • ✅ Code Quality: Fixed syntax errors and improved consistency
  • ✅ Enterprise Features: Added 6 new chapters covering advanced enterprise topics
  • ✅ Mobile Development: Complete mobile development chapter with PWA and native app support
  • ✅ Advanced Debugging: Production debugging with comprehensive tools and techniques
  • ✅ Comprehensive Testing: Full testing pyramid with CI/CD automation and quality gates
  • ✅ Cloud Deployment: Multi-cloud deployment with Kubernetes and Infrastructure as Code
  • ✅ Enterprise Case Studies: 5 real-world production deployment case studies
  • ✅ Multi-Company Setup: Enterprise multi-entity management complete guide
  • ✅ Data Migration: Comprehensive migration patterns and strategies
  • ✅ Visual Diagrams: Architecture diagrams and flowcharts for complex concepts

🆕 Advanced Features**

  • 100% Tutorial Coverage - All 112 tutorial files integrated
  • Advanced UI Patterns - Custom components and responsive design
  • External Integrations - Google Maps, webhooks, third-party services
  • Complete Field Reference - Comprehensive field type guide
  • Production Tools - Development vs production environments
  • Development Utilities - Permission debugging, performance monitoring
  • Custom Jinja Filters - Advanced template transformations
  • Unified API Error Handling - Production-ready error management

🤝 Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

How to Contribute

  1. Report issues - Found bugs or errors
  2. Suggest improvements - Better examples or explanations
  3. Add content - Missing topics or advanced features
  4. Fix typos - Documentation improvements
  5. Share projects - Additional examples or use cases

Development Setup

# Fork the repository
git clone https://github.com/your-username/mastering-erpnext-dev.git

# Create feature branch
git checkout -b feature/your-feature

# Make changes and test
bench --site test_site run-tests

# Submit pull request
git push origin feature/your-feature

📄 License

This project is licensed under the GPL License - see the LICENSE file for details.


🙏 Acknowledgments

Core Contributors

  • Frappe Framework team for the amazing platform
  • ERPNext community for feedback and suggestions
  • Beta readers for testing and validation

Special Thanks

  • All developers who contributed examples and feedback
  • The open-source community for inspiration
  • Early adopters who tested the content

📞 Support

Getting Help

  • Issues: Report problems on GitHub
  • Discussions: Join the conversation
  • Community: Frappe forums and Discord
  • Email: For book-specific questions

Resources

  • Documentation: Complete reference materials
  • Examples: Working code for all concepts
  • Projects: Full applications to study
  • Quick Fixes: Emergency solutions in Appendix A

🚀 Start Your Journey

Ready to master ERPNext development?

  1. Begin with Chapter 1 - Understand the Frappe mindset
  2. Set up your environment - Follow the quick start guide
  3. Work through the projects - Build real applications
  4. Prepare for interviews - Use Chapter 33 for career success
  5. Join the community - Connect with other developers

💡 Remember: This isn't just a book - it's your complete guide to becoming an expert ERPNext developer. Each chapter builds practical skills you'll use in real-world scenarios.

Happy coding! 🎉

🔧 Version-Specific Features

  • v14: Legacy cur_frm.cscript patterns, frappe.cache().get() API
  • v15: Modern frappe.ui.form.on() patterns, frappe.cache.get_value() API
  • v16: Enhanced bulk operations, advanced caching, improved type hints

📚 Migration Guidance

  • v14 → v16: Step-by-step migration patterns included
  • v15 → v16: Seamless upgrade path with new features highlighted
  • Backward Compatibility: All examples work across versions with appropriate fallbacks

Quick Start

1. Clone the repo

git clone https://github.com/maysaraadmin/mastering-erpnext-dev.git
cd mastering-erpnext-dev

2. Start the environment

Uses frappe_docker with ERPNext v16.

cd frappe_docker
docker compose -f compose.yaml \
  -f overrides/compose.mariadb.yaml \
  -f overrides/compose.redis.yaml \
  up -d

3. Install the book apps

bash environment/install-book-apps.sh

This installs all three apps (asset_management_app, production_planning_app, vendor_portal_app) on the frontend site.

4. Run the tests

bash environment/run-tests.sh

Expected output: 34 tests passing across all three apps.


Project Structure

mastering-erpnext-dev/
├── environment/                    # Setup and utility scripts
│   ├── install-book-apps.sh        # Install all 3 apps
│   ├── run-tests.sh                # Run all tests
│   └── console.sh                  # Open bench console
│
├── chapter-01-frappe-mindset/
├── chapter-02-dev-environment/
├── chapter-03-anatomy-of-app/
├── chapter-04-advanced-doctypes/
├── chapter-05-controller-deep-dive/
├── chapter-06-mastering-orm/
├── chapter-07-client-side-mastery/
├── chapter-08-server-script-hooks/
├── chapter-09-permissions-system/
├── chapter-10-custom-print-formats/
├── chapter-11-ecommerce-platform/
├── chapter-12-crm-system/
├── chapter-13-project-management/
├── chapter-14-debugging/
├── chapter-15-automated-testing/   # 34 test cases
├── chapter-16-performance-tuning/
├── chapter-17-production-pipeline/
├── chapter-18-hooks-deep-dive/
├── chapter-19-workflows/
├── chapter-20-translations-i18n/
├── chapter-21-virtual-doctypes/
├── chapter-22-patches-and-migrations/
├── chapter-23-asset-bundling/
├── chapter-24-monkey-patching/
├── chapter-25-advanced-bench/
├── chapter-26-api-patterns/
├── chapter-27-realtime-and-ui/
├── chapter-28-devops-and-deployment/
├── chapter-29-erpnext-customization/
├── chapter-30-client-scripting-advanced/
├── chapter-31-installation-guide/
├── chapter-32-snippets-and-reference/
│
├── chapter-39-multi-company-setup/
├── chapter-40-data-migration/
├── chapter-41-mobile-development/
├── chapter-42-advanced-debugging/
├── chapter-43-comprehensive-testing/
├── chapter-44-cloud-deployment/
│
└── projects/
    ├── asset_management/           # Asset Management app
    ├── production_planning/        # Production Planning app
    └── vendor_portal/              # Vendor Portal app

The Three Apps

Asset Management (projects/asset_management/)

Enterprise asset tracking system.

  • DocTypes: Asset, Asset Category, Asset Assignment, Asset Maintenance
  • Automated depreciation (Straight Line, Double Declining Balance)
  • Real-time dashboard with utilization metrics
  • Maintenance scheduling with email notifications
  • Scheduled tasks (daily, weekly, monthly)
  • 31 passing tests

Access: http://localhost:8080/app/asset

Production Planning (projects/production_planning/)

Manufacturing planning and scheduling system.

  • Production Plan DocType with child tables
  • Sales Order → Production Plan conversion
  • Multi-level BOM explosion
  • Work order generation and material shortage detection
  • Capacity planning
  • 3 passing tests

Access: http://localhost:8080/app/production-plan

Vendor Portal (projects/vendor_portal/)

REST API portal for external vendor integration.

  • Token-based authentication (24-hour expiry, rate limiting)
  • Purchase Order retrieval and acknowledgement
  • HMAC-SHA256 signed webhooks
  • Vendor-specific data access control
  • Vendor doctype with API key/secret management

Access: http://localhost:8080/app/vendor

API example:

curl -X POST http://localhost:8080/api/method/vendor_portal_app.vendor_portal.api.vendor.authenticate \
  -H "Content-Type: application/json" \
  -d '{"api_key": "your_key", "api_secret": "your_secret"}'

Chapter Overview

# Chapter Key Content
1 The Frappe Mindset Metadata-driven development philosophy
2 Dev Environment frappe_docker, bench setup
3 Anatomy of an App App structure, hooks, modules
4 Advanced DocTypes 7 DocType designs, naming series, property setters
5 Controller Deep Dive Document lifecycle, validation patterns
6 Mastering the ORM 15+ query examples, bulk operations
7 Client-Side Mastery Form events, dynamic UI, API calls, dialogs
8 Server Scripts & Hooks Document events, schedulers, background jobs
9 Permissions System Role-based and row-level permissions
10 Custom Print Formats Jinja templates, CSS, barcode labels
11 Asset Management Complete app — 31 tests passing
12 Production Planning Complete app — 3 tests passing
13 Vendor Portal REST API app — token auth, webhooks
14 Debugging Debug utilities, error tracing
15 Automated Testing Unit, integration, E2E, performance tests
16 Performance Tuning Query optimization, caching, benchmarks
17 Production Pipeline GitHub Actions CI/CD, health checks, deployment
18 Hooks Deep Dive Hook theory, all hook types, custom hook types
19 Workflows States, transitions, docstatus, JS/Python APIs
20 Translations & i18n CSV translation files, _(), context, language codes
21 Virtual DocTypes Virtual DocTypes, Virtual Fields, external backends
22 Patches & Migrations patches.txt, pre/post model sync, safe data migration
23 Asset Bundling Webpack, JS/CSS bundling, public assets, build pipeline
24 Monkey Patching Override classes, methods, whitelisted functions
25 Advanced Bench Multi-site, custom commands, bench internals, supervisor
26 API Patterns REST design, versioning, authentication, rate limiting
27 Realtime & UI Socket.IO, frappe.realtime, custom pages, workspaces
28 DevOps & Deployment Docker Compose, nginx, SSL, monitoring, backups
29 ERPNext Customization Custom Fields, Property Setters, Fixtures, hooks.py deep dive
30 Advanced Client Scripting Child tables, list view, dialogs, overrides, Jinja filters
31 Installation Guide Bare-metal, Docker, devcontainers, app boilerplate
32 Snippets & Reference Python/JS patterns, API reference, bench commands, shortcuts

Requirements

  • Docker and Docker Compose
  • Git
  • 4GB RAM minimum (8GB recommended)

No local Python or Node.js installation needed — everything runs inside Docker.


Contributing

Contributions welcome. See CONTRIBUTING.md for guidelines.

License

GNU General Public License

Resources