请按照以下开发规范和要求进行Chat-Room项目的开发，重点遵循极简主义原则：
优先使用Augment Context Engine来分析问题, 提出方案
这是一个个人学习socket编程的练手项目
**极简设计原则：**
- 遵循"如无必要，勿增实体"的原则，删除所有冗余代码和不必要的功能
- 动态评估和重构代码，确保每一行代码都有明确的存在价值
- 优化项目结构，确保简洁性、可读性和良好的学习体验，特别适合新手入门
- 文件结构保持扁平化：
  - 根目录只保留必要文件：主入口文件、配置文件、README.md、package.json等
  - 所有测试文件统一放在`test/`目录下
  - 演示代码放在`demo/`目录下
  - 源代码按功能模块组织在`client/`, `server/`, `shared/`目录下
  - 设计文档、分析文档、总结文档等都放在`docs/`目录下
  - 配置文件放在`config/`目录下
  - 对调试工具, 临时测试, 重复文档, 过时文档, 验证脚本等带有临时性质的文件及时分门别类地归档到 `archive/`文件夹下
  - 每次commit之前都要检查是否需要归档的文件

**代码规范：**
- 所有代码注释必须使用中文
- 为每个函数、类、重要逻辑块添加详细且适当的中文注释，说明其功能、参数、返回值和使用场景
- 使用清晰易懂的代码写法，优先选择可读性高的实现方式
- 避免过度工程化，选择最直接有效的实现方案
- 变量和函数命名使用英文，但要求语义清晰，避免缩写

**版本控制：**
- 每完成一个独立功能模块或完成一个问题的解决后立即进行一次git commit
- commit信息必须使用中文，要求简短精炼（建议20字以内），准确体现本次提交的核心内容
- commit信息格式：[功能类型]: 具体功能描述
- 功能类型包括：新增、修复、优化、重构、文档、测试等
- 在提交前确保代码通过基本测试，避免提交破坏性代码

**架构设计：**
- 采用模块化开发方式，将功能拆分为独立的模块
- 降低模块间的耦合度，提高代码的可维护性和可扩展性
- 按照功能的重要程度和依赖关系制定开发优先级：
  1. 核心通信功能（消息收发、连接管理）
  2. 基础UI界面（消息显示、输入框）
  3. 文件传输功能（上传下载、进度显示）
  4. AI集成功能（GLM-4-Flash API集成）
  5. 界面美化和高级功能（主题、表情、通知等）
- 每个模块都应该可以独立测试和部署
- 使用配置文件管理所有可配置参数，避免硬编码

**功能实现：**
- 严格按照项目文档中提到的所有功能进行实现，确保功能完整性
- 基于现有代码架构进行开发，保持与现有模块的兼容性
- 如发现文档中的设计不合理，可以提出改进建议，但必须保证原有功能需求得到满足
- 在实现过程中如有疑问或需要澄清需求，及时沟通确认
- 优先实现MVP（最小可行产品），然后逐步迭代完善
- 确保新功能不会破坏现有功能的正常运行

**文档要求：**
- 编写完善的项目文档，包括功能说明、使用方法、API接口等
- 创建详细的README.md文件，包含：
  - 项目简介（一句话说明项目用途）
  - 快速开始指南（3步以内启动项目）
  - 功能特性列表
  - 安装和配置步骤
  - 使用示例和演示
  - 开发指南和贡献说明
  - 故障排除和常见问题
- 保持文档与代码同步更新，文档应该简洁明了，避免冗长描述
- `docs/` 中只保留
- 为重要的配置选项和API接口提供示例

**质量保证：**
- 为每个核心功能编写单元测试，测试覆盖率应达到主要功能点
- 确保代码在不同环境下的兼容性（Windows、macOS、Linux）
- 定期进行代码审查和重构，移除不再使用的代码
- 在添加新功能前，先运行现有测试确保不会引入回归问题
- 使用适当的错误处理和日志记录，便于调试和维护

**特别注意事项：**
- 基于记忆中的项目配置管理偏好，使用YAML/JSON配置文件替代环境变量
- 服务器和客户端使用独立的配置文件，包含所有相关设置并提供默认值和模板
- AI模块改进需按照GLM-4-Flash API文档进行，确保API调用的正确性和稳定性
- 在开发过程中始终考虑新手用户的学习体验，代码和文档都要易于理解