Meteor + mantra + Reactjs 开发问答系统

2023-10-18 17:50

本文主要是介绍Meteor + mantra + Reactjs 开发问答系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Meteor + mantra + Reactjs 开发问答系统

使用最新的Meteor框架 + 用mantra和最流行的前端框架React实现wenda系统.

项目要求

功能模块前端设计页面功能点说明
用户模块登陆页面和个人页面 做温馨登陆和普通注册登录
用户用微信登陆并完善信息呢
登录之后跳转到个人页面并可完善个人信息
个人页面显示我关心的, 我回应的 ,我发表的问题列表
点击我关心, 我回应,我发表显示相应问题列表
从个人页面可以进入到其他人的个人页面
用户可发表问题,可对其它问题进行回答,关注
用户可对他人对于问题的答案进行点赞
用户进行加急问题的奖励金额提问者自定义
问题模块问题列表页面 问题分为普通问题和加急问题, 普通问题只显示问题描述,加急问题提问创建新问题时需要定义问题打赏的金额, 问题发布后2个小时内问题答案的赞数最多的一位自动获得此问题的打赏金额
按标签分类显示问题支持问题关键字搜索功能, 显示问题的发布者头像,昵称,问题标签, 问题描述,发布时间, 浏览量, 回答数,回答者的头像(无交互), 加急标签, 红包以及红包金额,提供问题的发起功能
问题列表页数据的优化处理
问题详情页面 显示提问者头像,时间,红包以及金额, 紧急标签,问题描述, 问题标签,多少人帮助过她,多少浏览量 , 多少人关心,回答者的头像


| | 2. 我来答跳转到回答页面, 帮你问提示分享

| | 3. 答案列表, 包括回答者头像, 昵称, 回答时间, 点赞数,回答内容,点击可进入到答案详情

| | 4. 答案详情页可对此答案进行点赞
| 问题编辑页面 | 1. 可选择普通问题或者加急问题, 可选问题标签,可定义加急问题的红包金额, 问题标题和详细描述
| 我来答页面 | 1. 输入框 , 可提交问题问题答案
微信支付和红包模块 | 需要支付以及红包页面 | 1. 微信支付功能
2. 微信红包功能
后台模块 | 后台页面 | 1. 可以对所有的问题进行删除操作

| | 2. 可以对所有的答案进行删除操作
| |
3. 可以对问题进行搜索功能

| | 4. 所有打赏的记录(包括打赏的问题, 提问者, 被打赏者,答案赞数,打赏金额)
| | 所有前端页面的HTML/CSS/JS实现及调整

开发流程

说明

Github传统的流程。也就是:
* 开发者各自fork项目的repo到自己Github账户下
* 每次开发同步到项目的repo然后开发
* push自己的开发分支到自己Github账户下面的fork的项目repo
* 发送pull request给项目管理员
* 等待review或者merge

分支规划

采用git remote add命令给自己本地的开发repo添加分支,我们用一下约定来处理分支的名字
* origin - 直接指向项目的repo
* dev_name - 指向自己fork出来的repo例如我的叫cooloney
* reaction - 指向reaction 原版的repo

具体操作

Fork 项目repo到自己Github账户(只需要setup一次)

  • 用自己账户登录Github
  • 进入wenda项目repo主页
  • 点击右上角的fork按钮
  • 1分钟不到,就会在自己的Github项目下面建立一个私有的项目

本地开发的配置(以我的账户示例,也只要setup一次)

  • 从wenda的项目repo clone最新的代码
git clone --recursive https://github.com/wangleihd/wenda.git
  • 添加自己fork的repo用来发布代码和发送pull request
cd wenda
git remote add youname https://github.com/youname/wenda.git
git fetch youname
git fetch origin
git checkout -b develop origin/develop (create a new branch for development)
git reset --hard origin/develop (reset the local branch to latest origin development branch)

开发流程(每次开发都要运行)

git rebase origin/develop (rebase local change onto origin development branch)
do some work ...
git commit changes
git push --force youname develop

发送pull request(每次push都需要)

  • 登录自己repo的Github主页
  • 点击pull request
  • 按照下图配置好pull request

screen shot 2015-10-06 at 12 23 08 am

Package Git使用指南

说明

  • 每一个Package也是一个单独的repo
  • 我们只是加入了那些我们需要修改的package,没有修改的package我们用reaction原版的代码。
  • 请登陆自己的Github账户fork相应的package repo到自己的Github账户

标准PR流程

以我的账号dev1为例,首先需要在master下Fork到自己账户下

首次运行,只需要运行一次

git clone https://github.com/dev1/h5.git
git remote add upstream https://github.com/master/h5.git
git checkout -b dev upstream/dev

每次都需要运行

git fetch upstream
git reset --hard upstream/dev

… work

git rebase upstream/dev
git push -f origin master

开发环境

下面我们使用到的开发环境及相关的版本号信息.

  • Meteor 1.4
  • Mantra
  • React 0.15
  • semantic-ui
  • flow-router

创建项目

首先我的项目创建在github上. 源码下载地址

使用mantra命令创建wenda项目, 在使用mantra前, 需要安装mantra.

  • 安装mantra工具
 $ npm install -g mantra-cli
  • 创建wenda项目

mantra会调用本地安装好的meteor进行创建项目, 然后再根据需求对项目进行规范化.

 $ mantra create wenda
删除没用的包
  • 删除meteor自带的包.
 $ meteor remove insecure
  • 删除默认的CSS
 $ meteor remove standard-minifier-css
  • 删除自动发布包, 这是测时使用, 实际开发的时候推荐使用, 他会把server的代码都发给client端.
 $ meteor remove autopublish
安装 React
 $ meteor npm install --save react react-dom$ meteor npm install --save react-mounter
安装 semantic ui
 $ meteor add semantic:ui juliancwirko:postcss less jquery
安装 facebook包
 $ meteor add accounts-facebook
安装 flow-router

安装命令:

 $ meteor add kadira:flow-router    $ meteor add kadira:dochead

需要在 package.json 加入:

{"devDependencies": {"autoprefixer": "^6.3.1"},"postcss": {"plugins": {"autoprefixer": {"browsers": ["last 2 versions"]}}}
}

然后再执行:

 $ meteor npm install
  • 需要执行下面的两步骤:

    1. 必须在项目中的client/lib/semantic-ui/目录下创建一个新的空文件custom.semantic.json, 注意需要特别提示不要改更目录名和文件名, 因为Meteor的规定. 然后执行 meteor.

参考下面的命令:

 $ pwd~/wenda$ touch  client/lib/semantic-ui/custom.semantic.json$ meteor
  1. 然后meteor启动后, 会再client/lib/semantic-ui/目录下自动创建一个.custom.semantic.json的隐藏文件, 需要先把meteor停掉. 然后删除这个meteor自动生成的文件.再重新启动meteor. 会再client/lib/semantic-ui/目录下创建出semantic-ui相应的文件. 如果

参考下在的命令:

 $ 按键盘上的 ctrl + c 停止 meteor.$ rm client/lib/semantic-ui/.custom.semantic.json$ meteor
  • 使用时需要用className.

参考

  • semantic 官网
  • semantic 中文
  • React 官网
  • React 中文
  • Meteor 官网
  • FlowRouter

这篇关于Meteor + mantra + Reactjs 开发问答系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/234214

相关文章

Windows系统宽带限制如何解除?

《Windows系统宽带限制如何解除?》有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文就跟大家一起来看看Windows系统解除网络限制的操作方法吧... 有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA