查看原文
科技

这 6 个GitHub开源项目,几乎覆盖了所有企业开发场景!

程序员Sunday 程序员Sunday
2024-08-29

前端训练营:1v1私教,终身辅导计划,帮你拿到满意的 offer 已帮助数百位同学拿到了中大厂 offer

Hello,大家好,我是 Sunday。

今天为大家介绍 6 个 GitHub 的开源项目,涉及到:商务引擎、跨端开发、CMS、低代码、SaaS、BaaS 等

01:medusa

GitHub 地址:https://github.com/medusajs/medusa

Medusa 是一个基于 Node 的开源的电商引擎,可以帮助开发者快速构建可扩展的、可定制的电商平台。它的设计目标是提供一种 轻量级的 替代方案,帮助开发者避开传统电商平台的复杂性,同时还能实现灵活的定制。

它支持常见的电商功能,如:商品管理、订单管理、库存管理、用户管理等。并且可以轻松地与现有前端框架(如 React、Vue.js)集成。

应用场景

Medusa 比较适合以下场景的项目开发:

  1. 小型或初创电商平台:对于那些需要快速上线且预算有限的项目,Medusa 提供了一个非常合适的基础框架。
  2. 定制化需求较强的项目:如果你的电商平台需要高度定制的功能或工作流程,Medusa 的灵活架构可以帮助你实现。
  3. 与现有系统集成:Medusa 可以作为一个独立的后端服务,与现有的 CRM、ERP 或前端系统集成,增强电商功能。

使用示例

  1. 安装 Medusa CLI
npm install -g @medusajs/medusa-cli
  1. 创建一个新项目
medusa new my-medusa-store
cd my-medusa-store
  1. 启动开发服务器
medusa develop
  1. 创建一个新商品
curl -X POST http://localhost:9000/admin/products \
-H "Authorization: Bearer <your-token>" \
-H "Content-Type: application/json" \
-d '{
 "title": "New Product",
 "description": "A new product description",
 "price": 1000,
 "variants": [
   {
     "title": "Variant 1",
     "price": 1000
   }
 ]
}'

  1. 配置前端展示

Medusa 通常与一个前端框架(如 Next.js 或 Gatsby.js)结合使用,可以通过 Medusa 的 API 获取商品数据并进行展示。

02:tauri

GitHub 地址:https://github.com/tauri-apps/tauri

Tauri 是一个开源框架,用于构建 跨平台的桌面应用程序。它能够使用 Web 技术(如 HTML、CSS、JavaScript)开发所有主流桌面操作系统的应用,同时利用 Rust 语言实现高性能的后端逻辑。Tauri 的设计目标是提供一个轻量级、高效且安全的解决方案,适合构建体积小、启动速度快的桌面应用。

作用

Tauri 的作用在于:

  1. 构建轻量级桌面应用:与传统的 Electron 等框架相比,Tauri 构建的应用程序体积更小,资源占用更少。
  2. 利用 Web 技术:开发者可以使用熟悉的前端技术栈(如 React、Vue.js)开发应用界面,同时利用 Rust 实现后端逻辑。
  3. 跨平台支持:Tauri 支持 Windows、macOS 和 Linux,开发者只需编写一次代码即可在多个平台上运行应用。
  4. 提升安全性:Tauri 默认启用沙盒机制,并通过限制 JavaScript 与系统 API 的交互来增强应用的安全性。

应用场景

  1. 小型到中型桌面应用:适用于那些不需要太多系统资源且希望应用体积较小的项目,例如笔记应用、任务管理工具、数据可视化工具等。
  2. Web 应用的桌面版本:如果你已经有一个基于 Web 的应用,可以使用 Tauri 将其打包为桌面应用。
  3. 对性能和资源占用有较高要求的应用:对于需要在低性能设备上运行或资源占用需要严格控制的应用,Tauri 是一个很好的选择。

注意事项及隐藏坑

  1. Rust 语言学习曲线:尽管 Tauri 可以使用 JavaScript 进行大部分开发,但某些情况下需要使用 Rust 编写插件或后端逻辑,这对不熟悉 Rust 的开发者来说有一定的学习曲线。
  2. Webview 的局限性:Tauri 使用系统自带的 Webview 渲染前端界面,不同操作系统的 Webview 功能可能有所差异,这可能会导致跨平台一致性问题。
  3. 社区生态:相较于 Electron,Tauri 的生态目前可能少有不足。

使用示例

可以直接查看官方提供的 快速开始(https://tauri.app/zh-cn/v1/guides/getting-started/setup/) 模块

03:Directus

GitHub 地址:https://github.com/directus/directus

Directus 是一个开源的无头内容管理系统(Headless CMS),用于管理基于 SQL 数据库的内容。与传统 CMS 不同,Directus 允许开发者将现有数据库与其结合,提供一个高度可定制的管理接口,同时保留对数据库结构和数据的完全控制。

作用

  1. 无头 CMS:Directus 允许开发者通过 API 访问和管理内容,使得内容可以在不同的前端应用中使用,如网站、移动应用和其他数字产品。
  2. 数据库管理:Directus 直接与 SQL 数据库交互,支持 MySQL、PostgreSQL、SQLite 等,提供直观的管理界面,允许用户定义数据库结构、管理数据和创建 API。
  3. 用户管理和权限控制:提供灵活的用户角色和权限管理,适合多用户协作场景。
  4. 扩展性和自定义:Directus 支持通过扩展、自定义接口、Hooks 和 Webhooks 等方式定制 CMS 的功能。

应用场景

  1. 内容驱动的多平台应用:适用于需要管理和分发内容到多个平台的应用,如企业网站、移动应用、数字看板等。
  2. 复杂数据管理:当项目需要一个直观的界面来管理复杂数据结构时,Directus 提供了一个用户友好的解决方案,适合非技术用户参与数据管理。
  3. 现有数据库的 CMS 层:对于已经存在的数据库,可以使用 Directus 添加一个 CMS 层,而不需要重新构建数据库结构或迁移数据。
  4. 快速原型开发:Directus 可以作为一个快速开发后台管理系统的工具,帮助开发者快速构建并迭代内容管理部分。

使用示例

  1. 安装 Directus你可以通过 Docker 或直接使用 npm 安装 Directus:
npx create-directus-project my-project
cd my-project
  1. 配置数据库directus 项目目录中配置你的 SQL 数据库连接信息:
directus database migrate
directus start
  1. 启动 Directus运行以下命令启动 Directus 实例:
npx directus start

这将启动一个 Web 界面,供你访问并管理数据库内容。

  1. 创建内容模型在 Directus 管理界面中,可以通过创建集合(Collections)来定义内容模型。每个集合对应数据库中的一张表,可以通过 Directus 的 UI 界面轻松添加字段和设置权限。

  2. 访问 APIDirectus 自动为每个集合生成 RESTful API 和 GraphQL API,你可以通过这些 API 访问和管理内容。示例:

    curl -X GET http://localhost:8055/items/my-collection

04:budibase

GitHub 地址:https://github.com/Budibase/budibase

Budibase 是一个开源的低代码平台,可以帮助开发者和非技术用户快速构建自定义的业务应用程序

作用

  1. 快速构建内部工具:Budibase 允许用户通过拖放组件和配置数据源,快速构建内部管理工具、仪表板、CRUD 应用等。
  2. 自定义应用:用户可以使用 JavaScript 和自定义代码来扩展应用功能,满足特定业务需求。
  3. 集成多种数据源:支持集成各种数据源,包括 SQL 数据库、REST API、Airtable、Google Sheets 等,使得数据管理更加灵活。
  4. 自动化流程:Budibase 允许设置自动化工作流,例如基于特定事件触发的通知、数据更新或与其他服务的集成。

应用场景

  1. 企业内部工具:适用于需要快速开发和迭代的内部业务工具,如项目管理系统、客户关系管理(CRM)、库存管理等。
  2. 数据驱动的应用:通过集成多种数据源,Budibase 非常适合构建数据驱动的应用程序,如数据分析仪表板、实时监控工具等。
  3. 原型设计和验证:对于需要快速验证概念或设计原型的场景,Budibase 提供了一个高效的环境来实现和测试业务逻辑。
  4. 中小型企业的业务自动化:Budibase 可以帮助中小型企业通过构建定制的应用程序来实现业务自动化,提高运营效率。

使用示例

  1. 安装 Budibase你可以通过 Docker 快速启动 Budibase:
docker run --rm -p 80:80 budibase/budibase
  1. 创建应用启动 Budibase 后,访问本地服务器,并通过 Budibase 的图形用户界面(GUI)创建一个新的应用。你可以从模板开始,或者从头开始构建。

  2. 配置数据源在应用中添加一个数据源,比如连接到一个 PostgreSQL 数据库或导入一个 CSV 文件。你可以通过 Budibase 的数据管理工具来配置数据表和关系。

  3. 设计界面使用 Budibase 的拖放界面设计器,创建应用的用户界面。你可以添加表单、按钮、图表等组件,并配置它们的数据绑定和交互行为。

  4. 设置自动化流程为应用配置自动化流程,例如在数据更新时发送通知,或者根据用户操作触发某些事件。

  5. 发布应用完成设计和配置后,可以直接将应用发布到生产环境,供用户使用。Budibase 提供了多种发布选项,包括自托管和云端托管。

05:redwoodjs

GitHub 地址:https://github.com/redwoodjs/redwood

RedwoodJS 是一个全栈的 JavaScript/TypeScript 框架,其作用是帮助开发者高效地构建现代化的 Web 应用。

它将前端、后端和数据库集成在一起,并使用一种“JAMstack”架构(JavaScript、API 和 Markup)来构建可扩展的应用程序。

作用

  1. 全栈开发框架:RedwoodJS 提供了一整套工具和最佳实践,帮助开发者构建从前端到后端再到数据库的完整应用程序。它包括 React 作为前端框架、GraphQL 作为 API 层,以及 Prisma 作为数据库 ORM 工具。
  2. 自动化代码生成:RedwoodJS 提供了丰富的 CLI 工具,可以自动生成大量常见的代码,如页面、表单、模型等,大大提高了开发效率。
  3. 集成 DevOps:框架内置了对 CI/CD 的支持,并与多种部署平台(如 Netlify、Vercel)无缝集成,简化了应用的发布和运维。
  4. 优化开发者体验:通过约定优于配置的理念,RedwoodJS 减少了配置和重复代码的工作量,帮助开发者专注于业务逻辑的实现。

应用场景

  1. SaaS 产品:RedwoodJS 非常适合用于构建软件即服务(SaaS)产品,特别是在需要快速迭代和高效开发的场景下。
  2. 数据驱动的应用:利用 GraphQL 和 Prisma,RedwoodJS 可以轻松处理复杂的数据库交互,适合构建数据密集型的应用,如分析工具、仪表板等。
  3. 企业内部应用:RedwoodJS 的全栈特性使其非常适合构建需要跨多个系统集成的企业内部工具,如 CRM、ERP 系统。
  4. 创业项目和 MVP:对于初创公司或需要快速验证概念的项目,RedwoodJS 提供了快速开发的能力,使得在短时间内构建一个功能完整的产品成为可能。

使用示例

以下是如何使用 RedwoodJS 创建一个基本应用的步骤:

  1. 安装 RedwoodJS CLI使用 npm 安装 RedwoodJS CLI 工具:
npm install -g @redwoodjs/cli
  1. 创建 RedwoodJS 项目使用 CLI 创建一个新项目:
redwood new my-redwood-app
cd my-redwood-app
  1. 启动开发服务器RedwoodJS 提供了一个内置的开发服务器,运行以下命令即可启动:
yarn rw dev
  1. 生成页面和服务使用 CLI 自动生成页面、布局和服务。例如,创建一个新页面和 GraphQL 服务:
yarn rw g page home /
yarn rw g service todos
  1. 定义数据模型api/prisma/schema.prisma 中定义数据模型,然后运行迁移以更新数据库:
yarn rw prisma migrate dev
  1. 创建和查询数据使用 RedwoodJS 内置的 GraphQL API 处理数据的创建和查询。你可以在 React 组件中通过 GraphQL 请求来展示和操作数据。

  2. 部署应用RedwoodJS 支持在 Netlify、Vercel 等平台上进行快速部署:

yarn rw setup deploy netlify
yarn rw deploy

06:Appwrite

GitHub 地址:https://github.com/appwrite/appwrite

Appwrite 是一个开源的后端即服务(Backend-as-a-Service,BaaS) 平台,可以快速构建现代 Web 和移动应用。

作用

  1. 后端服务:Appwrite 提供了用户认证、数据库管理、文件存储、实时数据、云函数等功能,让开发者无需构建和维护复杂的后端服务。
  2. 跨平台支持:Appwrite 支持多种平台,包括 Web、iOS、Android 和 Flutter 等,可以帮助开发者快速构建跨平台应用。
  3. 安全和权限管理:内置了强大的安全和权限控制机制,支持用户身份验证、角色管理、OAuth 2.0 等功能,确保应用数据的安全性。
  4. API 驱动开发:Appwrite 提供 REST 和 GraphQL API,使开发者能够轻松地集成和扩展应用的功能。

应用场景

  1. 快速原型开发:Appwrite 非常适合用于快速构建应用原型,开发者可以借助其提供的后端服务快速搭建 MVP 产品。
  2. 移动应用开发:通过支持多种平台,Appwrite 可以帮助开发者同时为 iOS 和 Android 构建后端服务,减少重复劳动。
  3. 现代 Web 应用:利用 Appwrite 的 API,开发者可以轻松构建现代 Web 应用,并支持实时数据更新和复杂的权限控制。
  4. 开发者工具:Appwrite 也可以用于开发者构建自己的工具和服务,支持快速部署和扩展。

使用示例

以下是如何使用 Appwrite 构建一个简单应用的步骤:

  1. 安装 Appwrite首先,你需要在 Docker 上安装并运行 Appwrite:
docker run -d --name appwrite -p 80:80 -e _APP_ENV=production -v /var/run/docker.sock:/var/run/docker.sock appwrite/appwrite
  1. 访问控制台启动后,访问 http://localhost 进入 Appwrite 的管理控制台,在这里你可以创建项目、管理数据库、配置认证等。

  2. 创建项目在控制台中创建一个新的项目,并为该项目设置 API 密钥,用于在前端与 Appwrite 后端进行通信。

  3. 集成前端你可以在前端应用中使用 Appwrite 提供的 SDK 来与后端服务交互。例如,使用 JavaScript SDK 进行用户注册和登录:

import { Appwrite } from 'appwrite';

const sdk = new Appwrite();

sdk
    .setEndpoint('http://localhost/v1'// Appwrite Endpoint
    .setProject('projectID'); // Your project ID

sdk.account.create('unique()''email@example.com''password').then(response => {
    console.log(response);
}, error => {
    console.error(error);
});
  1. 使用云函数通过 Appwrite 的云函数,可以编写自定义的后端逻辑并在触发器或 API 调用时执行:
sdk.functions.createExecution('functionID', { key'value' }).then(response => {
    console.log(response);
}, error => {
    console.error(error);
});
  1. 部署应用部署应用时,你可以选择使用 Docker、Kubernetes 或者其他云服务,将 Appwrite 部署到生产环境,并通过负载均衡和监控工具确保应用的高可用性。

1v1私教,帮大家拿到满意的 offer

  1v1 帮大家 offer 

通,备注【训练营】


继续滑动看下一个
程序员Sunday
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存