项目 内容
班级:北航2020春软件工程 博客园班级博客
作业:团队项目选择与NABCD分析 团队项目选择

项目介绍

项目简介

项目名称:Visual Lab Online

项目简介:一款面向学生和个人用户的易用性强的Cloud IDE。

核心功能是支持在线编写代码,拥有Terminal,支持代码编译、运行与调试,并且可以将代码保存在云端或保存在第三方网盘中。

方便初学者进行编程,内置C/C++、Java、Python、Android等预设环境,用户无需配置环境也无需了解编译器、调试器、SDK等工具链的具体情况,可以让初学者把精力放在入门写代码上,不被复杂的配置劝退。

打开浏览器和网页就可以继续之前的代码编写,可以跨设备(如iPad、笔记本、台式机),不用担心不同设备的环境和项目代码的同步问题。

与微软的Visual Studio Online相比,我们取名为Visual Lab Online,意在让产品风格致敬Visual Studio Code的同时,创造一款对学生和个人初学用户友好的IDE。Studio是工作室级别的产品,适合企业员工和专业用户使用;而Lab则为不愿花时间和精力配置Studio、且用不到Studio的大部分功能的同学创造一个简洁易用高效的“实验室”,如Google Colab一样。

产品的主要特色有:

  • 基于Monaco Editor的代码编辑器,支持代码着色、代码补全和Live Templates。
  • 包含网页端Terminal,可以在线编译、运行、调试。
  • 代码云端存储,可以跨设备同步编写代码。
  • 支持C++11/14/17,Python2/3等多种编程环境和版本。环境部署和工具链等复杂配置可对用户透明。
  • 综合了各大成熟IDE中实用的快捷键与特色功能,如文件比较、多光标、代码重构等,提高了编程效率。
  • 对轻度用户友好,无需Google Drive/Azure/AWS等账户和服务,且国内使用更加方便。
  • 支持北航云盘存储或百度网盘存储(beta版本)。

选题前调研

目前已有多种Cloud IDE,功能都非常齐全强大,但是大部分的Cloud IDE收费昂贵、云端配置对学生而言过剩,并且基本上都在墙外,对国内的大学生而言非常的不友好。

例如AWS Cloud9就是一款比较强大的线上IDE,内置多种编程环境(C++/Go/Java/JavaScript...),只需要一个浏览器就可以云端编写代码,并且支持多人协作的功能。但是需要注册Amazon AWS服务,对于一个学习编程的小白而言,代码还没有了解清楚就要去了解云服务、存储计算节点等方案是南辕北辙,因此并不适合学生和初学者使用,适合一些企业和具有一定编程经验的人使用。

再者还有codeanywhere,这也是一款线上IDE。它支持多种网盘,服务器存储功能,但是其价格比较昂贵。最便宜的是每月3刀,但是不支持云端存储;最便宜的支持云端存储的服务是每月10刀,可以支持FTP服务器、Google/Dropbox等。但这对于学生而言价格比较昂贵,且国内访问困难,并不适合大众学生。

还有微软Visual Studio Online,功能齐全,并且和线下的Visual Studio Code软件相似。但是其没有大陆服务器,不支持人民币结算,对于国内的学生并不友好。在功能上依赖于Microsoft Azure,对新手不友好。

因此总结起来,这些产品若是对刚刚入手编程的学生提供服务,可能具有以下的共性问题:

  • 结算方式、价格和存储提供商对普通大陆学生不友好
  • 需要较为复杂的注册、配置、订阅等操作,对热切地想开始学习编程的学生来说是一种劝退
  • 某些产品只支持HTML/CSS等,非全语言
  • 面向企业用户,而非学生个人/学生小团体

选题愿望与动机

本团队目标开发的Visual Lab Online线上IDE,旨在帮助编程初学者能够更方便,更快捷的上手并编写代码,且将精力放在代码本身

我们希望我们的线上IDE,不依赖于任何设备环境,不需要多余的配置,仅需要一台电脑(iPad、Huawei Pad、Macbook、Surface、......)和一个浏览器(Chrome,Firefox,Edge,Safari,......)就可以编写代码,没有额外要求;网站打开简单操作就可以开始/继续编程,开箱即用;支持云端存储,写好的代码不会丢,且多设备同步;支持线上调试,具有多种语言环境支持;使用习惯和功能为轻度但高效的用户提供支持。

我们希望我们的线上IDE,能够帮助初学者快速的上手,不被复杂的额外工作劝退,不用了解什么是MinGW,不用烦恼找不到编译器的问题,不必纠结如何配置工程。计费方案便宜甚至免费,方便国内大学生使用。

甚至,我们希望我们的线上IDE,能够支持北航云盘的存储功能,将写好的代码自动存储到北航云盘中,方便北航的学生编写,下载自己的代码。

项目可实现性

  • 线上编辑器可以借鉴开源项目Monaco Editor,对已有代码做修改和增加
  • IDE已有开源项目VSCode,可以参考
  • 百度云盘拥有Github第三方实现的API,北航云盘拥有官方的API支持,可以实现文件存储功能
  • Docker技术,可以支持不同的代码运行环境,且编译运行调试方便

NABCD分析

Need

上面已经分析过,对于算法初学者而言,要在本机上编写代码,需要安装各种各样的IDE,各种各样的环境,那么就很可能遇到以下困难:

  • 有些IDE的安装步骤繁琐,需要用户自己选择各种各样的配置环境,安装各种各样的插件支持,但新手完全不了解,不知如何选择。
  • 有些IDE的菜单名称令人难懂,且99%的功能初学者用不到,也不知道怎么用。
  • 跨平台编写代码比较麻烦,需要重新安装环境和IDE,且需要手动同步代码。

因此这些繁琐的步骤和难题,对于一个什么都不懂的小白而言非常的不友好。如果能够有一套不需要过多配置的IDE,甚至可以跨平台使用的IDE,上手就可以使用,那就更好不过了。

Approach

本项目为一个Web软件,设计主要可以分为前后端

  • 前端:

    • 编辑器设计,有开源项目Monaco Editor支持
    • IDE设计,有开源项目VSCode可参考
  • 后端:
    • 虚拟系统虚拟编程环境的管理,有Docker技术支持
    • 云盘存储,有百度云盘以及北航云盘支持,都具有相关的API文档

Benefit

该产品的核心功能为支持线上代码编辑和调试,主要有以下细致的功能:

  • 浏览器直接访问,没有环境、设备依赖性
  • 人性化的编辑器,拥有自动补全、Live Template等快捷操作与提示,重新定制对初学者实用的快捷键和工具。
  • 拥有web terminal,支持多种编程环境,可以编写python,c++等代码并调试
  • 云端存储,可以在远程服务器上存储,也可以在百度云盘或北航云盘上存储

Competitors

现有的相关产品介绍详见选题前调研章节。

本项目相比现有产品的优势在于:

  • 对新手小白友好,对大学生友好,计费便宜甚至免费,不需要配置环境
  • 易于上手,轻量但同样高效
  • 让用户将精力集中在写代码本身,减少其他事务的影响
  • 支持云盘存储(beta版本)

Delivery

  • 如果北航云盘存储支持得比较完善,可以与学校的课程组合作作为某些课程的教学和考试平台
  • 能够在CSDN,CNblogs等平台上推广,向全国大学生推广,尤其是大一编程初学者和中学的信息学竞赛学生

用户量评估

在哪里发布软件?估计一周后用户量多少呢?

本项目为线上IDE,因此在线上网站上发布,估计第一周的访问量能够达到1100左右,注册的用户数量能达到200左右。

电梯演说

各位领导/合作伙伴:

现在市面上的各种IDE软件需要的配置各不相同,安装步骤麻烦,初体验都不太方便;而已有的部分线上IDE收费昂贵,服务器不在国内,对国内大学生都不太友好。我们的Visual Lab Online无需安装,没有设备依赖性,可以优化用户的初体验感受;可以自定义网盘路径,云端存储你的代码。想象一下,你可以随时随地拿起你的iPad或者笔记本或者手机就可以写代码测试代码,写好的代码又可以方便的存储到你的云端里,方便快捷令人身心愉悦。现如今社会是快节奏的社会,使用起来快捷方便又实用的软件必然能够拉拢人心。如果您对我们的项目感兴趣,欢迎同我们一起合作宣传我们的产品,我们不胜荣幸。

【BUAA软工】团队项目选择的更多相关文章

  1. [2019BUAA软工]团队项目选择

    Team V1 项目分析 写在前面 项目 内容 这个作业属于哪个课程 BUAA2019软件工程 这个作业的要求在哪里 团队项目选择 参考链接 如何提出靠谱的项目建议 NABCD 我们在这个课程的目标是 ...

  2. 敏杰开题——软工团队项目选择与NABCD分析

    这是一篇软件工程课程博客 Q A 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 团队项目选择 我们在这个课程的目标是 团队协作实践敏捷开发 这个作业在哪个具 ...

  3. “妈妈再也不用担心我忘交作业了!”——记2020BUAA软工团队项目选择

    写在前面 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任建) 这个作业的要求在哪里 团队项目选择 项目简介 项目名称:北航学生资源整合和作业提醒平台 项目内容: 设计实现一 ...

  4. [BUAA软工]团队贡献分博客

    Gamma阶段贡献分 Beta阶段贡献分 Alpha阶段贡献分 (博客最后部分) 复制过来: Alpha阶段 名字 角色 具体的可衡量的可验证的贡献 zpj PM,后端开发 博客X3 65 commi ...

  5. [BUAA软工]团队任务拆解

    团队任务分解 本次博客为项目alpha的任务拆解 WBS 任务估计 任务 时长(h) 语音模块:监听部分 5h 语音模块:消息处理:api 4h 语音模块:消息处理:内部数据结构 3h 语音模块:消息 ...

  6. [BUAA软工]第二次博客作业---结对编程

    [BUAA软工]结对作业 项目 内容 这个作业属于哪个课程 北航软工 这个作业的要求在哪里 2019年软件工程基础-结对项目作业 我在这个课程的目标是 学习如何以团队的形式开发软件,提升个人软件开发能 ...

  7. [BUAA软工]第一次结对作业

    [BUAA软工]结对作业 本次作业所属课程: 2019BUAA软件工程 本次作业要求: 结对项目 我在本课程的目标: 熟悉结对合作,为团队合作打下基础 本次作业的帮助:理解一个c++ 项目的开发历程 ...

  8. [BUAA软工]第1次阅读

    [BUAA软工]第1次阅读 本次作业所属课程: 2019BUAA软件工程 本次作业要求: 第1次个人作业 我在本课程的目标 熟悉和实践软件工程流程,适应团队开发 本次作业的帮助 帮助理解<构建之 ...

  9. [BUAA软工]第一次博客作业---阅读《构建之法》

    [BUAA软工]第一次博客作业 项目 内容 这个作业属于哪个课程 北航软工 这个作业的要求在哪里 第1次个人作业 我在这个课程的目标是 学习如何以团队的形式开发软件,提升个人软件开发能力 这个作业在哪 ...

  10. [BUAA软工]第零次博客作业---问题回答

    [BUAA软工]第0次博客作业 项目 内容 这个作业属于哪个课程 北航软工 这个作业的要求在哪里 第0次个人作业 我在这个课程的目标是 学习如何以团队的形式开发软件,提升个人软件开发能力 这个作业在哪 ...

随机推荐

  1. java例题_35 找到最大值和最小值并交换位置

    1 /*35 [程序 35 最大最小交换] 2 题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组. 3 */ 4 5 /*分析 6 * 1.先初始化一个数组,然后从键盘获得值 ...

  2. 《环形队列》游戏高《TPS》模式下减少cpu线程切换

    序言 什么高TPS?QPS,其实很多人都知道,还有人说大数据,大流量这些关键词夜以继日的出现在我们眼前: 针对高TPS,QPS这些词汇还有一个次可能比较陌生那就是CCU,tps,qps接受满天飞,CC ...

  3. 使用 Elastic 技术栈构建 Kubernetes全栈监控

    以下我们描述如何使用 Elastic 技术栈来为 Kubernetes 构建监控环境.可观测性的目标是为生产环境提供运维工具来检测服务不可用的情况(比如服务宕机.错误或者响应变慢等),并且保留一些可以 ...

  4. 仿VUE创建响应式数据

    VUE对于前端开发人员都非常熟悉了,其工作原理估计也都能说的清个大概,具体代码的实现估计看的人不会太多,这里对vue响应式数据做个简单的实现. 先简单介绍一下VUE数据响应原理,VUE响应数据分为对象 ...

  5. [Fundamental of Power Electronics]-PART II-7. 交流等效电路建模-7.4 规范电路模型

    7.4 规范电路模型 在讨论了推导开关变换器交流等效电路模型的几种方法后,让我们先停下来,说明下这些结果.所有的在 CCM下以PWM工作的DC-DC变换器都具有相似的基本功能.首先,他们在理想情况下, ...

  6. 【近取 key】NABCD分析

    项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 团队项目-NABCD分析 我在这个课程的目标是 提升工程能力和团队意识,熟悉软件开发的流程 这个作 ...

  7. oo第三单元——社交网络

    第三单元的作业背景是实现一个社交观关系模拟系统,主要训练了JML的阅读和理解能力,和图的一些数据结构和算法. JML语言的理论基础 JML相对于实现代码是比较抽象的,规定了方法的前提副作用结果.数据的 ...

  8. Unlink学习总结

    Unlink 本文参考了CTF-wiki 和glibc 源码 原理: 我们在利用 unlink 所造成的漏洞时,其实就是借助 unlink 操作来达成修改指针的效果. 我们先来简单回顾一下 unlin ...

  9. 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之镜像制作fedora27-18

    自动化kolla-ansible部署ubuntu20.04+openstack-victoria之镜像制作fedora27-18 欢迎加QQ群:1026880196 进行交流学习   制作OpenSt ...

  10. Day16_94_IO_循环读取文件字节流read()方法(二)

    循环读取文件字节流read()方法 通过read()循环读取数据,但是read()每次都只能读取一个字节,频繁读取磁盘对磁盘有伤害,且效率低. import java.io.FileInputStre ...