ERPNext is a comprehensive open-source ERP (Enterprise Resource Planning) system built on the Frappe Framework. It provides a full suite of business management modules including Accounting, CRM, Buying, Selling, Stock/Inventory, Manufacturing, Projects, Assets, Quality Management, Support, and more. The system uses a metadata-driven architecture where DocTypes (document types) define data models, business logic, and UI behavior. The codebase follows a modular structure with each business domain in its own directory (accounts, buying, selling, stock, manufacturing, projects, etc.). It includes a modern React/TypeScript banking module built with Vite for bank reconciliation and statement importing. The system supports multi-company, multi-currency, multi-language deployments with extensive regional/localization support for tax compliance across many countries. It has a robust patch/migration system for database schema evolution and a comprehensive test suite.
Odoo is a comprehensive, modular Enterprise Resource Planning (ERP) suite built on a Python backend and a JavaScript/TypeScript frontend. It functions as a full-stack web application framework, providing core business modules (Accounting, Sales, Inventory, HR, CRM) alongside a robust ORM and a component-based UI framework (Owl). The architecture is a modular monolith where the core `odoo/` directory defines the framework and `addons/` contains business logic, localization, and integrations. It relies heavily on PostgreSQL for data persistence and uses a registry pattern for extensibility in both backend and frontend code. The system is designed for high customization through model inheritance (`_inherit`) and frontend patching (`patch`), allowing developers to extend functionality without modifying core code directly. The codebase demonstrates significant craftsmanship in its ORM implementation, which handles complex relationships, computed fields, and access rights rules. The frontend utilizes the Owl framework for reactive components, with a sophisticated service registry for dependency injection. However, the heavy reliance on prototype patching in JavaScript and monkey-patching in Python introduces technical debt and potential fragility during framework upgrades. The repository is actively maintained with frequent commits, a large community, and extensive test coverage including unit tests, integration tests, and UI tours. Localization support is a major feature, with country-specific modules handling tax, invoicing, and compliance requirements.
ruoyi-vue-pro (芋道) is a large-scale, multi-module enterprise rapid development platform built on Spring Boot 2.7, MyBatis-Plus, and Vue 3. It provides a comprehensive backend infrastructure for building business applications such as ERP, CRM, HRM, MES, WMS, OA, BPM (Flowable), IoT, AI, IM, Pay, Mall, and more. The codebase is structured around a reusable framework layer (`yudao-framework`) with many Spring Boot starters for security, data permission, multi-tenancy, WebSocket, Excel, monitoring, and protection (rate limiting, idempotency). Business modules follow a consistent layered pattern (DO → Mapper → Service → Controller → VO) with MapStruct converters. The system supports MySQL, PostgreSQL, Oracle, SQL Server, and Dameng databases, and integrates with Redis, RabbitMQ, Kafka, RocketMQ for messaging. It includes a code generator, a workflow designer, and AI chat/image/mind-map capabilities. The architecture is modular and well-organized, though the sheer number of modules (20+) introduces some duplication and complexity. Overall, it is a mature, actively maintained project with strong adherence to common enterprise patterns.
Frappe Books is a full-featured, offline-first desktop accounting and inventory management application built with Electron, Vue 3, and a custom ORM framework (fyo) on top of SQLite. It supports double-entry bookkeeping, invoicing (Sales/Purchase/Returns), payment processing, stock management (batches, serial numbers, FIFO valuation), Point of Sale (classic and modern layouts), financial reports (Balance Sheet, P&L, Trial Balance, General Ledger, GST reports), loyalty programs, pricing rules, coupon codes, and multi-currency. The architecture is schema-driven: JSON schema files define document structures, and model classes add business logic via formulas, validations, and lifecycle hooks. The backend runs in the Electron main process and exposes IPC APIs for file operations, database access, and auto-updates. The frontend is a reactive Vue 3 SPA with a comprehensive component library. Regional support (India, Switzerland) is implemented through model overrides and schema extensions. The codebase demonstrates strong engineering practices with a layered architecture, but the custom framework introduces some coupling. It is actively maintained with CI/CD, automated tests, and regular patches.
Akaunting is a self-hosted accounting and invoicing platform for small businesses and freelancers. It manages invoices, bills, banking transactions, transfers, reconciliations, multi-currency, multi-tax, recurring documents, and financial reports. It includes a customer portal for invoice viewing and payment, and supports multi-company, multi-user with role-based permissions. The system is highly internationalized with 40+ language locales. The architecture is built on a custom PHP framework (Illuminate) that extends Laravel conventions. It uses an event-driven architecture with domain events, listeners, and a job queue for async processing. The frontend combines Blade templates, Vue.js components, and Livewire for interactivity. Multi-tenancy is achieved through company scoping via a global query scope. The system is extensible via a module system with an app store, and includes a CLI for maintenance tasks. Key entry points include the installation wizard (controllers under Install/), authentication flows, and core CRUD controllers for sales, purchases, banking, and settings. Data flows typically involve controllers dispatching jobs that emit events, which listeners handle to update related entities, send notifications, or trigger side effects. Reports use a filter/group/rows event system for extensibility. Import/export is handled via Excel with multi-sheet support. External dependencies include PHP 8.1+, Node 18-20, and a database (MariaDB, MySQL, PostgreSQL, SQLite). It uses Laravel Mix for asset compilation, integrates with payment gateways, email services, and error trackers (Sentry, Bugsnag), and relies on a module marketplace at api.akaunting.com.
This repository is a collection of Odoo modules extending financial reporting capabilities in the Odoo ERP system. It provides standardized financial reports (aged partner balance, general ledger, trial balance, VAT report, etc.), partner statements (activity, outstanding, detailed), tax balance reports, cash flow forecasting, and export functionality in multiple formats (PDF, HTML, XLSX). The architecture follows Odoo's modular pattern with models, views, reports, wizards, and data files. Key entry points are wizard-driven interfaces that collect user parameters and generate reports via QWeb templates or XLSX generators. The system relies on Odoo's core accounting models and reporting infrastructure, with data flowing from user input through ORM queries to report presentation. The codebase demonstrates good reuse through abstract base classes for reports and wizards, reducing duplication across report types.
Grocy is a self-hosted web application for household inventory and chores management. It provides a monolithic PHP backend (Slim 4, custom MVC) with a SQLite database, server-rendered Blade templates, and a JavaScript frontend (jQuery, Bootstrap 4, DataTables, FullCalendar). The system tracks stock (purchases, consumption, inventory, transfers), manages shopping lists, recipes, meal plans, chores, batteries, tasks, and equipment. It exposes a REST API for programmatic access, supports barcode scanning (including custom Grocycode format), external barcode lookup plugins, webhook-based label printing, multi-user permissions, and extensive localization via gettext. The codebase demonstrates solid engineering with a service layer, generic API controllers, feature flags, and a plugin system, but relies on an older frontend stack and a custom framework that may hinder contributor onboarding.
IDURAR is a free, open-source ERP and CRM application built on the MERN stack (MongoDB, Express.js, React.js, Node.js) with Ant Design and Redux. It provides modules for invoice management, payment processing, quote generation, customer relationship management, inventory tracking, and financial reporting. The system features multi-language support (44 languages), PDF generation for business documents, role-based access control, and a responsive user interface. The architecture separates concerns with a RESTful API backend and a modular frontend utilizing React, Redux for state management, and Ant Design for UI components.
This repository is a collection of Odoo Community Association (OCA) addons focused on extending accounting and invoicing functionality in Odoo. It provides over 50 modules that automate invoice processing, manage taxes and discounts, handle refunds and returns, integrate stock operations with invoicing, and enhance partner-specific invoicing workflows. Each module follows standard Odoo module structure with models, views, wizards, and data files, extending core Odoo models like account.move, sale.order, and stock.picking via inheritance. The modules are loosely coupled but may have interdependencies declared in their manifests. The system is designed to be installed within an Odoo instance, with entry points defined in each module's __init__.py and __manifest__.py files. Recent activity (last commit 2026-09-25) and active maintenance indicate a healthy project, though the wide version support (some modules targeting Odoo 9.0c-18.0) requires careful dependency management.
This is the OCA/social repository, a collection of 15 Odoo addon modules for Odoo 18.0 that extend the Odoo Discuss and mail systems with external messaging integrations and social profile features. The core module, `mail_gateway`, provides an abstract framework for integrating external chat platforms (Telegram, WhatsApp, Instagram) into Odoo Discuss via webhooks, enabling bidirectional communication. Concrete gateway modules (`mail_gateway_telegram`, `mail_gateway_whatsapp`, `mail_gateway_instagram`, and `mail_gateway_telegram_standalone`) implement provider-specific APIs, including message sending, template management (WhatsApp), and webhook verification. Additional modules add social media profile fields to partners and companies (LinkedIn, Mastodon), audit activity cancellations and unlinks, control mention suggestions, route unhandled emails to a default thread, and extend marketing campaigns with budget tracking. The repository follows standard OCA addon structure with Python models, XML views, OWL/JavaScript component patches, wizards, security rules, and translations. It is not a standalone application but a set of modules designed to be installed in an Odoo instance.
Totum is a self-hosted, low-code/no-code application framework built on PHP 8.3 and PostgreSQL. It functions as a dynamic database and spreadsheet hybrid, allowing users to define data structures (tables, fields) via JSON configuration and implement business logic using a proprietary DSL ('Totum-code'). The system features a modular architecture with a CLI management tool (`bin/totum`), a web-based UI (`http/index.php`), and extensive role-based access control (RBAC). It supports multi-tenancy via schema mapping, external service integration (PDF, Excel, AI), and automated installation via Ansible playbooks for Ubuntu environments. The core logic relies heavily on traits for shared functionality and abstract base classes for table and field handling, creating a flexible but complex codebase. The application is designed for rapid business application construction (CRM, ERP, custom tools) without requiring traditional coding. It stores schema definitions and field configurations in PostgreSQL JSONB columns, enabling runtime structure modification. The calculation engine (`Calculate.php`) parses and executes custom code strings for data validation, formatting, and cross-table logic. While the architecture is robust for its intended purpose, it exhibits signs of technical debt including monolithic frontend JavaScript (`main.js`), hardcoded paths in installation scripts, and reliance on legacy libraries (Chart.js v2, jQuery). The codebase demonstrates significant craftsmanship in its dynamic table engine and calculation DSL, but maintenance requires careful handling of the custom parsing logic and schema migrations.
Samarium is a modular, all-in-one business management system (ERP/CMS) built with Laravel 11 and Livewire 3. It provides a comprehensive admin dashboard for small to medium businesses, covering sales invoicing, purchase orders, expense tracking, inventory management, accounting (double-entry ledger, trial balance, income statement), customer/vendor relationship management, and a full content management system (webpages, posts, galleries, navigation menus, themes). It also includes e-commerce capabilities (product catalog, shopping cart, online orders), appointment booking, team management, calendar with Nepali date support, and additional modules like vacancies, testimonials, newsletters, and document/URL link management. The system is configurable via a module toggle in config/app.php and supports both a dashboard interface and a public-facing website. The architecture follows a standard Laravel MVC pattern with Livewire components handling all interactive UI. Each business domain has its own set of Livewire components (e.g., SaleInvoiceEditor, ProductDisplay) that use a shared ModesTrait for state management. A service layer provides pagination and CRUD logic, though many service methods are incomplete. The frontend uses Bootstrap 4, Font Awesome, and Chart.js for reporting. The system is Dockerized for easy deployment and includes seeders for demo data. While the codebase is functional and covers a wide feature set, it exhibits several quality issues: mixed namespaces (some models under App\, others under App\Models\), hardcoded values (VAT 13%, Nepali month arrays), incomplete features (many TODO comments, empty service methods), and code duplication (multiple similar Livewire components for editing fields). The Nepali calendar support is a distinctive feature but requires manual maintenance of hardcoded date ranges. Overall, Samarium is a solid, feature-rich ERP for its target audience but would benefit from refactoring and stricter coding standards.