Tiny官网的变迁

开源交互社区建设的变迁

Tiny框架开源也快5年了,做开源其实也是在做社区,那么一个开源社区怎么样构建实际上也是一个非常重要的问题,不同的交互方式,可能直接导致最终开源社区的成熟度如何。

最早的Tiny开源框架采用QQ群的方式进行交互,博客相关的内容在开源中国来进行展示。

QQ群的交互相对来说及时性比较好,但是当群大了之后,会对群友造成一定轰炸,导致许多群友不再看信息,另外有个缺点是交互的内容沉淀不下来,这样同样的问题会被重复的提,QQ群管理员实际上经常被打扰做一些不必要做的事情。

因此,我们又改了一个基于Discuz的bbs社区。

OK,交流是可以了,沉淀也有了,但是我们在维护过程,又发现问题了,由于我们的文档是写在基于Confluence的WIKI系统当中的:

我们在回复客户问题的时候,需要手工到Conflunce中进行查找,再贴出连接,这个过程即太不方便,又不舒服。

这就导致即时交流用QQ、互动用BBS、文档用WIKI,还有7788一堆各种东东。

当这些矛盾一次次显现的时候,作为一个软件人,那是是可忍孰不可忍!

于是,嗯嗯,熟悉悠然的同学们肯定知道下场了,肯定是悠然又撸袖子大干一场了。

对,必须干!

需求点

悠然的目的自然是期望解决如下几个问题:

  1. 应用一体化:讨论区、知识库、博客、交互等等平台一体化,不要各搭各的平台,各唱各的戏。
  2. 信息一体化:所有数据之间可以方便的进行引用和关联,这样客户可以根据需要找到自己关心的各种数据。
  3. 平台SaaS化:我们有这个需求,说不定有些朋友也有这个需求呢,是不是不仅解决我们的问题,也可以解决有同样痛点的同学们的问题
  4. 应用切面化:同样的功能只做一遍,而且也不需要其它地方引用,这样会大大降低产品的开发工作量及产品的成熟度

开发过程

当然,出于对Tiny开发平台的自信,我们当然是必须采用Tiny开发平台来开发了。

下面是我们的基础部分:

这个部分解决了各种常见内容,如:浏览信息、日历、评论、配置、导出pdf、全文检索、连接、日志、勋章、菜单、站内信、提醒、组织、面板、关系图、积分、租户、置顶、文件上传、校验码、邮件、短信等等内容。

这些内容是整个平台的基石,由于采用了切面相关的技术,我们真正实现了同样的东西只在一个地方实现。

然后就是做上面的应用了,第一阶段,我们主要做了讨论区,知识库、软件库等内容。

嗯嗯,啥话不说,先上菜:

首页

讨论区首页

讨论区版面

讨论区页面

知识库首页

知识库内容

软件资产

软件资产详情

好吧,这次内容确实都比较俗套,接下来讲一些有意思的东东:

历史

我们考虑到所有的内容都有它自己的生命生存期,在整个生存期可能有N个版本,保不齐哪天我们就希望找回上个版本---上次在开源中国不小心一个误操作,同时开源中国自动保存时间到了的时候,整个内容不见了,那一个叫天天不应啊,因此我们所有的内容都必须有历史数据。

当然也可以对任意两个版本进行对比,查看有哪些变化

只要做了修改,我们就会把上次的内容保存为历史,并且可以支持版本间对比,也可以把前面的一个版本的内容取出。

关联

所有内容都可以方便的进行关联,以便于查找相关的信息。

标签

不仅提供了标签云,还提供了标签查找,而且标签可以和各种类型的数据进行关联

关系图

当我们形成的内容之间建立了一定的关系之后的时候,可以通过关系图快速定位相关的数据,让数据流动起来。

@#

@和#号功能自然不能少

日程

可以在日程视图中对不同人员的不同类型的活动进行快速浏览,谁在什么时候干了啥一清二楚。

站内信

站内信功能,自然必不可少,如果两个都在线,那么可以进行即时聊天。如果对方不在线,那么就变成离线消息,下次上来可以看到。

全文检索

全文检索到处使用,而且可以在各种不同场景下对不同范围的内容进行检索。

PDF导出

呵呵,当我们在Confluence中导出一份文档需要半个多小时的时候,现在只要几十秒的感受那怎一个爽字了得?

大事记

你的组织想有一些大事记想让别人查阅的时候,我们还提供了大事记功能。

在线文档预览

当你有一些文档,想通过你的知识库给人看,但是又不想给下载了源文件的时候,我们还提供了在线文档预览功能,这样就可以二者进行兼容了,只有有权限的人才能下载相关的文件。

评分

可以对所有的内容提供评分功能。

到此,Tiny的新官网就简单介绍到这里,实际上里面的细节还有非常非常多,就不作详细介绍了,总之通过这次改版,应该说作为一个开源工作者的官网已经非常良好了。

补记

实际上,如果你已经有了域名,那么我们还提供域名映射功能,也就是说,我们可以做到让访问者完全访问你的域名,而背后是在我们的SaaS平台支撑的。

另外,我们的新官网,正在紧张的内测当中,Coming soon....

感兴趣的同学可以点击:www.tinygroup.org进行试用,由于权限关系,不能保证上面展示的功能您都有权限使用。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )