• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

FisoaQwQ: Fisoa是一个基于React/Node的在线PC端问答社区产品,拥有类似知乎和头条的 ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

FisoaQwQ

开源软件地址:

https://gitee.com/iMofish/FisoaQwQ

开源软件介绍:

前言

本项目是我毕设时候写的项目,主要目的是练习整个产品的全流程,从前期的prd到原型图,从项目架构到开发到优化等等,因此比较适合新人学习<( ̄ˇ ̄)/。Fisoa在我毕业答辩的时候是线上的网站,当时使用了阿里云的ECS和OSS,因此在代码中有一些上线相关的脚本和代码,现在租的阿里云服务器已经过期了,因此将上传接口全部打到本地了,所以会有一些无关的脚本和代码等,阅读的时候请略过ㄟ( ▔, ▔ )ㄏ。

请勿轻易将本项目用作商业领域!w(゚Д゚)w 毕竟是我半年多的劳动结果( ̄△ ̄;) 虽然是MIT的(´-ι_-`)如果有同学想当做毕设的话请多做修改~( ̄m ̄)(但是还是要提示小伙伴们毕设自己做哟~)

关于上传js、css到阿里云OSS服务器的脚本请参考scripts/makeVersionFile.js文件

关于koa2上传图片到OSS的接口请参考/node/utils/uploadImage.js文件(强行使用阿里云的sdk的koa1,加了一层co和Promise(・-・*))

  • 注:项目中的后台页面需要管理员权限才能登陆,第一个管理员权限需要在数据库里面更改,将注册后的用户的status更改为5即可,之后的用户权限可以在管理后台的用户管理中更改~( σ'ω')σ

  • 再注:开发的时候使用的是mac,因此不是很确定在windows环境下能不能运行起来,不过感觉问题应该不大,除了shell脚本之外好像没有什么关于系统的东西( >﹏<。)~

  • 最后注:如果有同学想要在阿里云的服务器上面玩耍的话,只需要按照config配置文件填写即可~如果有配置项不知道在哪里查看的话直接百度就可以了(๑>◡<๑)

  • 绝对没有注的注:求✨Star✨~~~( ͡° ͜ʖ ͡°)

  • 再有注我是狗:有什么问题直接留issue,但是可能回复的比较慢,如果我也不知道的那我就没有办法了(ÒωÓױ)呃!!!!

Fisoa项目

Fisoa是一个基于React/Node的在线PC端问答社区产品,拥有类似知乎和头条的部分功能┌|*´∀`|┘。主要实现的功能包括:文章书写与展示、图片处理、邮件发送服务、收藏评论、登录注册等简单常见功能(>人<;)。前端代码主要使用的antd库,但是后来发现打包体积太大了,因此逐步自己写了一些组件替代了antd的,不过没有完全替代,然后就,咕咕咕了(⊙⊙!)

项目概要

项目包括node层(node)、前端(public)两层代码。两层代码的依赖均在node_modules中,依赖项在package.json内。开发时请在IDE中开启Eslint插件。

Doing:

  • API迁移到Go

TODOS:

  • 分享文章功能实现
  • More

DONE

  • 文章详情页SSR(碰到太多的坑)
  • React升级16.3

开发环境

项目技术栈

  • 前端: React + Redux + Sass + Webpack + antd
  • 后端: Node.js + Koa2.0 + Pug
  • 数据: Mysql + Redis

项目目录

  • config: 存放各种配置文件(config.*.json), 本地部署时使用config.local.json
{  "server_port": 8089,  "debug": true,  "amplitudeToken": "xxxxxxxxxxxxxxxxxxxxx",  "picPath": "xxxxxxxxxxxxxxxxxx",  "localPath": "//localhost:3300/assets/",  "AccessKey": "x*****************x",  "AccessKeySecret": "G*****************************s",  "Bucket": "xxxxx",  "endPoint": "xxx-xx-xxx"}
  • public: 前端代码
  • node: node层代码
  • template: pug模板
  • static: 静态资源
  • test: 测试脚本(咕咕咕ヾ(´∀`o)+ 懒得写了)

依赖版本

  • node使用8.0.0以上版本
  • mysql使用5.7以上版本
  • redis使用3.0.2以上版本

关于邮件服务的说明

发送邮件使用的mailer库,配置文件参考/node/util/mailer/config.js文件

{  transport: {    host: 'smtp.126.com',    port: 465,    auth: {      user: '[email protected]',      pass: 'password'    },    secure: true  },  mailOptions: (to, html) => ({    from: 'Fisoa <[email protected]>',    to,    subject: '来自Fisoa的消息',    html  })};

以@126邮箱为例,auth填写你的登录信息,user用户名,pass是你的授权码而不是账号的密码,126中的授权码如截图所示~

管理后台

mailOptions中的html可以编写你要发送的邮件的内容和样式

启动方法

安装依赖

npm install

启动redis

请先安装redis,并配置环境变量

redis-server

启动数据库

请先安装数据库Mysql

首先在终端中创建数据库

create database db_fisoa;

调整node/lib/mysql/dev_config.js中的配置代码config.js文件为开发环境配置,已废弃

{  host: '127.0.0.1',  user: 'your mysql username',  password: 'your mysql password',  port: '3306',  database: 'db_name',  charset: 'utf8mb4_unicode_ci'};

运行生成数据表代码node ./scripts/create-mysql.js

注:如果文章中带有imoji时发布失败,请将数据库的编码格式调成utf8mb4。代码中默认是utf8mb4一般情况下不需要再次调整。

启动node开发环境

npm run start

启动前端开发环境

npm run startfe

生产环境启动node(不需要此步了)

项目从线上环境下线之后不需要此步了,有兴趣的可以玩玩npm run build

生产环境改为pm2方式启动node,启动完成之后可以简单通过以下指令查看具体指令请通过查看官方文档查看 QuickStart

若没有安装全局pm2插件npm install -g pm2,请使用node_modules/pm2/bin/pm2来调用

指令作用
pm2 start app.js通过pm2启动node服务器
pm2 logs [name]查看node的实时日志
pm2 list [name]查看进程的详细信息

数据统计

数据统计使用amplitude平台,如果需要的话,请自己在amplitude上注册账号,并替换/template/common/counter.pug中的sdk

关于错误日志

开发过程中node打印的日志请到./logs目录中查看

项目截图

等我之后想起来再上传━━( ̄ー ̄*|||━━

---------------想起来了!------------------

1.网站首页

网站首页

2.文章编辑

文章编辑

3.提问

提问

4.个人空间

个人空间

5.文章管理

文章管理

6.文章详情页

文章详情页

7.管理后台

管理后台

8.404

404

其他

应该没有其他要说的把。(゚ー゚)


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap