Inspiration

Many small and medium-sized businesses still rely on spreadsheets, disconnected software, or expensive enterprise systems to manage purchasing, sales, inventory, finance, and production.

GuanYijia ERP, formerly known as HuaXia ERP or jshERP, was created to provide businesses with a practical, open-source, and affordable ERP solution. The project aims to reduce the cost of digital transformation while giving developers a reusable foundation for building customized enterprise management systems.

The project is also intended to help Java beginners learn from a complete real-world application instead of isolated examples.

What it does

GuanYijia ERP is an open-source enterprise resource planning system designed for small and medium-sized businesses.

Its main modules include:

  • Purchasing management
  • Sales management
  • Retail management
  • Inventory and warehouse management
  • Financial management
  • Production management
  • Product and customer information management
  • Business reports and data queries
  • User, role, permission, and tenant management

The system supports multi-tenant deployment and can be used by shops, wholesalers, factories, and other businesses that need to manage inventory and financial operations.

It also supports 73 interface languages, allowing users to switch languages through the system settings.

How we built it

The backend is built with Java and Spring Boot, while MyBatis is used for database persistence and MySQL stores the business data.

Redis is used for caching and related runtime data, and Nginx is used as a reverse proxy in the production environment.

The frontend is built with Vue and Ant Design Vue, providing a responsive administrative interface for managing business operations.

The main technology stack includes:

  • Spring Boot 2.0
  • MyBatis
  • MySQL 8
  • Redis 6
  • Vue 2.7
  • Ant Design Vue
  • Jeecg-Boot
  • Maven
  • Nginx

The system follows a modular architecture. Business functions such as purchasing, sales, inventory, finance, and system administration are separated into different modules while sharing common authentication, permission, data, and tenant-management capabilities.

Challenges we ran into

One of the main challenges was modeling real business processes correctly. Purchasing, sales, inventory, and finance are closely connected, so a change in one module may affect stock quantities, account balances, and business reports.

Maintaining data consistency was therefore especially important. Operations such as completing an order, returning goods, modifying a document, or deleting a transaction needed to update all related records correctly.

Another challenge was supporting different business scenarios. Retail stores, wholesalers, and factories may use similar ERP functions, but their workflows and reporting requirements can be very different.

We also needed to maintain compatibility across the frontend, backend, database, Redis, Maven, and JDK environments. Differences between dependency versions could cause build or deployment problems, so the development environment had to be carefully standardized.

Internationalization introduced another layer of complexity because interface text, menus, forms, and business terminology needed to remain understandable across many languages.

Accomplishments that we're proud of

We are proud to have built a complete and practical ERP foundation rather than a simple demonstration project.

Some of the project's key accomplishments include:

  • Connecting purchasing, sales, inventory, finance, and production workflows
  • Supporting multi-tenant business deployments
  • Implementing role-based access control
  • Providing business reports and operational data queries
  • Supporting both Windows and Linux server environments
  • Supporting 73 interface languages
  • Providing documentation for APIs, deployment, and system usage
  • Releasing the project under the Apache 2.0 open-source license

The system can be used directly by businesses or extended by developers for customized ERP projects.

What we learned

Building an ERP system taught us that enterprise software is not only about creating pages and database tables. The most important part is understanding the relationships between business processes.

We gained a deeper understanding of:

  • Inventory transaction design
  • Financial and business data consistency
  • Multi-tenant architecture
  • Role and permission management
  • Frontend and backend integration
  • Database transaction handling
  • Deployment and environment configuration
  • Internationalization
  • Long-term maintenance of an open-source project

We also learned that clear documentation and predictable system behavior are essential for enterprise users and secondary developers.

What's next for GuanYijia ERP

The current system already covers inventory, purchasing, sales, finance, retail, and production management, but the long-term goal is to expand it into a more complete ERP platform.

Future development may include:

  • More advanced production and manufacturing features
  • Customer relationship management
  • Supplier relationship management
  • Human resources management
  • More detailed financial accounting capabilities
  • Workflow and approval management
  • Additional analytics and reporting tools
  • Improved mobile support
  • More external API integrations
  • Further improvements to performance, security, and usability

We hope GuanYijia ERP can continue to help businesses reduce their information-management costs while providing developers with a reliable open-source ERP platform.

Built With

Share this project:

Updates

Submission history