Home
Softono
BambooErp

BambooErp

Open source MIT C#
59
Stars
34
Forks
0
Issues
6
Watchers
1 month
Last Commit
ERP

About BambooErp

Bamboo ERP is an open-source Enterprise Resource Planning system developed in C using the ABP Framework and Domain-Driven Design. It serves as a structural port of Odoo to the .NET ecosystem, aiming to replicate Odoo's core business logic and modules. Key features include microservices architecture, support for over 500 converted entities, and a generalized API that allows Odoo-style method calls via JSON-RPC. The system utilizes Universal Unique Identifiers for all records and maps Odoo concepts to modern ABP components like Tenants and IdentityUsers. It includes built-in scripts to facilitate data migration from Odoo 18 to 19. Currently, the solution provides foundational CRUD operations and skeleton implementations for modules such as Accounting and Human Resources, with full business logic and UI generation still in development. Deployment is primarily managed through Docker Compose, with options for manual execution via Visual Studio. The project is open for community contributions and includes dedicated

Platforms

Web Self-hosted Windows

Languages

C#

Links

Bamboo ERP

Bamboo is a porting of Odoo ERP to C# using ABP Framework.

Features

  • ABP version v10.0

  • Microservices.

  • Scripts and config to migrate data from odoo to bamboo.

  • Odoo 18-19 porting:

    • Entities: > 500 entities converted from Odoo database, with near full modules.
    • Id fields: Converted from int to uui PostgreSQL data type (all.)
    • ResCompany: mapped to Tenant
    • ResUser: mapped to IdentityUser
  • Use same model objects for entities and dtos. All models/entities were placed in folder Bamboo.Core.Domain.Shared/Models

  • Basic Generic API

  • JsonRpc

Generic API and JsonRpc

Generic APIs allow call Odoo-style APIs.

Mô tả ảnh

Generic API in action

Generic API

Skeleton APIs

Skeleton API export only entries without implement bussiness logic.

Base

Accounting

Human Resources

No more support

All these features will be replace with Generic API:

  • Full CRUD for every models.
  • AppContracts / AppServices / AppControllers / AppClientProxies for every models. Auto generated by internal CodeGen.

Migration Guide

I create a migration guide in docs/migrate-odoo-uuid.md

How to run

Docker compose

  • Build
dotnet ef migrations add Initial --startup-project services/core/host/Bamboo.Core.HttpApi.Host/Bamboo.Core.HttpApi.Host.csproj --project services/core/src/Bamboo.Core.EntityFrameworkCore/Bamboo.Core.EntityFrameworkCore.csproj --context CoreDbContext

./script/build.sh

This will build all relate project to bin directory.

  • Update config files and environments
vi .env
  • Run
docker compose up -d
  • Create databases
./scripts/db-create-admin-db.sh
./scripts/db-create-core-db.sh
  • Init admin database
docker exec -it bamboo-admin dotnet /app/Bamboo.Admin.DbMigrator.dll
  • Init core database
docker exec -it bamboo-core dotnet /app/Bamboo.Core.DbMigrator.dll
  • Migrate data from odoo-18 to bamboo
./scripts/pgloader/run-data-odoo18.sh

Run with VS Studio

  1. Open Bamboo.Admin.sln then build and run Bamboo.Admin.HttpApi.Host for login / account management
  2. Open Bamboo.Core.sln then build and run Bamboo.Core.HttpApi.Host for CRUD services
  3. Open Bamboo.Web.MVC.sln for UI

TODO - Working in progress

  • UI Generation from odoo xml/database
  • Report Generation from odoo xml/database
  • Bussiness Logic.
  • Localization
  • Web UI App (MVC or Blazor / Angular)
  • Mobile App

Contribute

Please fork, create your own branch, update code then make pull request.

Thanks.

Other

Please free to contact me at [email protected] if you can help.