Skip to content

Commit

Permalink
add 编程导航多项目开源
Browse files Browse the repository at this point in the history
  • Loading branch information
yupili committed Jan 19, 2021
1 parent 033d19a commit 28f6b42
Show file tree
Hide file tree
Showing 443 changed files with 107,362 additions and 160 deletions.
202 changes: 43 additions & 159 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,47 +1,55 @@
# 编程导航

> 最专业灵活的导航站点,发现优质编程学习资源!微信公众号『 编程导航 』
> 最专业灵活的编程导航站,发现优质编程学习资源!微信公众号『 编程导航 』
在线网站:https://www.code-nav.cn
包含多个子项目,都开源给大家学习,使用这套代码,你也能轻松开发多端适配网站!

编程导航主站 - 发现优质编程资源:https://www.code-nav.cn

编程导航主页 - 程序员必备主页:https://home.code-nav.cn

本项目是『 编程导航 』网站的开源版本,使用这套代码,你也能轻松开发多端适配网站!

**当然目前代码中保留了部分业务隐私,后续会逐渐公开~**
编程导航文档 - 项目使用指南和详情:https://doc.code-nav.cn

<br/>

## 项目展示

![编程导航](./doc/codeNav.png)
[编程导航主站 - 发现优质编程资源](https://www.code-nav.cn)

![推荐资源](https://636f-codenav-8grj8px727565176-1256524210.tcb.qcloud.la/assets/code-nav-recommend.png)

[编程导航主页 - 程序员必备主页](https://home.code-nav.cn)

![轻松生成你的专属炫酷主页](./doc/codeNavSelf.png)
![透明主页](https://636f-codenav-8grj8px727565176-1256524210.tcb.qcloud.la/assets/code-nav-home.png)

<br/>

## 写在前面

总是有很多学编程的朋友问我 “有没有学 xx 的资源”、“我需要 xx 资源,能发我一份么”。

在重复接收到这样的讯息后,我发现如今编程资源获取的大环境雾气重重,有一些不太好的现象:
在重复接收类似讯息后,我陷入深思。

1. 很多名不副实的编程资源被捧上了天,一叶障目
2. 好的编程资源被商业利益化,利用信息差,将本来免费的资源进行贩卖
如今编程资源获取的大环境雾气重重,有很多不太好的现象:

1. 很多名不副实的编程资源被捧上了天,名人效应、一叶障目
2. 好的编程资源被商业利益化,很多人利用信息差,将本来免费的资源进行贩卖
3. 好的编程资源由于作者不出名,没有被人发现
4. 网上的编程资源非常零散,真实性、有效性很不确定

意识到这些问题后,作为一个开发者,我可以做些什么?继续去网上搜好的资源,然后传到网盘上,分享给大家?
意识到这些问题后,作为一个开发者,我可以做些什么? 继续去网上搜好的资源,然后传到网盘上,分享给大家?

一个人的力量终归渺小,好的编程资源环境需要大家的共同努力。

一个人的力量终归是渺小的,好的编程资源环境需要大家的共同努力。
这是『 编程导航 』问世的原因:**提供人人皆可推荐的编程资源导航平台,帮助大家发现优质编程资源。**

**这是『 编程导航 』问世的原因,提供一个人人皆可推荐的编程资源导航平台,帮助大家发现优质编程资源。**
本质是 **资源碎片 => 列表化 => 文档化 => 系统化** 的过程。就像准备复习面试题一样,有人给你分享单一的面试题目(碎片)、有人分享题目列表(列表化)、有人分享一本面试小书(文档化),而这些在灵活性上远远不如一个 “可搜索”、“可复用”、“可量化” 、“可定制” 的 **资源系统**

本质是 **资源碎片 => 列表化 => 文档化 => 系统化** 的过程。就像准备复习面试题一样,有人给你分享单一的面试题目(碎片)、有人分享题目列表(列表化)、有人分享一本面试小书(文档化),而这些在灵活性上远远不如一个 “可搜索”、“可复用”、“可量化” 、“可定制” 的**资源系统**
**想象一下,当你想要学习算法时,在系统上轻轻一点,优质算法学习资源尽收眼底,不是很棒么?**

**想象一下,当你想要学习算法时,在系统上轻轻一点,所有的优质算法学习资源尽收眼底,不是很棒么?**
作者在腾讯顶着上班的压力,熬了一个月的大夜,终于完成了基础版本,欢迎大家体验、推荐资源、提出意见!

作者现在就职腾讯,是一名全栈开发工程师,顶着上班的压力,熬了一个月的大夜,终于做出了一个基础版本,欢迎大家体验、推荐资源、提出意见!觉得不错的话,分享给身边的朋友吧~
整个项目也开源给大家,可供学习。觉得不错的话,求个 star、分享给身边的朋友吧,这对我非常重要 😭 有你们的支持才有前进的动力!

<br/>

Expand All @@ -57,168 +65,44 @@

<br/>

## 已有功能

1. 优质资源推荐
2. 资源全局搜索
3. 资源添加
4. 资源详情及相似推荐
5. 个人主页,兴趣设置
6. 喜欢、分享
7. 生成定制主页
8. 一键登录

<br/>

## 快速开始

**请保证 Node.js 版本 > 10** ⚠️

1. 下载项目到本地

```bash
git clone https://github.com/liyupi/code-nav.git
```

2. 安装依赖

```bash
npm install
```

3. 本地启动项目

```bash
npm run start
```

4. 点击右下角 `Umi UI` 按钮,可快速新建页面,海量模板供选择。



![仅开发环境可见的 Umi UI 按钮](./doc/umiButton.png)

![从模板新建页面](./doc/umiTmp.png)

如果模板图标无法加载,请在本地配置 hosts:`151.101.64.133 raw.githubusercontent.com`

**新建页面后,如果要在菜单列表中显示,要在 `config/menu.tsx` 中添加配置。**

5. 打包构建

```bash
npm run build
```

会生成 dist 目录,可以通过 [serve 工具 ](https://www.npmjs.com/package/serve)本地启动 server 快速浏览。

6. 部署

提供多种部署方式:

1. 容器(推荐):项目已提供 `Dockerfile` 可以轻松构建 `Docker` 镜像,并将容器部署在[云托管服务](https://cloud.tencent.com/document/product/876/46901)中,实现动态扩缩容。
2. 目录:直接将 `dist` 目录放到 `Nginx` 等 web 服务器上,配置 `nginx.conf` 即可。
3. 静态站点托管:可以直接将 `dist` 目录发布到[静态站点托管](https://cloud.tencent.com/document/product/876/46900)中,有 CDN 支持

<br/>

## 技术栈
## 项目生态

### 前端
编程导航不仅仅是一个项目,而是以 "帮助大家发现优质编程资源,提升效率" 为目标的完整生态。

前端使用 [Ant Design Pro V4](https://pro.ant.design/docs/getting-started-cn/) 后台管理模板,提升了百倍开发效率,**但是也踩了不少坑**~
1. [编程导航主站](https://www.code-nav.cn) 🏡

1. [Umi](https://umijs.org/zh-CN) + React 前端框架
2. [Ant Design](https://ant.design/index-cn) 组件库 + [Ant Design Pro 高级组件](https://procomponents.ant.design/components)
3. [Dva](https://dvajs.com/) 数据状态管理
4. [Less](http://lesscss.cn/) CSS 预处理语言
5. TypeScript 静态类型检查
发现优质编程学习资源。可以检索自己需要的资源、分享好的资源,并对他人推荐的资源进行评价。好的资源会被更多人发现,让更多同学感受到技术带来的美好。

2. [编程导航主页](https://home.code-nav.cn) 🔍

极简的浏览器主页,支持万能搜索,提升效率,还可以定制壁纸和主页站点。

### 后端
3. [审核中心](https://doc.code-nav.cn/project/code-nav-review) 👮

后端使用 [腾讯云云开发](https://cloud.tencent.com/product/tcb),全量上云,充分利用了腾讯云提供的云计算能力
提供资源、评论等内容的审核功能

1. 云数据库:配合 SDK 使用,无需编写重复的增删改查,提高开发效率,自动备份
2. 云存储:配合 SDK 使用,易接入
3. 云函数:开发复杂的函数,Serverless 架构,无需自行管理,可开放 Http 访问服务
4. 云托管:容器技术,弹性伸缩、动态扩缩容
5. 腾讯云 CMS 开箱即用的后台管理
4. [编程导航文档](https://doc.code-nav.cn) 📚

<br/>
编程导航项目的使用指南和详细介绍。

## 目录结构

```
.
├── Dockerfile 容器构建文件
├── Dockerfile.build 容器构建文件(包含 npm 打包流程)
├── README.md 项目说明
├── cloudbaserc.json 腾讯云云开发文件,需要用 tcb 根据自己的环境生成
├── cloudfunctions 后端云函数
│   └── helloworld
├── config 配置
│   ├── config.ts 全局配置
│   ├── defaultSettings.ts 框架默认设置
│   ├── menu.tsx 菜单列表
│   ├── proxy.ts 代理
│   └── routes.ts 定义路由
├── docker 容器所需配置文件
│   └── nginx.conf 服务器配置
├── jsconfig.json 编译配置
├── mock 假数据
│   ├── forms.ts
│   ├── resources.ts
│   ├── tags.ts
│   └── user.ts
├── package.json 包管理文件
├── public 公共目录
│   └── logo.png
├── src 前端项目主目录
│   ├── assets 资源文件
│   ├── cardList.less 卡片样式
│   ├── components 组件
│   ├── constant 常量
│   ├── global.less 全局样式
│   ├── global.tsx 全局入口
│   ├── layouts 布局
│   ├── manifest.json
│   ├── models 数据模型
│   ├── pages 页面
│   ├── service-worker.js 缓存
│   ├── services 业务请求
│   ├── tcb.js 腾讯云云开发 SDK
│   ├── typings.d.ts 类型定义
│   └── utils 工具
└── tsconfig.json
```
5. [微信公众号服务端](https://doc.code-nav.cn/project/code-nav-mp-server) 💻

<br/>
对接编程导航公众号,提供获取动态码、关注回复、动态菜单等功能。

## 测试
6. [编程导航微信公众号](https://doc.code-nav.cn/author)

1. 前端使用 “伪 Mock 数据” 测试,如果使用 `UMI UI` 新建页面,框架将提供真实 Mock 测试数据。
2. 如果使用腾讯云开发,可以在本地通过 `tcb` 命令测试云函数
定期分享、介绍和评测优质编程资源,不要错过!

```bash
tcb fn run --name <functionName> --params <JSON params>
```

<br/>

## 开发技巧

1. 使用全局 `LoadingLayout` 实现云开发、自动登录等前置条件加载
7. 编程导航小程序(特喵的没过审,待调整)

<br/>

## 版本

| 日期 | 版本 | 开源率 | 详情 |
| ------------------- | ---------- | ------ | -------- |
| 2021 年 01 月 10 日 | 0.0.1 内测 | 70% | 首次开源 |

| 日期 | 版本 | 详情 |
| ------------------- | ---------- | ------------------------------------------------ |
| 2021 年 01 月 10 日 | 0.0.1 内测 | 编程导航主站基本功能完成 |
| 2021 年 01 月 20 日 | 0.0.2 公测 | 编程导航主站、编程导航主页、微信服务端上线,开源 |

<br/>

Expand Down
File renamed without changes.
4 changes: 4 additions & 0 deletions code-nav-doc/.fatherrc.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
export default {
esm: 'rollup',
cjs: 'rollup',
};
25 changes: 25 additions & 0 deletions code-nav-doc/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/npm-debug.log*
/yarn-error.log
/yarn.lock
/package-lock.json

# production
/dist
/docs-dist

# misc
.DS_Store

# umi
.umi
.umi-production
.umi-test
.env.local

# ide
/.vscode
/.idea
7 changes: 7 additions & 0 deletions code-nav-doc/.prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
**/*.svg
**/*.ejs
**/*.html
package.json
.umi
.umi-production
.umi-test
11 changes: 11 additions & 0 deletions code-nav-doc/.prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"singleQuote": true,
"trailingComma": "all",
"printWidth": 80,
"overrides": [
{
"files": ".prettierrc",
"options": { "parser": "json" }
}
]
}
22 changes: 22 additions & 0 deletions code-nav-doc/.umirc.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import {defineConfig} from 'dumi';

export default defineConfig({
title: '编程导航',
favicon: 'https://636f-codenav-8grj8px727565176-1256524210.tcb.qcloud.la/img/1610990261129-favicon.png',
logo: 'https://636f-codenav-8grj8px727565176-1256524210.tcb.qcloud.la/img/1610990216593-logo.3c8859f8.png',
outputPath: 'docs-dist',
mode: 'site',
analytics: {
baidu: 'eb44917eec45fb8f09c3ae111c5e62bc',
},
metas: [
{
name: 'keywords',
content: '编程,程序员,导航,资源,主页,编程导航'
},
{
name: 'description',
content: '编程导航,文档,最专业的程序员导航网站,发现优质编程学习资源,定制你的程序员必备主页,公众号编程导航'
},
],
});
27 changes: 27 additions & 0 deletions code-nav-doc/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# code-nav-doc

## Getting Started

Install dependencies,

```bash
$ npm i
```

Start the dev server,

```bash
$ npm start
```

Build documentation,

```bash
$ npm run docs:build
```

Build library via `father-build`,

```bash
$ npm run build
```
27 changes: 27 additions & 0 deletions code-nav-doc/docs/Author/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
nav:
title: 作者
path: /author
order: 6
toc: menu
---

# 关于作者

作者正在腾讯打工,是一名全栈工程师,致力技术分享。

全网 ID:程序员鱼皮、编程导航

## 联系作者

项目贡献、合作共进、交个朋友,戳作者微信叭,请备注来意!(上班比较忙未及时回复还请见谅)

**编程导航微信**

![编程导航微信](https://636f-codenav-8grj8px727565176-1256524210.tcb.qcloud.la/assets/wechat.jpg)

**编程导航公众号**

![编程导航公众号](https://636f-codenav-8grj8px727565176-1256524210.tcb.qcloud.la/assets/qrcode.jpg)


6 changes: 6 additions & 0 deletions code-nav-doc/docs/GitHub/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
nav:
title: GitHub
path: https://github.com/liyupi/code-nav
order: 7
---
Loading

0 comments on commit 28f6b42

Please sign in to comment.