diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 580569c..1230058 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -2,9 +2,17 @@ We warmly welcome contributions from the community. Every bit of your effort helps make this project better. Before you start, please take a few moments to read the following guidelines. +## Where to Start? The Roadmap! + +Before you dive in, the best place to start is our project roadmap. It outlines our future plans and current priorities, giving you a clear picture of where the project is headed and where your help is most needed. + +➡️ **[Check out our Project Roadmap](../ROADMAP.md)** + +After checking the roadmap, you can find a suitable task in the [GitHub Issues](https://github.com/david-bai00/PrivyDrop/issues), especially those tagged with `help wanted` or `good first issue`. + ## Code of Conduct -We are committed to providing a friendly, safe, and welcoming environment for all. Please ensure your conduct aligns with our [Code of Conduct](./.github/CODE_OF_CONDUCT.md). All participants are expected to uphold this code. +We are committed to providing a friendly, safe, and welcoming environment for all. Please ensure your conduct aligns with our [Code of Conduct](./CODE_OF_CONDUCT.md). All participants are expected to uphold this code. ## How to Contribute diff --git a/.github/CONTRIBUTING.zh-CN.md b/.github/CONTRIBUTING.zh-CN.md index 6994dd5..7fe2349 100644 --- a/.github/CONTRIBUTING.zh-CN.md +++ b/.github/CONTRIBUTING.zh-CN.md @@ -2,9 +2,17 @@ 我们非常欢迎社区的贡献。你的每一份努力都将使这个项目变得更好。在开始之前,请花几分钟时间阅读以下指南。 +## 从哪里开始?看路线图! + +在开始之前,一个绝佳的起点是我们的项目路线图。它概述了我们的未来计划和当前的工作重点,能让你清晰地了解项目的走向,以及在哪些方面最需要你的帮助。 + +➡️ **[查看我们的项目路线图](../ROADMAP.zh-CN.md)** + +在查阅路线图之后,你可以在 [GitHub Issues](https://github.com/david-bai00/PrivyDrop/issues) 中寻找合适的任务,特别是那些被标记为 `help wanted` 或 `good first issue` 的任务。 + ## 行为准则 -我们致力于为所有成员提供一个友好、安全和热情的环境。请确保你的行为符合我们的 [**行为准则**](./.github/CODE_OF_CONDUCT.zh-CN.md)。我们期望所有参与者都能遵守该准则。 +我们致力于为所有成员提供一个友好、安全和热情的环境。请确保你的行为符合我们的 [**行为准则**](./CODE_OF_CONDUCT.zh-CN.md)。我们期望所有参与者都能遵守该准则。 ## 如何贡献 diff --git a/README.md b/README.md index 761500d..a055cc6 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,12 @@ Before you begin, ensure your development environment has [Node.js](https://node 4. **Start Sharing** Open `http://localhost:3000` in your browser to access the application. +## 🗺️ Roadmap + +We have a public roadmap that outlines our vision for the future and our current priorities. It's a great place to see what we're working on or to find areas where you can contribute. + +➡️ **[Check out the Project Roadmap](./ROADMAP.md)** + ## 📚 Documentation We provide detailed documentation to help you dive deeper into the project's design and deployment details: diff --git a/README.zh-CN.md b/README.zh-CN.md index d9d9bd2..bce2f8c 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -66,6 +66,12 @@ PrivyDrop (原 SecureShare) 是一个基于 WebRTC 的开源点对点(P2P) 4. **开始使用** 在浏览器中打开 `http://localhost:3000` 即可访问应用。 +## 🗺️ 路线图 + +我们制定了一份公开的路线图,其中概述了项目的未来愿景和当前的工作重点。你可以通过它了解我们正在进行的工作,或是寻找可以贡献力量的地方。 + +➡️ **[查看项目路线图](./ROADMAP.zh-CN.md)** + ## 📚 文档 我们提供了详尽的文档来帮助你深入了解项目的设计和部署细节: diff --git a/ROADMAP.md b/ROADMAP.md new file mode 100644 index 0000000..46bfe48 --- /dev/null +++ b/ROADMAP.md @@ -0,0 +1,54 @@ +# PrivyDrop Project Roadmap + +Welcome to the official roadmap for PrivyDrop! This document outlines our vision for the future, detailing the planned features and improvements that will shape the project. Our goal is to build the most secure, private, and user-friendly P2P file sharing solution. + +This roadmap is a living document. We welcome community feedback and contributions. If you have an idea or want to help build the future of PrivyDrop, please open an [Issue](https://github.com/david-bai00/PrivyDrop/issues) or a [Pull Request](https://github.com/david-bai00/PrivyDrop/pulls)! + +--- + +## Short-Term Goals (Next 1-3 Months) + +This phase focuses on perfecting the current feature set and enhancing reliability to build an even stronger foundation. + +- **[High Priority] Resumable File Transfers:** Implement logic to allow file transfers to be paused and resumed. This is crucial for large files and unstable network conditions. It will involve chunk-based confirmation and state management on both peers. +- **Enhanced Connection Stability:** The current implementation supports automatic reconnection for a short period (e.g., 15 minutes) in default 4-digit rooms. This will be extended to support custom-named rooms with a longer reconnection window (e.g., 1 hour). +- **Detailed Transfer Error-Handling:** Provide users with clearer, more specific feedback when a transfer fails (e.g., "Peer disconnected," "Browser storage full," "Network interrupted"). + +--- + +## Mid-Term Goals (Next 3-9 Months) + +This phase introduces powerful new features that expand PrivyDrop's use cases beyond one-to-one file transfers. + +- **[Major Feature] P2P Group Chat:** While multiple peers can already join a room, this feature will add a simple, host-based group chat. The room creator will act as a hub to relay encrypted text and files to all other participants, enabling basic group collaboration. +- **Self-Destructing Messages & Files:** Allow users to send files or text messages that are automatically deleted from the recipient's view after being read or after a set time. +- **Clipboard Synchronization:** Add a dedicated mode to sync the clipboard content (text and images) in real-time between connected devices. +- **Official Docker Support:** Provide and maintain official `Dockerfile` and `docker-compose.yml` configurations for easy, one-command self-hosting of the entire stack. + +### Performance and deployment + +- **Official Docker support:** Provide and maintain the official `Dockerfile` and `docker-compose.yml` configurations to achieve one-click deployment of the entire technology stack (frontend, backend, Redis, Coturn), which greatly facilitates self-hosted users. +- **Package size optimization:** Regularly use `@next/bundle-analyzer` to analyze the frontend package size, optimize through code splitting and other means, and keep the application lightweight. + +### User Experience (UX) + +- **To be defined** + +--- + +## Future & Community-Driven Ideas + +This section is for features that are not on the immediate roadmap but represent great opportunities for community contributions. + +- **Comprehensive Testing:** While manual testing currently suffices, we plan to gradually introduce a testing framework (like Jest/Vitest) to improve code quality and make community contributions safer. We welcome contributions in this area. +- **Your Ideas Here:** Have a great idea for a feature, like screen sharing or P2P media streaming? Open an issue and let's discuss it! We believe the best ideas can come from the community. + +## How to Contribute + +Your contributions are vital to making this roadmap a reality! + +1. **Pick an Issue:** Look for issues tagged with `help wanted` or `good first issue`. +2. **Start a Discussion:** If you're interested in a roadmap item, start a discussion to share your ideas. +3. **Submit a PR:** Fork the repo, create a feature branch, and submit a Pull Request. + +Thank you for being part of the PrivyDrop community! Let's build the future of private sharing, together. diff --git a/ROADMAP.zh-CN.md b/ROADMAP.zh-CN.md new file mode 100644 index 0000000..ef677af --- /dev/null +++ b/ROADMAP.zh-CN.md @@ -0,0 +1,55 @@ +# PrivyDrop 项目发展路线图 + +欢迎来到 PrivyDrop 的官方路线图!本文档将详细阐述我们对未来的愿景,以及计划中的功能和改进。我们的目标是构建最安全、最私密、最友好的 P2P 文件分享解决方案。 + +这份路线图是一份动态文档,我们真诚地欢迎社区的反馈和贡献。如果你有任何想法,或希望帮助我们共创 PrivyDrop 的未来,请随时开启一个 [Issue](https://github.com/david-bai00/PrivyDrop/issues) 或提交一个 [Pull Request](https://github.com/david-bai00/PrivyDrop/pulls)! + +--- + +## 短期目标 (未来 1-3 个月) + +本阶段将专注于完善现有功能、提升核心体验的可靠性,为项目打下更坚实的基础。 + +- **[高优先级] 文件断点续传:** 实现文件传输的暂停与恢复功能。这对于大文件传输和不稳定网络环境至关重要。技术上将涉及分片确认和双端状态管理。 +- **连接稳定性增强:** 目前,使用默认 4 位数字 ID 的房间已支持短时间(例如 15 分钟)内断线重连。未来将此特性扩展到自定义名称的房间,并提供更长的重连窗口(例如 1 小时)。 +- **精细化传输错误处理:** 当传输失败时,向用户提供更清晰、具体的反馈(例如:"对方已断开连接"、"浏览器存储空间不足"、"网络中断")。 + +--- + +## 中期目标 (未来 3-9 个月) + +本阶段将引入强大的新功能,将 PrivyDrop 的应用场景从一对一的文件传输拓展到更广阔的领域。 + +- **[重大功能] P2P 群组聊天:** 虽然目前已支持多人加入同一房间,但此功能将增加一个简洁的、基于主持人的群聊系统。房间创建者将作为中心节点,负责将加密的文本和文件转发给所有其他参与者,实现基础的群组协作。 +- **阅后即焚的消息与文件:** 允许用户发送在被读取或设定时间后自动销毁的文件或文本消息。 +- **剪贴板同步:** 增加一个专门的模式,用于在连接的设备之间实时同步剪贴板内容(文本和图片)。 +- **官方 Docker 支持:** 提供并维护官方的 `Dockerfile` 和 `docker-compose.yml` 配置,实现一键部署整个技术栈(前端、后端、Redis、Coturn),极大地方便自托管用户。 +- **包体积优化:** 定期使用 `@next/bundle-analyzer` 分析前端打包体积,通过代码分割等手段进行优化,保持应用的轻量化。 + +### 性能与部署 + +- **官方 Docker 支持:** 提供并维护官方的 `Dockerfile` 和 `docker-compose.yml` 配置,实现一键部署整个技术栈(前端、后端、Redis、Coturn),极大地方便自托管用户。 +- **包体积优化:** 定期使用 `@next/bundle-analyzer` 分析前端打包体积,通过代码分割等手段进行优化,保持应用的轻量化。 + +### 用户体验 (UX) + +- to be define + +--- + +## 未来探索与社区驱动 + +本部分用于记录那些不在当前核心规划中,但对社区贡献开放的绝佳想法。 + +- **代码测试覆盖:** 目前项目主要通过手动测试保证质量。我们计划逐步引入测试框架(如 Jest/Vitest)以提升代码质量、保障社区贡献的安全性。我们非常欢迎社区在此方面做出贡献。 +- **你的想法:** 你是否对浏览器扩展、屏幕共享、P2P 媒体流等高级功能有很棒的想法?欢迎通过 Issue 发起讨论!我们相信最好的创意来自社区。 + +## 如何贡献 + +你的贡献对于将这份路线图变为现实至关重要! + +1. **认领任务:** 寻找被标记为 `help wanted` 或 `good first issue` 的 Issue。 +2. **发起讨论:** 如果你对路线图中某个项目感兴趣,欢迎发起一个讨论来分享你的想法。 +3. **提交代码:** Fork 仓库,创建你的功能分支,然后提交 Pull Request。 + +感谢你成为 PrivyDrop 社区的一员!让我们一起共创私人分享的未来。