Skip to content

Tab-ibito/collaborator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

collaborator

功能

实现多用户的在线同步编辑图片画板。

  • ⭐ 实现局域网内部联通
  • 🔒 保存用户数据(账号+密码)
  • 🆙 用户更改自动同步
  • 👍 自由更改文件内容
  • 💡 多文件切换,房间系统

用户可以:

  • 注册账号 + 密码与登录
  • 创建文件
  • 切换文件
  • 查看在线用户列表
  • 查看操作记录
  • 直接编辑文件
  • 删除文件
  • 撤销操作
  • 像素和方形操作
  • 绘制直线与圆
  • 自行导入上传图片
  • (可扩展性,尚未实现)自定义multipixel图形
  • 实现多用户协同,压测可验证服务器在60人下的稳定性。

架构

服务端使用C++提供后端服务,客户端使用浏览器与web开发完成。

用户数据存放使用SQLite3管理。

登录请求采用 http POST 方法,不使用套接字。

发包和解包使用WebSocket,数据包传输使用json与二进制解析。

后端路由使用 Crow 库搭建。

画布的文件管理采用二进制文件与json日志文件相结合的管理方法。

前端使用原生的 Websocket API + HTML 开发。

技术内容

  • 前端 Web 开发
  • 后端 C++ 开发与服务器架构
  • 网络编程与高并发协调
  • 文件管理系统
  • Sqlite3 操作管理
  • 内存与数据结构调度

使用方法

服务端启动请确保配置过 asio zlib Sqlite3 的开发者模式。

可通过 server_startup.sh 快速启动。

客户端启动可以通过 /client 子目录下 python3 launcher.py (AI generated) 的简易启动脚本打开。

并确保在 /client 子目录下运行了 python3 -m http.server 8080,使客户端运行在8080端口号下打开。

文档

技术问题分析以及各更新简介查阅 ./docs/TDD.md

文件系统、json接口以及二进制数据解析方法等查阅 ./docs/declaration.md

附有若干测试文件 (AI generated),可联系 Tab_1bit0 本人。

结语

这也只不过一个小玩具。3600行代码,大概3000行不到的核心逻辑,没有技术含量,只需要一个上过cpp跟数据结构课的学生,配上一个LLM Agent就可以实现。Tab_1bit0本人目前的水平能力也止步于此。

我说我想成为一个coding高手,我想转专业,我想写一辈子代码。于内心而言,我都不知道这样的宏大理想能否和现在捉襟见肘的个人能力相匹配——就像做小学生的时候,看着烧杯里的硫酸铜溶液惊呼,说我以后想要当化学家同样的荒诞。只不过现在我指着一些用Agent没几分钟就能构建完的逻辑,指着一言难尽的工程代码质量说,你看,我以后真的想做Computer Science想做码类工作呐。

可惜身处当下的我,没法解读未来:我只能发问。

冥昭瞢闇,誰能極之?馮翼惟像,何以識之? ——天問(楚辭卷第三)屈原

总会有一天,我也可以参与维护那些数十百万行代码的工程项目吧?

总会有一天,我也可以拥有那些大三大四研究生学长的专业能力吧?

可是都离现在的Tab_1bit0太遥远了。

还是永远地怀抱着这些疑惑前进吧。到了未来,这些问题一定能得到解答的。

_1bit0 的电子洋流里浮潜一会吧,Tab。 「大切なものといつかまた巡り会えますように」。 「祝你有一天能和你重要的事物重逢」。

About

Tab_1bit0's first experimental demo

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors