10 Star 21 Fork 4

沐鱼OwO / FisoaQwQ

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

前言

本项目是我毕设时候写的项目,主要目的是练习整个产品的全流程,从前期的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

开发环境

  • 操作系统:macOS@10.12.6
  • 数据库:Mysql@5.7 + Redis@4.0.1
  • 前端:React@15.6.1
  • 后端:Node@8.9.4
  • 服务端:阿里云ECS + 阿里云OSS (已废弃,采用本地环境)

项目技术栈

  • 前端: 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: '123456789@126.com',
      pass: 'password'
    },
    secure: true
  },
  mailOptions: (to, html) => ({
    from: 'Fisoa <123456789@126.com>',
    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

其他

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

The MIT License (MIT) Copyright (c) 2018 沐鱼QwQ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

Fisoa是一个基于React/Node的在线PC端问答社区产品,拥有类似知乎和头条的部分功能。主要实现的功能包括:文章书写与展示、图片处理、邮件发送服务、收藏评论、登录注册以及服务端渲染(SSR)等简单常见功能。最近正在讲API从Node迁移到Go。 展开 收起
JavaScript
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
JavaScript
1
https://gitee.com/iMofish/FisoaQwQ.git
git@gitee.com:iMofish/FisoaQwQ.git
iMofish
FisoaQwQ
FisoaQwQ
master

搜索帮助