摘 要
开源社区是开发者创建和交换编码知识的共同体,有利于知识交流。然而从各种知名技术峰会报名的火热程度来看,纯粹的线上开源社区已经无法满足广大互联网从业人员的交流需求,专注连接线上线下各类社区资源任务的重要程度也愈发重要。
同时,因开源社区相关产品商业化难度高等原因,现阶段国内外绝大多数相关的互联网产品虽然专注解决了整个开源社区生态的一部分——如代码协作平台
“Github”专注线上代码协作、活动报名平台“活动行”专注活动宣传与签到、表单制作平台“金数据”专注表单制作与分享、编程挑战平台“freeCodeCamp”专注线上过关式答题挑战、面试考试平台“牛客网”专注为成员提供各大互联网公司面试题、博客分享平台“CSDN”专注技术博文分享与交流等——这些平台多而庞杂且整合起来较为繁琐,给国内外各大因开放源代码精神而相聚成立的公益性开源社区的城市志愿者们在诸多的社区运营事宜面前带来了很多困扰,无法更好地集中社区资源,以促进具有差异化的城市互联网乃至整个互联网行业发展。
在此背景下,本文将通过寻找正确的开源社区协作模式,来构建一个基于跨平台技术搭建的、能专注服务本地城市内的广大互联网从业人员、并能及时对接城市内各类社会组织(如互联网企业、需要互联网产品的公益组织、高校教研机构、重视信息化发展的政府部门等)的开源社区运营管理系统。
关键词:开源社区; 内容管理系统; 跨平台; TypeScript; Vue.js; Vuetify.js; Material Design; Nest.js; TypeORM; Electron
ABSTRACT
Open source community is a community for developers to create and exchange coding knowledge. However, from the hot degree of registration for various well-known technology summits, the pure online open source community has been unable to meet the communication needs of the vast number of Internet practitioners, and the importance of focusing on connecting online and offline community resources tasks is becoming more and more important.
At the same time, due to the difficulty of commercialization of open source community-related products, the vast majority of related Internet products at home and abroad at this stage have focused on solving a part of the whole open source community ecology, such as code collaboration platform "Github" focused on online code collaboration, Activity Registration Platform "Huo Dong Xing" focused on activity publicity and check-in, form production platform "Jin Shu Ju" focused form. Single- production and sharing, programming challenge platform "freeCodeCamp" focus on online pass-through challenges, interview and examination platform "Niu Ke Wang" focus on providing members with interview questions of major Internet companies, blog sharing platform "CSDN" focus on technology blog sharing and exchange, etc. - These platforms are numerous and complex, and the integration is more cumbersome, which give the major domestic and foreign due to the spirit of open source code. The urban volunteers of the public-spirited open-source community gathered together have brought many troubles in the face of many community operations, and can not better concentrate community resources to promote the development of the differentiated urban Internet and even the entire Internet industry.
In this context, this paper will build a cross-platform technology-based and dedicated service for the vast number of Internet practitioners in local cities, and can timely connect with various types of social organizations in the city (such as Internet enterprises, public welfare organizations requiring Internet products, university teaching and research institutions, government departments attaching importance to the development of information technology). Open source community operation management system.
Key words:Open Source Community; Content Management System; Cross-platform; TypeScript; Vue.js; Vuetify.js; Material Design; Nest.js; TypeORM; Electron
目 录
第一章 概述 1
1.1课题背景 1
1.2国内外研究现状 1
1.3课题研究目标 2
1.4本文内容安排 2
第二章 系统需求 3
2.1业务需求 3
2.2系统功能需求 3
2.2.1登录 5
2.2.2找回密码 5
2.2.3管理个人资料 5
2.2.4管理部门 5
2.2.5管理成员 6
2.2.6管理导航 6
2.2.7管理角色 6
2.2.8管理活动 7
2.2.9管理项目 7
2.2.10管理群聊 7
2.2.11管理三方平台 7
2.2.12管理账号 8
2.2.13管理讲师 8
2.2.14管理场地 8
2.2.15管理赞助 9
2.2.16管理主题 9
2.2.17管理单位 9
2.2.18管理校园 10
2.3系统非功能需求 10
2.3.1界面的美化 10
2.3.2良好的兼容性 10
第三章 系统设计 12
3.1设计决策 12
3.1.1前端开发语言与工具选择 12
3.1.2后台开发语言与工具选择 12
3.1.3数据库选择 13
3.2体系结构设计 13
3.2.1逻辑架构 13
3.2.2开发架构 14
3.2.3物理架构 16
3.3权限模块设计 16
3.3.1需要授权的操作 16
3.3.2具体权限组设计 17
3.4界面/接口设计 18
3.4.1仪表盘及导航条设计 18
3.4.2通用 UI 组件设计 19
3.4.3Web 接口设计 20
3.5数据存储设计 22
3.5.1数据库模型设计 22
3.5.2数据表设计 22
3.6业务模块设计 27
3.6.1登录模块设计 27
3.6.2找回密码模块设计 27
3.6.3管理讲师模块设计 28
第四章 系统开发 29
4.1开发环境 29
4.2关键技术 29
4.2.1Vue.js 中处理前端数据流的良好方式 29
4.2.2选择良好的服务端框架提供资源鉴权访问接口 30
4.2.3使用代码生成数据表并处理数据库实体关系 31
4.3开发成果 31
4.3.1核心运营管理 32
4.3.2社区服务管理 33
4.3.3平台资源管理 34
第五章 系统测试 35
5.1测试设计 35
5.1.1测试环境 35
5.1.2测试覆盖设计 35
5.2测试用例及测试记录 35
5.2.1登录模块测试 36
5.2.2找回密码模块测试 36
5.2.3管理讲师模块测试 37
5.3测试结果及结论 38
5.3.1测试用例执行情况 38
5.3.2软件缺陷分析 39
5.3.3测试结论 39
第六章 总结与展望 40
6.1本文工作总结 40
6.2未来工作展望 40
致 谢 41
参考文献 42