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

相关文章

Android开发中gradle下载缓慢的问题级解决方法

《Android开发中gradle下载缓慢的问题级解决方法》本文介绍了解决Android开发中Gradle下载缓慢问题的几种方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、网络环境优化二、Gradle版本与配置优化三、其他优化措施针对android开发中Gradle下载缓慢的问

CSS3 最强二维布局系统之Grid 网格布局

《CSS3最强二维布局系统之Grid网格布局》CS3的Grid网格布局是目前最强的二维布局系统,可以同时对列和行进行处理,将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局,本文介... 深入学习 css3 目前最强大的布局系统 Grid 网格布局Grid 网格布局的基本认识Grid 网

使用Go语言开发一个命令行文件管理工具

《使用Go语言开发一个命令行文件管理工具》这篇文章主要为大家详细介绍了如何使用Go语言开发一款命令行文件管理工具,支持批量重命名,删除,创建,移动文件,需要的小伙伴可以了解下... 目录一、工具功能一览二、核心代码解析1. 主程序结构2. 批量重命名3. 批量删除4. 创建文件/目录5. 批量移动三、如何安

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

基于Python开发PPTX压缩工具

《基于Python开发PPTX压缩工具》在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,不便于传输和存储,所以本文将使用Python开发一个PPTX压缩工具,需要的可以了解下... 目录引言全部代码环境准备代码结构代码实现运行结果引言在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.