Skip to content

Instantly share code, notes, and snippets.

@luxiaojian
luxiaojian / gulpfile.js
Last active August 29, 2015 14:18
my gulpfile.js
var gulp = require('gulp');
var wiredep = require('wiredep');
var browserSync = require('browser-sync');
var reload = browserSync.reload;
var $ = require('gulp-load-plugins')();
var config = {

sassPath: './resources/sass',

bowerDir: './bower_components'

}

mathclub是最近做的一个个人项目,帮助考SAT的同学通过在线做题、回顾、问答提高成绩。用户功能有:计次/计时做题、成绩单、错题分布、错题回顾、提问、汇总以及注册登录。管理后台主要是题库管理、学员管理、成绩单管理、问题回复。怎么看都像学校里的课设,的确项目本身并不出奇,开发上选用的一些方案或许更有意思。

整个项目一个人从产品需求、原型设计、前后端开发到部署历时2周左右。可以从截图上感受一下:

image

技术选型上服务端是Node.js,应用框架选了老牌的Express(4.x变化挺大不少中间件都废了),数据服务用的是MongoLab(MongoDB的云服务平台),图片上传用的是又拍云,程序部署在Nodejitsu上。模板引擎没选主流的Jade或ejs,而是用Express React Views它实现了在服务端渲染React组件。前端框架是用React,这次有意想追求前后端全部组件化的组织。之前是用Webpack实现CommonJS模块打包,这次用Browserify配置更简单,它有丰富的transform很赞,其中的reactify转换React的JSX很完美。CSS用Sass+autoprefixer让人省心。将这一切串起来的自动构建工具是Gulp。我其实崇尚用最精简的工具组合开发,上述组合在我看来比较精简了。(帖纸留念)

![image](http://satexam.b0.upaiyu

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS动画</title>
<style id="jsbin-css">
body{
padding-top:40px;
}
.square{
@luxiaojian
luxiaojian / gist:496b6d1f0d573297b5b9
Created March 22, 2015 17:29
build gh-pages on github
1.git checkout -b gh-pages
2.rm .git/index
3.git add index.html
4.git reset --hard $(echo "branch gh-pages init." | git commit-tree $(git write-tree)) //用Git底层命令创建新的根提交,并将分支gh-pages重置。
5.git push -u origin gh-pages
6.git add -A
7.git commit -m 'add all'
8.git push -u origin gh-pages
@luxiaojian
luxiaojian / flexbox.sass
Created March 22, 2015 11:09
flexbox sass @mixin
@mixin flexbox() {
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
}
@mixin flex($values) {
-webkit-box-flex: $values;
'use strict';
// Generated on 2014-04-14 using generator-leaflet 0.0.14
var gulp = require('gulp');
var open = require('open');
var wiredep = require('wiredep').stream;
// Load plugins
var $ = require('gulp-load-plugins')();
@luxiaojian
luxiaojian / browser-sync.js
Last active August 29, 2015 14:17
gulp plugin
var browserSync=require('browser-sync');
var reload = browserSync.reload;
gulp.task('browser-sync', function() {
browserSync.init({
server: {
baseDir: '/',
routes: {
"/bower_components": "bower_components"
}
}
@luxiaojian
luxiaojian / 关闭index.js
Last active August 29, 2015 14:17
forever操作
forever stop index.js
@luxiaojian
luxiaojian / wordpress修改数据库域名
Last active August 29, 2015 14:17
wordpress数据库操作
UPDATE wp_options SET option_value = replace( option_value, 'http://老域名', 'http://新域名') WHERE option_name = 'home' OR option_name ='siteurl'