An open API service indexing awesome lists of open source software.

https://github.com/poboll/shenglingji

生灵集后端服务 / 「生命万灵的合集」—— 探索、学习和分享自然之美的平台 / 安卓软件 / 安卓軟件
https://github.com/poboll/shenglingji

express jwt multer mysql nodejs sequelize

Last synced: 3 months ago
JSON representation

生灵集后端服务 / 「生命万灵的合集」—— 探索、学习和分享自然之美的平台 / 安卓软件 / 安卓軟件

Awesome Lists containing this project

README

          


生灵集

生灵集 (Sheng Ling Ji)



license

platform
Android
Backend

「生命万灵的合集」—— 探索、学习和分享自然之美的平台

## 📖 项目介绍

「生灵集」的寓意是"生命万灵的合集",旨在创建一个可以探索、学习和分享自然之美的平台。通过这个平台,用户可以:

- 📱 浏览精美的动植物图文和视频内容
- 🌱 参与互动学习,增长自然知识
- 🔍 探索生物多样性,了解生态保护
- 👥 与志同道合的自然爱好者交流分享

本项目采用现代化的技术栈,包括 Android 原生应用(Jetpack Compose)和 Node.js 后端服务,打造流畅、美观且功能丰富的用户体验。

## 🏗️ 项目架构

项目采用前后端分离的架构设计:

```
shenglingji/
├── shenglingji-android/ # Android 客户端应用
└── shenglingji-backend/ # Node.js 后端服务
```

### 前端架构

Android 客户端采用 MVVM 架构模式,结合 Jetpack Compose 声明式 UI 框架,实现高效的 UI 渲染和状态管理。

- **UI 层**: Jetpack Compose 构建现代化界面
- **ViewModel 层**: 管理 UI 状态,处理业务逻辑
- **Repository 层**: 数据获取与缓存策略
- **数据源层**: 网络请求和本地存储访问

### 后端架构

后端服务采用 MVC 架构模式,基于 Express 框架构建 RESTful API,使用 Sequelize ORM 进行数据库操作。

- **Controller**: 处理请求和响应
- **Service**: 业务逻辑实现
- **Model**: 数据库模型定义
- **Middleware**: 请求处理中间件

## 📊 数据库设计

系统使用 MySQL 关系型数据库,主要包含以下核心表:

### 用户相关表
- **Users**: 用户基本信息
- **Profiles**: 用户详细资料
- **user_followings**: 用户关注关系

### 内容相关表
- **posts**: 帖子主体内容
- **post_images**: 帖子图片资源
- **post_videos**: 帖子视频资源
- **comments**: 评论信息

## 🚀 功能特性

### 内容浏览

- 瀑布流展示精美动植物图文内容
- 视频播放支持,展示生态环境和生物行为
- 个性化推荐算法,根据用户兴趣推送内容

### 互动学习

- 动植物知识问答和测验
- 物种识别与分类学习
- 生态知识科普与环保理念传播

### 社区功能

- 用户关注与互动系统
- 内容评论与点赞
- 收藏夹管理
- 私信交流

### 用户系统

- 账号注册与登录
- 个人资料管理
- 内容发布与管理
- 隐私设置

## 💻 技术栈

### Android 客户端

- **UI 框架**:Jetpack Compose
- **架构模式**:MVVM (Model-View-ViewModel)
- **网络请求**:Retrofit2 + OkHttp3
- **图片加载**:Coil + Glide
- **视频播放**:Media3 ExoPlayer
- **状态管理**:ViewModel + LiveData + Coroutines
- **依赖注入**:Hilt (计划中)
- **本地存储**:Room (计划中)

### 后端服务

- **运行环境**:Node.js
- **Web 框架**:Express
- **数据库**:MySQL
- **ORM**:Sequelize
- **认证**:JWT (JSON Web Token)
- **文件上传**:Multer

## 🔧 环境要求

### Android 客户端

- Android Studio Hedgehog | 2023.1.1 或更高版本
- JDK 11 或更高版本
- Android SDK 35
- Gradle 8.4 或更高版本

### 后端服务

- Node.js 16+
- npm 或 yarn
- MySQL 8.0+

## 📦 安装指南

### 后端服务设置

```bash
# 克隆仓库
git clone https://github.com/poboll/shenglingji.git
cd shenglingji/shenglingji-backend

# 安装依赖
npm install

# 配置环境变量
cp .env.example .env
# 编辑 .env 文件设置数据库连接信息

# 初始化数据库
mysql -u root -p < db/init.sql

# 启动服务
npm start
```

### Android 客户端设置

```bash
# 克隆仓库
git clone https://github.com/poboll/shenglingji-android.git
cd shenglingji-android

# 使用 Android Studio 打开项目
# File > Open... > 选择 shenglingji-android 目录

# 等待 Gradle 同步完成
# Android Studio 会自动下载所需依赖

# 修改 API 配置
# 打开 app/src/main/java/com/shenglingji/android/network/ApiService.kt
# 修改 BASE_URL 为您的后端服务地址 (本地开发可使用 http://10.0.2.2:3000)

# 构建并运行应用
# 点击 Android Studio 工具栏的 Run 按钮或使用快捷键 Shift+F10
```

## 📱 应用截图

### 启动与首页


启动页
植物首页
动物首页

### 知识测验


测验开始
测验进行中

### 购物与社交


购物
消息
搜索

### 用户中心


个人中心
编辑资料
设置

### 搜索与登录


搜索结果
登录

## 🤝 贡献指南

我们欢迎所有形式的贡献,无论是新功能、bug 修复还是文档改进。

1. Fork 本仓库
2. 创建你的特性分支 (`git checkout -b feature/amazing-feature`)
3. 提交你的更改 (`git commit -m 'add: add new features'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 开启一个 Pull Request

### 代码规范

- Android 客户端遵循 [Kotlin 编码规范](https://kotlinlang.org/docs/coding-conventions.html)
- 后端服务遵循 [Airbnb JavaScript 风格指南](https://github.com/airbnb/javascript)
- 提交信息遵循自定义规范,格式为:`类型: 描述`(如:`add: 添加用户登录功能`)

## 📄 许可证

本项目采用 MIT 许可证 - 详情请参阅 [LICENSE](LICENSE) 文件

## 📞 联系方式

- 项目维护者:[poboll](https://github.com/poboll)
- 项目仓库:[https://github.com/poboll/shenglingji](https://github.com/poboll/shenglingji)

---

用科技连接人与自然,让每一次探索都充满意义