didi-website-erp-crm/erp_crm
2026-07-28 14:49:10 +03:00
..
bin livrare website cu erp si crm 2026-07-28 14:49:10 +03:00
didi_custom livrare website cu erp si crm 2026-07-28 14:49:10 +03:00
mariadb-init livrare website cu erp si crm 2026-07-28 14:49:10 +03:00
scripts livrare website cu erp si crm 2026-07-28 14:49:10 +03:00
.env.example livrare website cu erp si crm 2026-07-28 14:49:10 +03:00
.gitignore livrare website cu erp si crm 2026-07-28 14:49:10 +03:00
.gitlab-ci.yml livrare website cu erp si crm 2026-07-28 14:49:10 +03:00
build-from-zero.sh livrare website cu erp si crm 2026-07-28 14:49:10 +03:00
CONFIGURATION.md livrare website cu erp si crm 2026-07-28 14:49:10 +03:00
docker-compose.yml livrare website cu erp si crm 2026-07-28 14:49:10 +03:00
INSTALL.md livrare website cu erp si crm 2026-07-28 14:49:10 +03:00
nginx.conf livrare website cu erp si crm 2026-07-28 14:49:10 +03:00
OPERATIONS.md livrare website cu erp si crm 2026-07-28 14:49:10 +03:00
README.md livrare website cu erp si crm 2026-07-28 14:49:10 +03:00
seed-data.sh livrare website cu erp si crm 2026-07-28 14:49:10 +03:00
test-scenarii-integrare.sh livrare website cu erp si crm 2026-07-28 14:49:10 +03:00

DiDi ERP/CRM

Componenta ERP si CRM a platformei DiDi, construita pe ERPNext v15 (Frappe Framework). Gestioneaza facturarea, contabilitatea, clientii, lead-urile si continutul CMS al website-ului public.

Cuprins


Arhitectura

+--------------------+      +-----------+      +----------+
|  Website Next.js   | <--> | ERPNext   | ---> | MariaDB  |
|  (clienti, plati)  | API  | (gunicorn)|      | (date)   |
+--------------------+      +-----+-----+      +----------+
                                  |
                          +-------+--------+
                          |   Redis cache  |
                          |   Redis queue  |
                          +----------------+
                                  |
                          +-------+--------+
                          |  3 workeri     |
                          |  (short/long/  |
                          |   default)     |
                          |  + scheduler   |
                          +----------------+

7 containere:

  • didi-erpnext (web API + nginx)
  • didi-mariadb (baza de date)
  • didi-redis-cache, didi-redis-queue
  • didi-queue-short, didi-queue-long, didi-queue-default (background jobs)
  • didi-scheduler (cron jobs)

Stack tehnic

Componenta Versiune
ERPNext v15
Frappe Framework v15
MariaDB 10.11
Redis 7-alpine
Python 3.11 (in container)
Domeniu Services
Limba Romana
Plan conturi Romania - Chart of Accounts (OMFP 1802/2014)
TVA 21% (cota standard RO de la 01.08.2025)
Moneda RON

Structura folder

erp_crm/
├── README.md                     # Acest fisier
├── INSTALL.md                    # Ghid de instalare de la 0
├── OPERATIONS.md                 # Ghid operare (backup, restart, troubleshooting)
├── CONFIGURATION.md              # Variabile mediu, credentiale, integrari
├── docker-compose.yml            # Stack Docker complet
├── .env                          # Configurare credentiale (NU se commiteaza)
├── nginx.conf                    # Reverse proxy intern container
├── bin/
│   ├── entrypoint.sh             # ERPNext startup
│   ├── start-bench-service.sh    # Worker startup
│   └── setup-site.sh             # Initial site setup (one-time)
├── didi_custom/                  # App custom DiDi (Frappe)
│   ├── didi_custom/
│   │   ├── hooks.py              # Frappe hooks
│   │   ├── doctype/              # 4 DocType-uri custom:
│   │   │   ├── analysis_report/  #   - rezultate analize cu PDF
│   │   │   ├── payment_log/      #   - log evenimente Stripe
│   │   │   ├── service_agreement/#   - acorduri servicii
│   │   │   └── website_content/  #   - CMS pagini website
│   │   └── ...
│   └── pyproject.toml
├── mariadb-init/                 # Init scripts MariaDB
│   └── init.sql
├── scripts/
│   ├── setup/                    # Scripturi setup (numerotate, idempotente)
│   │   ├── 01-config.py          # Company, taxe, naming series
│   │   ├── 02-doctypes.py        # Custom fields pe Customer/Lead/Sales Invoice
│   │   ├── 03-cleanup.py         # Ascunde module standard ERPNext
│   │   ├── 04-populate-content.py# Continut CMS implicit (RO + EN)
│   │   ├── 05-translations.py    # Traduceri suplimentare
│   │   ├── 06-sidebar.py         # Workspaces custom (Facturi, Clienti, etc.)
│   │   ├── 07-reports.py         # Rapoarte DiDi (Dashboard Financiar, CRM)
│   │   ├── 08-email.py           # Email Account SendGrid + notificari
│   │   └── 09-phase2-final.py    # Finalizari (suppliers, hidden fields)
│   └── archive/                  # Scripturi vechi/one-off (referinta)
└── docs/
    └── oferta/                   # Caietul de sarcini + propunerea tehnica

Quickstart

Cere docker si docker compose v2 instalate. Si o retea Docker numita didi-network:

docker network create didi-network 2>/dev/null || true

Build complet de la 0 (~5 minute):

cd ~/erp_crm
bash build-from-zero.sh

Dupa ce termina, deschide http://localhost:8080 si te loghezi cu Administrator / admin.

Pentru detalii, vezi INSTALL.md.

Configurare

Editezi .env pentru a schimba credentiale, parole, porturi:

MYSQL_ROOT_PASSWORD=<parola-root-db>
ADMIN_PASSWORD=admin
ERPNEXT_PORT=8080
SITE_NAME=didi-erp

Detalii complete in CONFIGURATION.md.

Documentatie detaliata

Document Scop
INSTALL.md Build de la 0, dependinte, prima rulare
OPERATIONS.md Backup, restart, log-uri, troubleshooting
CONFIGURATION.md Env vars, credentiale, integrari externe
docs/oferta/ Caietul de sarcini si propunerea tehnica

Credentiale implicite (DE SCHIMBAT la productie)

Cui Valoare
ERPNext Administrator Administrator / admin
MariaDB root <parola-root-db>
Site name (intern) didi-erp

Suport

Pentru intrebari tehnice: office@clossers.com