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

相关文章

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

Python中对FFmpeg封装开发库FFmpy详解

《Python中对FFmpeg封装开发库FFmpy详解》:本文主要介绍Python中对FFmpeg封装开发库FFmpy,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、FFmpy简介与安装1.1 FFmpy概述1.2 安装方法二、FFmpy核心类与方法2.1 FF

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断