项目 内容
班级:北航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. ch2_8_1求解n阶螺旋矩阵问题

    思路:循环输出,注意边界控制 import java.util.Scanner; public class ch2_8_1求解n阶螺旋矩阵问题 { public static void main(St ...

  2. c++ 反汇编 局部静态变量

    vs2017下测试 34: for (int i = 0; i < 5; i++) 0029734E C7 45 F8 00 00 00 00 mov dword ptr [ebp-8],0 0 ...

  3. istio: 无法提供内部访问外部服务

    现象 能够内部无法访问外部服务. 在部署测试服务 kubectl apply -f samples/sleep/sleep.yaml 设置环境变量 export SOURCE_POD=$(kubect ...

  4. (七)Struts2Action访问Servlet API

    第一种方式: Struts2提供了一个ServletActionContext对象可以访问ServletAPI. 例如 HttpServletRequest request=ServletAction ...

  5. c++ 数组定义及初始化

    C ++提供了一种数据结构,即数组,该数组存储一个固定大小的由相同类型元素构成的顺序集合. 数组中的元素存储在一个连续内存位置中,元素可通过数组索引访问, 最低地址对应于第一个元素,最高地址对应于最后 ...

  6. 痞子衡嵌入式:同一厂商不同系列Flash型号下Dummy Cycle设置方法可能有差异 (以IS25LP064为例)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是同一厂商不同系列Flash型号下Dummy Cycle设置方法的差异. 上一篇文章 <在i.MXRT启动头FDCB里调整Flash ...

  7. springboot项目配置logback日志系统

    记录springboot项目配置logback日志文件管理: logback依赖jar包 SpringBoot项目配置logback理论上需要添加logback-classic依赖jar包: < ...

  8. Spring Cloud Alibaba(2)---RestTemplate微服务项目

    RestTemplate微服务项目 前言 因为要运用 Spring Cloud Alibaba 开源组件到分布式项目中,所以这里先搭建一个不通过 Spring Cloud只通过 RestTemplat ...

  9. BLUENRG-LP 学习笔记

    在学习 BLUENRG-LP 的过程中,及时地把碰到的问题记录下来,并作解答,形成本文档. 该文档会时时更新,并且当某些章节内容过多时,会独立出来,形成新的文章. BLUENRG-LP 的特性 芯片内 ...

  10. PostMessage xss学习和挖掘

    PostMessage xss很有趣,在国外出现了很多次,国内src/众测从没遇到过,挖到过.可能境界还不够,有机会再去试试.好几年前记得心血来潮学过一次,都是半知半解,后来因为重要性不高,不了了之了 ...