# 匿名社区客户端 **Repository Path**: meda/anonymous-community-client ## Basic Information - **Project Name**: 匿名社区客户端 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-04 - **Last Updated**: 2025-10-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 匿名社区 Android 客户端

应用截图

## 📱 项目简介 基于 **API v3.0.0** 开发的完整匿名社区Android应用,采用纯黑白配色设计,实现了完整的用户认证、帖子管理、评论系统、点赞举报、管理员功能等全部模块。 ### ✨ 核心特性 - 🎭 **完全匿名** - 所有帖子和评论使用匿名ID,保护用户隐私 - 🎨 **黑白主题** - 纯粹的黑白Material Design 3设计 - 🔐 **安全认证** - JWT Token自动管理和刷新 - 📡 **完整API对接** - 100%覆盖所有API端点 - 👮 **管理员系统** - 完整的后台管理功能 - 📱 **流畅体验** - 下拉刷新、分页加载、加载状态 ## 🎯 功能清单 ### 用户认证 - [x] 用户注册(邮箱验证码) - [x] 用户登录(支持邮箱/用户名) - [x] 忘记密码(邮箱验证码重置) - [x] 自动登录(Token管理) - [x] 退出登录 - [x] 申请删除账户 - [x] 取消删除账户 ### 帖子功能 - [x] 发布帖子(匿名) - [x] 浏览帖子列表 - [x] 查看帖子详情 - [x] 删除自己的帖子 - [x] 点赞/取消点赞帖子 - [x] 举报不当帖子 - [x] 多种排序方式(最新、热门、最早) - [x] 下拉刷新 - [x] 上滑分页加载 ### 评论功能 - [x] 发表评论 - [x] 查看评论列表(树形结构) - [x] 回复评论 - [x] 删除自己的评论 - [x] 点赞/取消点赞评论 - [x] 举报不当评论 ### 管理员功能 - [x] 获取所有用户列表 - [x] 创建新用户 - [x] 设置用户管理员状态 - [x] 封禁/解封用户 - [x] 获取待审核帖子 - [x] 审核帖子(批准/拒绝) - [x] 获取举报列表 - [x] 处理举报 ## 🏗️ 技术架构 ### 技术栈 ``` - Language: Java 8 - UI Framework: Material Design 3 - Network: Retrofit 2 + OkHttp 3 - JSON: Gson - Architecture: MVVM - Image Loading: (待集成) - Crash Report: Bugly ``` ### 项目结构 ``` app/src/main/ ├── java/com/anonymous/community/ │ ├── api/ # API层 │ │ ├── ApiClient.java # 网络客户端(含拦截器) │ │ ├── ApiService.java # API接口定义(28个接口) │ │ └── model/ # 数据模型(35+个类) │ │ ├── *Request.java # 请求模型 │ │ └── *Response.java # 响应模型 │ ├── model/ # 业务模型 │ │ ├── Post.java # 帖子模型 │ │ ├── User.java # 用户模型 │ │ └── LoginResponse.java # 登录响应 │ ├── ui/ # UI层 │ │ ├── base/ # 基类 │ │ │ ├── BaseActivity.java │ │ │ └── BaseFragment.java │ │ ├── home/ # 首页模块 │ │ │ ├── HomeFragment.java # 首页容器 │ │ │ ├── LatestFragment.java # 最新列表 │ │ │ ├── RecommendFragment.java # 推荐列表 │ │ │ ├── FollowFragment.java # 全部列表 │ │ │ ├── PostAdapter.java # 帖子适配器 │ │ │ └── CommentAdapter.java # 评论适配器 │ │ ├── activity/ # 个人中心 │ │ │ └── ActivityFragment.java │ │ └── message/ # 消息 │ ├── utils/ # 工具类 │ │ ├── TokenManager.java # Token管理 │ │ └── StatusBarUtil.java # 状态栏工具 │ ├── LoginActivity.java # 登录页 │ ├── RegisterActivity.java # 注册页 │ ├── ForgotPasswordActivity.java # 忘记密码 │ ├── MainActivity.java # 主页 │ ├── PublishActivity.java # 发帖页 │ ├── PostDetailActivity.java # 帖子详情页 │ ├── AdminActivity.java # 管理员中心 │ └── CommunityApplication.java # Application └── res/ # 资源文件 ├── layout/ # 布局文件(15+个) ├── values/ # 资源定义 │ ├── colors.xml # 黑白配色 │ ├── themes.xml # 主题定义 │ └── strings.xml # 字符串 └── drawable/ # 图标资源 ``` ## 🔌 API 对接 ### API配置 ```java Base URL: http://47.97.98.126:8080/ User-Agent: Mozilla/5.0 cn.kicsy.niyan/2025.10.27; API/1.0 (KHTML, like Gecko) Authorization: Bearer ``` ### API覆盖率:28/28 (100%) #### 认证接口 (8个) - ✅ POST /v1/api/auth/send-code - 发送验证码 - ✅ POST /v1/api/auth/register - 用户注册 - ✅ POST /v1/api/auth/login - 用户登录 - ✅ POST /v1/api/auth/verify-email-code - 验证邮箱验证码 - ✅ POST /v1/api/auth/reset-password - 重置密码 - ✅ POST /v1/api/auth/manage-account - 申请删除账户 - ✅ POST /v1/api/auth/confirm-cancel-delete - 取消删除 - ✅ POST /v1/api/auth/logout - 登出 #### 帖子接口 (4个) - ✅ POST /v1/api/posts - 创建帖子 - ✅ GET /v1/api/posts - 获取帖子列表 - ✅ GET /v1/api/posts/{id} - 获取帖子详情 - ✅ DELETE /v1/api/posts/{id} - 删除帖子 #### 评论接口 (4个) - ✅ POST /v1/api/posts/{id}/comments - 创建评论 - ✅ GET /v1/api/posts/{id}/comments - 获取评论列表 - ✅ GET /v1/api/posts/{id}/comments/tree - 获取评论树 - ✅ DELETE /v1/api/posts/{id}/comments/{id} - 删除评论 #### 点赞接口 (1个) - ✅ POST /v1/api/posts/like/{type}/{id} - 切换点赞 #### 举报接口 (2个) - ✅ POST /v1/api/posts/{id}/report - 举报帖子 - ✅ POST /v1/api/posts/{id}/comments/{id}/report - 举报评论 #### 管理员接口 (8个) - ✅ GET /v1/api/admin/users - 获取用户列表 - ✅ POST /v1/api/admin/users - 创建用户 - ✅ POST /v1/api/admin/users/{id}/admin-status - 设置管理员 - ✅ POST /v1/api/admin/users/{id}/ban - 封禁用户 - ✅ GET /v1/api/admin/posts/pending - 获取待审核帖子 - ✅ PUT /v1/api/admin/posts/{id}/moderate - 审核帖子 - ✅ GET /v1/api/admin/comments/reports - 获取举报列表 - ✅ PUT /v1/api/admin/comments/reports/{id}/handle - 处理举报 #### 健康检查 (1个) - ✅ GET /v1/api/health - 健康检查 ## 🎨 设计规范 ### 配色方案 ```xml #000000 #FFFFFF #F5F5F5 #E0E0E0 #9E9E9E #616161 #212121 #D32F2F #388E3C ``` ### UI组件 - Material Card - 帖子卡片 - Material TextInputLayout - 输入框 - Material Button - 按钮 - SwipeRefreshLayout - 下拉刷新 - RecyclerView - 列表展示 ## 🚀 快速开始 ### 环境要求 - Android Studio Arctic Fox+ - JDK 8+ - Android SDK 24+ - Gradle 7.0+ ### 安装步骤 1. **克隆项目** ```bash git clone cd anonymous-community-client ``` 2. **配置服务器地址** ```java // app/src/main/java/com/anonymous/community/api/ApiClient.java private static final String BASE_URL = "http://your-server-address:8080/"; ``` 3. **同步依赖** ```bash ./gradlew sync ``` 4. **运行项目** ```bash ./gradlew installDebug ``` ## 📖 使用指南 ### 用户流程 1. **注册账号** - 输入邮箱 → 点击"发送验证码" - 输入验证码和用户名密码 - 点击"注册"完成 2. **登录** - 输入邮箱/用户名和密码 - 点击"登录" 3. **浏览帖子** - 首页tab切换:全部/推荐/福利/最新 - 下拉刷新列表 - 上滑自动加载更多 4. **发布帖子** - 点击底部"+"按钮 - 输入内容(1-5000字符) - 点击"发布" 5. **查看和评论** - 点击帖子卡片查看详情 - 浏览评论列表 - 输入评论并发送 - 点赞帖子/评论 6. **举报功能** - 点击帖子详情右上角"..." - 选择"举报" - 填写举报原因并提交 7. **个人中心** - 查看个人信息 - 退出登录 - 申请删除账户 ### 管理员流程 1. **进入管理中心** - 以管理员账号登录 - 个人中心 → "管理员中心" 2. **审核帖子** - 查看待审核帖子列表 - 批准或拒绝 3. **处理举报** - 查看举报列表 - 处理举报(批准删除或驳回) 4. **用户管理** - 查看所有用户 - 封禁/解封用户 - 设置管理员权限 ## 🔧 核心功能实现 ### 1. Token自动管理 ```java // TokenManager自动存储和读取Token TokenManager.saveToken(context, token); String token = TokenManager.getToken(context); // ApiClient自动注入Token private static class AuthInterceptor implements Interceptor { @Override public Response intercept(Chain chain) throws IOException { String token = TokenManager.getToken(appContext); if (token != null) { Request requestWithAuth = originalRequest.newBuilder() .header("Authorization", "Bearer " + token) .build(); return chain.proceed(requestWithAuth); } return chain.proceed(originalRequest); } } ``` ### 2. User-Agent注入 ```java // 所有请求自动添加User-Agent(符合API要求) private static class UserAgentInterceptor implements Interceptor { @Override public Response intercept(Chain chain) throws IOException { Request requestWithUserAgent = originalRequest.newBuilder() .header("User-Agent", USER_AGENT) .build(); return chain.proceed(requestWithUserAgent); } } ``` ### 3. API调用示例 ```java // 获取帖子列表 apiService.getPosts(page, pageSize, "latest", null) .enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { if (response.isSuccessful() && response.body() != null) { // 处理数据 List posts = response.body().getPosts(); displayPosts(posts); } } @Override public void onFailure(Call call, Throwable t) { Toast.makeText(context, "网络连接失败", Toast.LENGTH_SHORT).show(); } }); ``` ### 4. 错误处理 ```java private String extractErrorMessage(Response response) { try { if (response.errorBody() != null) { String raw = response.errorBody().string(); JSONObject obj = new JSONObject(raw); return obj.optString("error"); // API v3.0.0格式 } } catch (Exception e) { // 忽略解析错误 } return null; } ``` ## 📊 数据模型 ### 核心模型(35+个类) #### 认证相关 - `LoginRequest` / `LoginResponse` - `RegisterRequest` / `RegisterResponse` - `SendCodeRequest` / `VerifyCodeResponse` - `ResetPasswordRequest` #### 帖子相关 - `CreatePostRequest` / `CreatePostResponse` - `PostListResponse` / `PostDetailResponse` #### 评论相关 - `CreateCommentRequest` / `CreateCommentResponse` - `CommentListResponse` / `CommentTreeResponse` #### 管理员相关 - `UserListResponse` - `CreateUserRequest` / `CreateUserResponse` - `SetAdminStatusRequest` - `BanUserRequest` - `PendingPostsResponse` - `ModeratePostRequest` - `ReportListResponse` - `HandleReportRequest` ## 🎯 核心Activity/Fragment ### Activities 1. `LoginActivity` - 登录页 2. `RegisterActivity` - 注册页 3. `ForgotPasswordActivity` - 忘记密码 4. `MainActivity` - 主页容器 5. `PublishActivity` - 发帖页 6. `PostDetailActivity` - 帖子详情页 7. `AdminActivity` - 管理员中心 ### Fragments 1. `HomeFragment` - 首页Tab容器 2. `LatestFragment` - 最新帖子列表 3. `RecommendFragment` - 推荐帖子列表 4. `FollowFragment` - 全部帖子列表 5. `ActivityFragment` - 个人中心 6. `MessageFragment` - 消息(待完善) ## 📝 开发规范 ### 代码规范 - 使用驼峰命名法 - 添加注释说明 - 统一错误处理 - BaseActivity/BaseFragment统一管理 ### 提交规范 ``` feat: 新功能 fix: 修复bug docs: 文档更新 style: 代码格式 refactor: 重构 test: 测试 chore: 构建/工具 ``` ## 🐛 已知问题 ### 待优化 1. ⏰ 时间格式化需要完善(目前显示ISO格式) 2. 🔄 需要添加Token刷新逻辑 3. 📄 可以添加帖子详情的分享功能 4. 🔔 消息通知功能待实现 ## 📚 相关文档 - [客户端API对接文档.md](客户端API对接文档.md) - 完整API文档 - [项目完成总结.md](项目完成总结.md) - 项目完成总结 ## 🔐 安全说明 ### 匿名性保护 - 所有帖子使用`anonymous_id`标识 - 用户真实身份完全保密 - 同一用户在不同帖子下使用不同匿名ID ### Token安全 - Token存储在SharedPreferences - 自动过期检测 - 登出时清除所有敏感信息 ## 📄 许可证 MIT License ## 👥 贡献 欢迎提交Issues和Pull Requests ## 📞 联系方式 - 项目仓库:GitHub - 邮箱:support@example.com --- **开发日期**: 2025-10-27 **API版本**: v3.0.0 **Min SDK**: 24 **Target SDK**: 34 © 2025 匿名社区 Android 客户端