ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

IDURAR ERP CRM 功能全景:基于 MERN 技术栈的开源进销存与客户关系管理实践指南

IDURAR ERP CRM 功能全景:基于 MERN 技术栈的开源进销存与客户关系管理实践指南 后端前端企业应用CRM【免费下载链接】idurar-erp-crmFree Open Source ERP CRM Software Accounting Invoicing | Node.Js React项目地址https://gitcode.com/gh_mirrors/id/idurar-erp-crm点击查看免费下载IDURAR 是一款免费开源的 ERP企业资源计划与 CRM客户关系管理软件定位涵盖会计记账、发票开具、报价管理与客户管理其官方功能说明文档features/hr_hr_besplatni_otvoreni_izvor_erp_crm_softver.md从技术选型、用户管理、CRM、销售、采购、库存、财务、项目、报表与集成等多个维度描述了系统能力。本文以该功能文档为骨架结合当前仓库的后端模型、认证中间件、路由与前端页面实现逐项剖析每个功能模块在源码中的落地方式帮助读者在部署前建立对系统能力边界与实现原理的完整认知。技术栈与整体架构功能文档明确指出IDURAR 是基于 MERN Stack 构建的免费开源 ERP CRM 应用Node.js React.js Redux Express.js MongoDB AntDesign (AntD)。这一声明与仓库实际内容完全吻合后端backend/package.json以 Express^4.18.2提供 HTTP 服务Mongoose^8.1.1作为 MongoDB ODM同时引入jsonwebtokenJWT 鉴权、bcryptjs密码哈希、joi请求参数校验、multer文件上传、pug与html-pdf模板渲染与 PDF 生成、express-rate-limit接口限流等依赖前端frontend/package.json采用 React^18.3.1、Redux Toolkit^2.2.1、Ant Design^5.14.1含ant-design/pro-layout专业布局组件、Vite^5.4.8构建路由由react-router-dom管理仓库根目录 README.md 进一步将其概括为 基于高级 MERN 栈Node.js / Express.js / MongoDb / React.js Ant Design (AntD) Redux并明确了核心业务域发票管理Invoice、付款管理Payment、报价管理Quote与客户管理Customer。在部署层面后端入口为src/server.js启动与维护脚本定义在 backend/package.json 的scripts字段中包括start生产启动、devnodemon 热重载、setup初始化设置、reset重置数据等命令具体安装步骤可参照 INSTALLATION-INSTRUCTIONS.md。用户管理认证、授权与账号生命周期功能文档描述了用户管理模块的三项核心能力管理员创建/编辑/删除用户账号、基于角色的权限访问控制、以及保障安全访问的认证与授权机制。仓库中的实现证据分布在认证中间件与核心模型中用户模型 Admin.js 定义了email小写、必填、name、surname、photo、role枚举目前为owner等字段并带enabled与removed软删除/启停标记enabled默认false即账号创建后需显式启用方可登录密码独立存放于AdminPassword模型AdminPassword.js与Admin用户信息分离配合bcryptjs做哈希存储降低密码泄露风险认证能力统一由工厂函数createAuthMiddleware产出createAuthMiddleware/index.js对外暴露五个方法isValidAuthToken令牌校验、login登录、forgetPassword忘记密码、resetPassword重置密码、logout登出以登录流程为例login.js先经joi校验邮箱格式与密码非空再按邮箱查询用户、校验enabled状态最后比对密码哈希完成认证未启用账号会被明确拒绝并提示联系管理员。从源码结构看该模块以用户 密码 会话令牌的三层结构实现文档所述的认证与授权闭环前端对应的登录、注册、重置密码表单位于 frontend/src/forms如LoginForm.jsx、ForgetPasswordForm.jsx、ResetPasswordForm.jsx。CRM 客户关系管理客户档案与联系管理功能文档中 CRM 模块的目标包括创建和管理潜在客户/现有客户联系人、跟踪销售机会、管理客户沟通历史、安排会议并发送提醒。当前仓库的落地核心是Client 客户模型Client.js 定义字段name必填、phone、country、address、email并通过createdBy、assigned两个 ObjectId 引用关联到Admin用户分别记录创建人与归属/负责人这为销售机会的认领与分配提供了数据基础模型启用了mongoose-autopopulate插件查询客户时自动填充关联的管理员信息减少业务代码中的手动populate调用前端客户页面位于 frontend/src/pages/Customer含 config.js 与 index.jsx路由注册在 frontend/src/router/routes.jsx 的/customer路径下提供列表、新建、详情与编辑等 CRUD 交互。销售管理订单、发票、付款与收款跟踪销售管理是文档中篇幅较重的模块创建并管理销售订单并关联客户、跟踪库存可用性、生成发票并集成支付服务、提供监控与报表。仓库中以发票Invoice— 付款Payment— 报价Quote三驾马车实现销售闭环发票模型 Invoice.js 是销售数据的核心载体必填字段包括number发票编号、year、date、expiredDate、client关联客户autopopulate 自动填充、currency金额体系由subTotal小计、taxRate税率、taxTotal税额、total总计、discount折扣与credit信用额度构成items子文档数组按itemName、description、quantity、price、total记录每行商品付款状态由paymentStatus枚举unpaid/paid/partially与isOverdue布尔标志刻画payment数组通过 ObjectId 关联具体付款记录status枚举draft/pending/sent/refunded/cancelled/on hold描述发票流转阶段付款模型 Payment.js 记录client、invoice、date、amount、currency、ref与description每笔付款同时引用客户与发票构成发票应收 → 付款核销的可追踪链路后端路由 appApi.js 为每个业务实体含 invoice、payment、quote、client统一生成create、read/:id、update/:id、delete/:id、search、list、listAll、filter、summary等 RESTful 端点并针对invoice、quote、payment额外挂载mail邮件发送端点——这正是文档所述生成发票与业务通知能力的接口层体现前端销售相关页面集中在 frontend/src/pages/Invoice创建、读取、记录收款、更新与 frontend/src/pages/Payment表单实现位于 frontend/src/modules/InvoiceModule 与 frontend/src/modules/PaymentModule。需要说明的是文档中提到的与第三方支付服务集成在当前仓库中未发现对应的支付网关 SDK 实现属于功能文档描绘的能力愿景读者应以仓库实际提供的发票—付款核销能力为准。采购管理采购订单、供应商与入库文档描述的采购模块包括创建采购订单并指定数量与商品、维护供应商信息与关系、收货后更新库存、管理采购发票与供应商付款。需要指出的是当前仓库的核心业务模型集中在客户、发票、报价与付款见 README.md 的 Features 清单并未包含独立的采购订单Purchase Order与供应商Supplier模型文件。从源码结构可以推断该模块在当前版本中属于文档定义的能力框架尚未以独立模型落地。若需在现有架构上扩展采购能力可参照appApi.js的统一路由模式与createCRUDControllercreateCRUDController的通用 CRUD 工厂新增PurchaseOrder、Supplier等模型后即可快速获得成套的增删改查与分页接口。库存管理库存追踪、低库存预警与条码文档中的库存管理能力包括库存水平跟踪与调整、低库存自动通知与补货采购单生成、条码扫描支持、商品分类/属性/定价管理。与采购模块类似当前仓库并未提供独立的 Product/Inventory 模型库存相关能力尚未以独立业务模块出现。不过仓库中存在可供扩展的基础设施backend/src/middlewares/inventory/generateUniqueNumber.jsgenerateUniqueNumber.js提供了编号生成中间件可用于发票号、订单号等业务编号的自动递增设置系统settings支持以settingKey为中心的键值配置读写可承载低库存阈值等业务参数的配置化。文档中的库存功能应视为规划中的能力域实际使用请以仓库当前发布模块为准。财务管理总账、应收应付与财务报表文档要求财务模块具备总账记录、应收/应付管理含发票开具与付款跟踪、财务报表资产负债表、损益表生成以及会计软件集成。仓库中的落地证据集中在应收Accounts Receivable一侧发票模型Invoice.js的paymentStatus、credit、discount、isOverdue字段配合付款模型Payment.js的amount、invoice关联共同支撑开票 → 部分收款 → 结清/逾期的应收跟踪摘要统计能力由控制器提供invoiceController/summary.js与paymentController/summary.js见 backend/src/controllers/appControllers对外暴露summary接口前端对应 frontend/src/modules/DashboardModule 的SummaryCard.jsx与RecentTable构成文档所述监控与报表的基础形态金额与日期处理统一收敛在后端 settings/useMoney.js 与 settings/useDate.js、前端 frontend/src/settings/useMoney.jsx 与 useDate.jsx货币格式与日期格式由MoneyFormatSettings、FinanceSettings等设置模块驱动前端页面见 frontend/src/pages/Settings/FinanceSettings.jsx。总账General Ledger、应付AP与完整财务报表资产负债表、损益表在当前仓库中没有对应模型或接口文件属于功能文档定义的能力范围真实可用的财务能力以发票—付款的应收闭环与设置化金额格式为主。项目管理任务、进度与协作文档中项目管理模块的能力包括项目创建与跟踪、任务分配与截止日期、资源分配与成本跟踪、文档共享与实时沟通等协作功能。当前仓库并未包含 Project/Task 模型或对应页面该模块属于文档定义而未落地实现的能力域。从工程角度看若要在本仓库扩展项目管理可复用 createCRUDController 工厂与 appApi.js 的统一路由注册机制——新增实体仅需在routesList中登记entity与controllerName即可自动获得全套 CRUD 端点前端侧 CrudModule 提供了基于配置的通用业务模块骨架。报表与分析摘要统计、看板与数据可视化报表与分析模块在文档中强调多维度业务报表、可定制 KPI 看板、自定义报表与数据可视化。仓库中该能力的实现集中在摘要Summary与看板Dashboard两层后端为每个业务实体自动注册/${entity}/summary路由appApi.js控制器分别实现发票摘要invoiceController/summary.js、付款摘要paymentController/summary.js与客户摘要clientController/summary.js返回聚合统计结果前端看板由 DashboardModule 组装SummaryCard.jsx渲染指标卡片、PreviewCard.jsx与CustomerPreviewCard.jsx展示汇总预览、RecentTable呈现最近业务记录路由注册于/与/dashboard设置模块SettingModule以GeneralSettings、CompanySettings、FinanceSettings、MoneyFormatSettings等分组管理业务参数设置后端读写由 settingController 提供listAll、listBySettingKey、readBySettingKey、updateBySettingKey、updateManySetting等接口构成文档所述定制化看板/报表的配置基础。集成与定制设置系统、API 与邮件文档要求支持第三方应用/API 集成、功能与外观定制、以及对外提供 API 或 Webhook 进行数据交换。仓库中的实现证据包括设置系统Setting模型Setting.js采用settingCategory settingKey settingValue valueType isPrivate isCoreSetting的键值结构settingValue为 Mixed 类型可存任意 JSON初始化数据由 backend/src/setup/defaultSettings 目录下的 JSON 文件提供如appSettings.json、companySettings.json、invoiceSettings.json、financeSettings.json等安装期配置键定义于 setupConfig.json包含DATABASE、JWT_SECRET、idurar_app_version、idurar_load_demo_data、idurar_maintenance_mode等初始化项——这对应文档根据特定业务需求定制功能与外观的基础设施邮件能力发票、付款、报价实体均注册/${entity}/mail路由appApi.js后端邮件发送控制器位于 invoiceController/sendMail.js、paymentController/sendMail.js邮件模板渲染在 backend/src/emailTemplate 与 backend/src/pdfPug 模板含Invoice.pug、Quote.pug、Offer.pug、Payment.pugPDF 下载由 downloadPdf.js 处理API 边界公开路由、认证路由与下载路由分别定义于 backend/src/routes/coreRoutescoreApi.js、coreAuth.js、coreDownloadRouter.js、corePublicRouter.js体现内部 API / 公开 API的层次划分为后续第三方集成预留了清晰的接口边界。易用界面Ant Design 与响应式布局文档要求基于 React.js 与 Ant Design 构建直观、响应式、用户友好的界面并提供简洁导航、搜索与筛选功能且在不同设备与屏幕尺寸下保持一致体验。仓库中的对应实现包括前端使用 Ant Design^5.14.1与ant-design/pro-layoutfrontend/package.json布局体系位于 frontend/src/layoutAuthLayout、CrudLayout、DashboardLayout、DefaultLayout、ErpLayout、ProfileLayout、SettingsLayout导航容器 NavigationContainer.jsx 与页头 HeaderContainer.jsx 提供菜单与页头框架搜索与筛选能力由通用组件承载SearchItem、SelectAsync、AutoCompleteAsync、MultiStepSelectAsync、DataTable、Tag等组件位于 frontend/src/components其中 DataTable.jsx 提供表格分页与筛选TabsContent支持多标签页信息组织响应式适配由 useResponsive.jsx 钩子驱动样式体系auth.css、erp.css、layout.css、navigation.css、customAntd.css等集中在 frontend/src/style/partials。本地部署与初始化流程功能文档虽未展开安装步骤但仓库 INSTALLATION-INSTRUCTIONS.md 提供了完整流程与本文所述模块直接相关简述如下克隆仓库并在backend目录配置.env将DATABASE替换为真实 MongoDB URI进入backend执行npm install随后运行npm run setup执行初始化写入 setupConfig.json 中的默认配置键运行npm run dev启动后端默认监听 Express 服务另开终端进入frontendnpm install后npm run dev启动前端浏览器访问localhost:3000若前端启动遇到 OpenSSL 报错Node.js 17 兼容问题可升级至 Node.js v20 或设置NODE_OPTIONS--openssl-legacy-provider后重试。仓库后端版本声明于 backend/package.json版本号 4.1.0要求 Node20.9.0、npm10.2.4前端版本同步为 4.1.0部署时建议对齐上述运行时版本。能力边界小结综合功能文档与仓库源码可将 IDURAR 当前实现能力归纳如下功能域文档定义仓库落地情况关键证据技术栈完整落地MERN AntD Redux见 backend/package.json、frontend/package.json用户管理完整落地Admin/AdminPassword 模型 认证中间件createAuthMiddlewareCRM 客户管理完整落地Client.js Customer 页面销售管理完整落地Invoice/Payment/Quote 模型与 CRUD 路由appApi.js财务管理部分落地应收闭环Invoice 的paymentStatus/credit Payment 模型报表分析基础落地summary路由 DashboardModule集成定制基础设施就绪Setting 模型、设置控制器、邮件与 PDF 通道采购 / 库存 / 项目管理文档定义仓库未见独立模型可参照 CRUD 工厂扩展对于文档中定义但尚未以独立模型落地的能力域采购、库存、项目、总账与应付读者应将其理解为系统的能力规划框架并基于仓库提供的统一路由、通用 CRUD 控制器与设置系统按需扩展避免产生当前版本已内置完整采购/项目模块的误判。赞分享后端前端企业应用CRM【免费下载链接】idurar-erp-crmFree Open Source ERP CRM Software Accounting Invoicing | Node.Js React项目地址https://gitcode.com/gh_mirrors/id/idurar-erp-crm点击查看免费下载相关推荐RadonDB云原生MySQL数据库从零开始构建无限扩展的分布式系统RadonDB云原生MySQL数据库从零开始构建无限扩展的分布式系统 RadonDB是一款开源的云原生MySQL数据库专为构建全球化、可扩展的云服务而设计。后端前端企业应用CRM深入解析Idurar开源ERP/CRM系统基于MERN技术栈的企业管理解决方案深入解析Idurar开源ERP/CRM系统基于MERN技术栈的企业管理解决方案 项目概述 Idurar是一款基于公平代码 Fair Code 原则的开源E后端前端企业应用CRM如何在5分钟内开始使用BERT uncased L-12 H-256 A-4模型进行文本预测如何在5分钟内开始使用BERT uncased L 12 H 256 A 4模型进行文本预测 BERT uncased L 12 H 256 A 4是一款轻量级上一篇告别仓库混乱Ungit忽略规则让文件管理效率提升80%下一篇CANN/driver获取AI CPU信息API创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表