| .. | ||
| bin | ||
| didi_custom | ||
| mariadb-init | ||
| scripts | ||
| .env.example | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| build-from-zero.sh | ||
| CONFIGURATION.md | ||
| docker-compose.yml | ||
| INSTALL.md | ||
| nginx.conf | ||
| OPERATIONS.md | ||
| README.md | ||
| seed-data.sh | ||
| test-scenarii-integrare.sh | ||
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-queuedidi-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