项目 内容
班级:北航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. salesforce零基础学习(一百零二)Limitation篇之 CPU Limit

    本篇参考: https://help.salesforce.com/articleView?id=000339361&type=1&mode=1 https://developer.s ...

  2. JAVA面试-计算机网络-TCP三次握手

    学习原因 这个是面试的一个常问热点,所以务必要掌握. 通俗示例 小红是人事部门的员工,现在正在招收IT人员,小明看到招聘信息和待遇,感觉很适合自己,所以准备和小红发消息了解具体情况.而简历在本故事中代 ...

  3. 封装一个postMessage库,进行iframe跨域交互

    这是近期个人在开发chrome插件时的其中一个小总结.还有很多没有总结出来.因为目前插件还在迭代中,(herry菌插件,用于B站C站),属于个人业余的一个小项目.还有很多功能没有实现,以及还需要再看能 ...

  4. 闲来无事,在微信推文中看到一个炫酷的具有动态特效的中国地图,是用R语言做的,于是尝试了一下

    目录 最终的效果图如下: 1.环境准备 2.需要安装的包: 3.进一步配置: end 最终的效果图如下: 1.环境准备 既然是用R语言作图,那么这几个软件是一定需要安装的: R语言的编译器:https ...

  5. docker部署kafka集群

    利用docker可以很方便的在一台机子上搭建kafka集群并进行测试.为了简化配置流程,采用docker-compose进行进行搭建. kafka搭建过程如下: 编写docker-compose.ym ...

  6. 第3 章 : Kubernetes 核心概念

    Kubernetes 核心概念 本文整理自 CNCF 和阿里巴巴联合举办的云原生技术公开课的课时 3:Kubernetes 核心概念.本次课程中,阿里巴巴资深技术专家.CNCF 9个 TCO 之一 李 ...

  7. CrashLoopBackOff的解决办法之一

    问题来源 # kubectl get pods -n assembly NAME READY STATUS RESTARTS AGE alertmanager-858b7749c5-6jsfh 0/1 ...

  8. Istio安全-证书管理(实操一)

    Istio安全-证书管理 目录 Istio安全-证书管理 插入现有CA证书 插入现有证书和密钥 部署Istio 配置示例services 校验证书 卸载 Istio的DNS证书管理 DNS证书的提供和 ...

  9. [Fundamental of Power Electronics]-PART I-6.变换器电路-6.1 电路演化

    6.1 电路演化 第一章使用基本原理构建了buck变换器(图6.1).开关可以降低电压直流分量,低通滤波器可消除开关纹波.在CCM下,buck变换器的变换比为\(M=D\).buck变换器是最简单的, ...

  10. JS基础学习第二天

    类型转换 类型转换就是指将其他的数据类型,转换为String Number 或 Boolean 转换为String 方式一(强制类型转换): 调用被转换数据的toString()方法例子:var a ...