一体化的知识、信息、日程、时间和事件管理系统,主要包括以下几个模块
- Brainhole: 系统的后端
- Horizon: 系统前端,用于数据的查询和展示
- Inflow: 配套的爬虫系统,用于信息收集
- Lightcone: 时间、日程管理系统,同时用于所有数据在时间轴上的可视化
- design: 系统设计笔记和特性开发管理
- brainhole: brainhole后端的开发目录
- config.js: 项目整体参数配置文件
- database, data: 储存数据库和数据文件的默认目录,可在config.js中更改
- dev-scripts: 项目开发、运行、调试相关脚本
- makefile: 项目开发、运行、调试相关命令
- package.json: 仅仅安装了babel相关依赖,用来进行js语法转换
- 前端和后端部分采用ES2015+ 语法,为了兼容性,使用babel进行转换
- 使用concurrently和nodemon自动监视相关文件夹,实现热重载
- 后端部分可在chrome://inspect中通过12345端口来debug(可通过.inspect-port.txt文件调整)
- 入口文件中我们有
var d = global.d = {}
- 则可以在任何文件中令
d.x = x
- 于是我们可以在chrome的console中使用
d.x
对x进行浏览和debug
- 入口文件中我们有
- 依赖安装
npm i
cd brainhole; npm i
- 运行各个组件
- make database
- 根据configs/config.js中的信息运行数据库
- make brainhole-watch
- 打开babel, 监视相应源代码目录, 进行语法转换
- make brainhole-dev
- 监视brainhole/server目录(此文件由babel对brainhole/server-src进行语法转换得到)
- 运行入口文件index.js
- make database
- 使用
make tmux
可以在tmux中一次性运行上述组件(推荐) - 打开http://127.0.0.1:3000
- debug
- 打开chrome, 输入chrome://inspect
- Discover network targets => Configure
- 增加 127.0.0.1:12345
- 现在可以看到运行着的后端
- 打开控制台, 全局变量d中记录着需要debug的东西
- Discover network targets => Configure
- 打开chrome, 输入chrome://inspect
项目还在开发初期. 后端还没写完,前端一点没动...
- 程序最终会是跨平台的, windos, linux 和mac都支持
- 目前我的开发环境为linux, 所以所有的开发配置脚本都是基于linux平台的
- 对于windows用户,肯定会做最大程度的封装,到时候鼠标双击一下就可以运行
预计开发时长: 半年以上(因为是个人的业余项目)