【BUAA软工】团队项目选择
项目 | 内容 |
---|---|
班级:北航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软工】团队项目选择的更多相关文章
- [2019BUAA软工]团队项目选择
Team V1 项目分析 写在前面 项目 内容 这个作业属于哪个课程 BUAA2019软件工程 这个作业的要求在哪里 团队项目选择 参考链接 如何提出靠谱的项目建议 NABCD 我们在这个课程的目标是 ...
- 敏杰开题——软工团队项目选择与NABCD分析
这是一篇软件工程课程博客 Q A 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 团队项目选择 我们在这个课程的目标是 团队协作实践敏捷开发 这个作业在哪个具 ...
- “妈妈再也不用担心我忘交作业了!”——记2020BUAA软工团队项目选择
写在前面 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任建) 这个作业的要求在哪里 团队项目选择 项目简介 项目名称:北航学生资源整合和作业提醒平台 项目内容: 设计实现一 ...
- [BUAA软工]团队贡献分博客
Gamma阶段贡献分 Beta阶段贡献分 Alpha阶段贡献分 (博客最后部分) 复制过来: Alpha阶段 名字 角色 具体的可衡量的可验证的贡献 zpj PM,后端开发 博客X3 65 commi ...
- [BUAA软工]团队任务拆解
团队任务分解 本次博客为项目alpha的任务拆解 WBS 任务估计 任务 时长(h) 语音模块:监听部分 5h 语音模块:消息处理:api 4h 语音模块:消息处理:内部数据结构 3h 语音模块:消息 ...
- [BUAA软工]第二次博客作业---结对编程
[BUAA软工]结对作业 项目 内容 这个作业属于哪个课程 北航软工 这个作业的要求在哪里 2019年软件工程基础-结对项目作业 我在这个课程的目标是 学习如何以团队的形式开发软件,提升个人软件开发能 ...
- [BUAA软工]第一次结对作业
[BUAA软工]结对作业 本次作业所属课程: 2019BUAA软件工程 本次作业要求: 结对项目 我在本课程的目标: 熟悉结对合作,为团队合作打下基础 本次作业的帮助:理解一个c++ 项目的开发历程 ...
- [BUAA软工]第1次阅读
[BUAA软工]第1次阅读 本次作业所属课程: 2019BUAA软件工程 本次作业要求: 第1次个人作业 我在本课程的目标 熟悉和实践软件工程流程,适应团队开发 本次作业的帮助 帮助理解<构建之 ...
- [BUAA软工]第一次博客作业---阅读《构建之法》
[BUAA软工]第一次博客作业 项目 内容 这个作业属于哪个课程 北航软工 这个作业的要求在哪里 第1次个人作业 我在这个课程的目标是 学习如何以团队的形式开发软件,提升个人软件开发能力 这个作业在哪 ...
- [BUAA软工]第零次博客作业---问题回答
[BUAA软工]第0次博客作业 项目 内容 这个作业属于哪个课程 北航软工 这个作业的要求在哪里 第0次个人作业 我在这个课程的目标是 学习如何以团队的形式开发软件,提升个人软件开发能力 这个作业在哪 ...
随机推荐
- 竖式问题(JAVA语言)
package 第三章; import java.util.Scanner; public class 竖式问题 { public static void main(String[] args) { ...
- Go 语言入门教程,共32讲,6小时(已完结)
Go语言入门教程,共32讲,6小时(完结) 在B站:https://www.bilibili.com/video/BV1fD4y1m7TD/
- 力扣 - 208. 实现Trie(前缀树)
目录 题目 思路 代码 复杂度分析 题目 208. 实现 Trie (前缀树) 思路 在我们生活中很多地方都用到了前缀树:自动补全,模糊匹配,九宫格打字预测等等... 虽然说用哈希表也可以实现:是否出 ...
- 显示IPC信息--ipcs
ipcs 显示共享内存,消息队列, 信号量全部的IPC ipcs -q ...
- 从零搭建一个IdentityServer——会话管理与登出
在上一篇文章中我们介绍了单页应用是如何使用IdentityServer完成身份验证的,并且在讲到静默登录以及会话监听的时候都提到会话(Session)这一概念,会话指的是用户与系统之间交互过程,反过来 ...
- 【观隅】数据集管理与可视化平台-NABCD分析
项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任健) 这个作业的要求在哪里 团队项目-初次邂逅,需求分析 项目介绍 观隅 数据集管理与可视化平台(取"观一隅而知全局" ...
- ansible:playbook详解
Blog:博客园 个人 概述 playbook是由一个或者多个play组成的列表. 主要功能是将预定义的一组主机装扮成事先通过ansible中的task定义好的角色.task实际是调用ansible的 ...
- C语言-字符串函数的实现(二)之strcpy
C语言中的字符串函数有如下这些 获取字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数 strncpy strncat strncmp ...
- JDBC_15_悲观锁和乐观锁
悲观锁和乐观锁 并发控制 当程序中可能出现并发操作的情况时,就需要保证在并发操作的情况下数据的准确性,以此确保当前用户和其他用户一起操作时,所得到的结果和某个用户单独操作时的结果是一样的.这种手段就叫 ...
- 【Spring】SpringIoC大致流程
目录 SpringIoC 是什么? 类图 大致过程 源码分析 SpringIoC 是什么? 官方文档的解释是:IoC也称为依赖注入(DI).在此过程中,对象仅通过构造函数参数,工厂方法的参数或在构 ...