组织介绍

结绳社区 (JieShen Community)

Alt

Version License Stars Rust TypeScript React Vue

一个现代化的包管理和分享平台,类似于 npm 或 GitHub

English | 简体中文

快速开始功能特性技术栈文档贡献


📋 项目简介

结绳社区(绳包管理器)是一个专门用于管理和分享各种软件包、工具和资源的现代化平台。它提供了完整的包管理功能,包括发布、下载、搜索、评论、排行榜等,支持 Web 端和移动端(Android/iOS)访问。

✨ 核心亮点

  • 🚀 高性能后端:基于 Rust + Actix-Web,提供极致性能
  • 📱 跨平台支持:React + Capacitor 构建,一套代码支持 Web/Android/iOS
  • 🎨 现代化 UI:基于 shadcn/ui + Tailwind CSS,美观且响应式
  • 🔐 安全可靠:JWT 认证、bcrypt 密码加密、SQL 注入防护
  • 📊 功能完善:用户系统、包管理、评论系统、排行榜、通知系统等
  • 🛠️ 开发友好:完善的文档、TypeScript 支持、Cursor AI 规则

🎯 功能特性

用户功能

  • ✅ 用户注册/登录/找回密码
  • ✅ 个人资料管理(头像、简介)
  • ✅ 关注/粉丝系统
  • ✅ 积分系统
  • ✅ 消息通知

包管理

  • ✅ 包发布/更新/删除
  • ✅ 包分类和标签
  • ✅ 全文搜索(基于 SQLite FTS5)
  • ✅ 版本管理
  • ✅ 下载统计
  • ✅ 包评分和评论

社区功能

  • ✅ 帖子发布和浏览
  • ✅ 评论和回复
  • ✅ 点赞和收藏
  • ✅ 热门排行榜
  • ✅ 资源推荐

管理功能

  • ✅ 后台管理系统
  • ✅ 用户管理
  • ✅ 内容审核
  • ✅ 数据统计
  • ✅ 系统配置

🏗️ 技术栈

后端 (APP_HouDuan)

🦀 Rust 1.70+
├── Actix-Web 4.4      # Web 框架
├── rusqlite 0.29      # SQLite 数据库
├── serde + serde_json # 序列化/反序列化
├── jsonwebtoken 9.2   # JWT 认证
├── bcrypt 0.15        # 密码加密
├── chrono 0.4         # 日期时间处理
└── log + env_logger   # 日志系统

移动端应用 (App_v2/jieshengshequ-app)

⚛️  React 18.2 + TypeScript 5.2
├── Capacitor 7.4      # 跨平台框架
├── React Router 6     # 路由管理
├── shadcn/ui          # UI 组件库
│   └── Radix UI       # 底层组件
├── Tailwind CSS 3.4   # 样式框架
├── React Hook Form    # 表单处理
├── Sonner             # Toast 通知
└── Vite 5.0           # 构建工具

管理后台 (APP_HouTai)

🖥️ Vue.js 3 + TypeScript
├── Ant Design Vue     # UI 组件库
├── Vite               # 构建工具
└── Pinia              # 状态管理

数据库

🗄️ SQLite
├── FTS5               # 全文搜索
├── 外键约束           # 数据完整性
└── 索引优化           # 查询性能

📂 项目结构

JieShenSheQu/
├── APP_HouDuan/                    # 后端服务(Rust)
│   ├── src/
│   │   ├── api/v1/                 # API 路由处理器
│   │   ├── models/                 # 数据模型
│   │   ├── repositories/           # 数据访问层
│   │   ├── services/               # 业务逻辑层
│   │   ├── middleware/             # 中间件
│   │   └── utils/                  # 工具函数
│   ├── sql/                        # SQL 迁移文件
│   ├── data.db                     # SQLite 数据库
│   └── config.toml                 # 配置文件

├── App_v2/jieshengshequ-app/      # 移动端应用(React)
│   ├── src/
│   │   ├── api/                    # API 客户端
│   │   ├── components/             # 可复用组件
│   │   │   └── ui/                 # shadcn/ui 组件
│   │   ├── screens/                # 页面组件
│   │   ├── contexts/               # React Context
│   │   ├── hooks/                  # 自定义 Hooks
│   │   ├── utils/                  # 工具函数
│   │   └── styles/                 # 样式文件
│   ├── android/                    # Android 原生代码
│   ├── public/                     # 静态资源
│   └── .cursor/rules/              # Cursor AI 规则

├── APP_HouTai/                     # 管理后台(Vue.js)
│   ├── src/
│   │   ├── views/                  # 页面组件
│   │   ├── components/             # 可复用组件
│   │   ├── api/                    # API 客户端
│   │   └── store/                  # 状态管理
│   └── dist/                       # 构建输出

├── App_GuanWang/                   # 官网
│   └── knot-community-website/     # 官网源码

├── 文档/                           # 项目文档
│   ├── AI学习规则文档/             # AI 开发规范
│   └── API_V2/                     # API 文档

└── 资源登记/                       # 资源文件

🚀 快速开始

环境要求

后端开发

  • Rust 1.70+
  • SQLite 3.x
  • Cargo

前端开发

  • Node.js 18+
  • npm/yarn
  • Android Studio(用于 Android 开发)

安装步骤

1. 克隆项目

git clone https://github.com/2154355737/JieShenSheQu.git
cd JieShenSheQu

2. 配置后端安全设置 ⚠️ 重要!

# 进入后端目录
cd APP_HouDuan

# 复制配置文件模板
cp config.example.toml config.toml

# 生成强密钥
openssl rand -base64 32

# 编辑 config.toml,替换 JWT 密钥
# 将生成的密钥粘贴到 [auth] 部分的 jwt_secret

⚠️ 安全提示

  • 必须修改 jwt_secret(默认值不安全)
  • 生产环境需修改 allowed_origins
  • 详细配置说明见 安全配置快速开始

3. 启动后端服务

# 运行后端服务
# Windows
start.bat

# Linux/Mac
cargo run --release

# 后端服务将在 http://0.0.0.0:15201 启动

4. 启动移动端应用

# 进入移动端目录
cd App_v2/jieshengshequ-app

# 安装依赖
npm install

# 开发模式(Web)
npm run dev
# 访问 http://localhost:5173

# 构建并运行 Android 应用
npm run build:android
# 这将打开 Android Studio

# 或直接运行 Android(需要已连接设备或模拟器)
npm run android

5. 启动管理后台(可选)

# 进入管理后台目录
cd APP_HouTai

# 安装依赖
npm install

# 开发模式
npm run dev
# 访问 http://localhost:3000

📖 开发指南

后端开发

API 路由结构

// src/api/v1/mod.rs
pub fn configure_routes(cfg: &mut web::ServiceConfig) {
    cfg.service(
        web::scope("/api/v1")
            .configure(auth::configure)      // 认证相关
            .configure(user::configure)      // 用户管理
            .configure(package::configure)   // 包管理
            .configure(post::configure)      // 帖子管理
            .configure(comment::configure)   // 评论管理
    );
}

添加新的 API 端点

  1. src/models/ 定义数据模型
  2. src/repositories/ 实现数据访问
  3. src/services/ 实现业务逻辑
  4. src/api/v1/ 添加路由处理器

前端开发

项目使用 Cursor AI 规则

项目包含完整的 Cursor AI 规则,位于 App_v2/jieshengshequ-app/.cursor/rules/

  • 01-project-overview.mdc - 项目概览
  • 02-react-typescript.mdc - React/TypeScript 规范
  • 03-api-integration.mdc - API 集成规范
  • 04-backend-rust.mdc - Rust 后端规范
  • 05-mobile-capacitor.mdc - Capacitor 移动开发
  • 06-code-quality.mdc - 代码质量规范
  • 07-database-sql.mdc - 数据库规范
  • 08-ui-components.mdc - UI 组件规范

添加新页面

// 1. 创建页面组件
// src/screens/new-screen.tsx
export const NewScreen: React.FC = () => {
  return <div>New Screen</div>;
};

// 2. 添加路由
// src/App.tsx
<Route path="/new" element={<NewScreen />} />

// 3. 添加导航(如需要)
// 更新导航组件

调用 API

import { apiClient } from '@/api/client';

// GET 请求
const users = await apiClient.get<User[]>('/users');

// POST 请求
const newUser = await apiClient.post<User>('/users', {
  username: 'test',
  email: 'test@example.com',
});

数据库管理

运行迁移

# 进入后端目录
cd APP_HouDuan

# 查看现有的迁移文件
ls sql/

# 应用新的迁移(通常在启动时自动执行)
# 或手动使用 sqlite3
sqlite3 data.db < sql/001_create_tables.sql

数据库备份

# 备份数据库
cp data.db data.db.backup_$(date +%Y%m%d_%H%M%S)

# 或使用提供的脚本
repair_database.bat

📦 构建和部署

后端部署

方式1:直接运行

cd APP_HouDuan
cargo build --release
./target/release/rope-manager-backend

方式2:使用预编译的二进制

# 项目包含预编译的 Windows 版本
./rope-manager-backend.exe

配置生产环境

编辑 config.toml

[server]
host = "0.0.0.0"
port = 15201
public_base_url = "http://your-domain.com:15201"

[auth]
jwt_secret = "your-secure-secret-key"  # 务必修改!

[cors]
allowed_origins = ["https://your-domain.com"]

移动端部署

Android APK

cd App_v2/jieshengshequ-app

# 构建生产版本
npm run build

# 同步到 Capacitor
npm run sync

# 打开 Android Studio 构建 APK
npm run build:android

# 在 Android Studio 中:
# Build > Generate Signed Bundle / APK

Web 部署

# 构建
npm run build

# dist/ 目录包含构建产物
# 将其部署到静态服务器(Nginx、Apache等)

Nginx 配置示例

# 后端 API
upstream api_backend {
    server 127.0.0.1:15201;
}

# 前端应用
server {
    listen 80;
    server_name your-domain.com;
    
    # 前端静态文件
    root /path/to/dist;
    index index.html;
    
    location / {
        try_files $uri $uri/ /index.html;
    }
    
    # API 代理
    location /api/ {
        proxy_pass http://api_backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    
    # 文件上传
    location /uploads/ {
        alias /path/to/APP_HouDuan/uploads/;
    }
}

📚 文档

安全文档

开发文档

🤝 贡献

我们欢迎所有形式的贡献!

贡献方式

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

开发规范

  • 遵循项目的代码风格(参考 Cursor AI 规则)
  • 编写清晰的提交信息
  • 添加必要的测试
  • 更新相关文档

报告问题

如果发现 Bug 或有功能建议,请创建 Issue

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

👥 作者

🙏 致谢

📞 联系方式


如果这个项目对你有帮助,请给它一个 ⭐️

Made with ❤️ by JieShen Community Team

成就
1
Star
0
Fork
成员(2)
10874111 muteduanxing 1663471114
ki
蓝莓君

搜索帮助