无论是大型还是小型项目,其成功在很大程度上取决于项目的规划、跟踪以及资源的利用情况。市场上有各种工具/软件可以帮助管理项目。构建这个应用的目的并不是要在市场上击败所有其他工具,而是尝试实现一个基于R Shiny的基本版本的项目管理工具。在尝试了一些小型的POC之后,想到了测试技能,构建一些更复杂的项目,并加入一些产品思维过程。这个博客/应用将是那些对学习Shiny框架感兴趣的人的一个很好的起点。
需要对R和Shiny有基本的了解。对于Shiny应用的快速简短示例,请查看简单的R Shiny应用
。
为了保持实现非常通用,创建了包含在任何项目管理工具中都非常常见的字段的样本数据,例如:项目名称
、项目编号
、项目开始日期
、项目结束日期
、预算
、项目类型
等。
侧边栏菜单项包括主页、项目与任务、自助服务、帮助以及生成报告等选项。这些菜单项通过dashboardSidebar
和sidebarMenu
函数实现,其中包含图标和标签页名称。
首页将展示通常跟踪项目的所有基本指标的快照,例如完成的项目数量、进行中的项目、暂停或延迟的项目。将使用Shiny小部件valueBoxOutput
来跟踪项目状态。
还想根据类别、复杂性和其他参数跟踪项目。因此,让创建一堆饼图、环形图和条形图,使用plotlyOutput()
。
如果可以以表格形式通知即将到期的截止日期、逾期任务等,那将非常有帮助,为此将使用DTOutput()
,它将具有排序和过滤数据的选项。
每个项目下都有多个任务,这些任务将分配给负责人和团队成员,并有开始日期和结束日期。因此,以下是希望拥有的基本功能:
用户应该能够在表格中选择一个项目,这将导致过滤下面的表格中相应的任务。
项目状态应根据其完成情况、进行中、延迟或暂停自动着色编码。
用户应该能够通过点击按钮重置选择。
对于任何选定的项目,应自动生成甘特图。
还应该有一个地方以图表的形式展示每个负责人的任务负载。
用户应该能够选择列并更改它们的顺序。这将帮助用户为更轻松的视图对一列列进行分组。
用户应该能够添加、删除、更新记录,类似于在MS Excel中的做法。
应用程序动态提供图表、表格和警报,帮助全面了解所有项目和相关任务。但是,有时候可能想要为特定场景切割和切片数据,在这种情况下,通常会提取数据并在BI工具或大多数时候在Excel中进行分析。
在应用程序本身上有一个像Excel透视表这样的基本功能将很有帮助,它允许用户实验数据并为给定场景可视化结果。为了实现这个类似Excel的功能,将使用rpivotTable
库。