Giter VIP home page Giter VIP logo

kails's Introduction

Kails

Build Status

A Web App like Ruby on Rails with Koa2, Webpack and Postgres.

This project is like Ruby on Rails Project:

  • MVC
  • Database (postgres), ORM(sequelize)
  • migration(sequelize-cli)
  • assets compile(webpack)
  • Session
  • Password with bcrypt
  • Testing (mocha)
  • Lint (eslint)
  • middlewares
  • console
  • server side render with react
  • flash message

Requirements

  • node >= 14.0.0
  • yarn

Features

  • User system
  • Post article with markdown editor
  • Hacker news middle layer

Structure

├── app
│   ├── assets
│   │   ├── images
│   │   ├── javascripts
│   │   └── stylesheets
│   ├── controllers
│   ├── helpers
│   ├── models
│   ├── routes
│   ├── services
│   ├── views
│   └── index.js
├── config
│   ├── config.js
│   └── webpack
│       ├── base.js
│       ├── development.js
│       └── production.js
├── db
│   └── migrations
├── index.js
├── package.json
├── public
└── test

Build development environment on localhost

  1. install nodejs
  2. install redis and postgres
  3. create postgres database: for development { database: 'kails_dev', owner: 'kails_dev', password: 'kails_dev' } for test { database: 'kails_test', owner: 'kails_tester', password: 'kails_tester' }
  4. clone and start this project
git clone https://github.com/embbnux/kails.git
yarn
yarn db:migrate
yarn assets_build
yarn start
  1. Visit http://localhost:3000/
  2. console
$ yarn console
> models.User.create({ name: 'test', email: '[email protected]', password: '12345678', passwordConfirmation: '12345678' }).then(function(user) { console.log(user) })
> models.User.findOne({ where: { email: '[email protected]' } }).then(function(user) { console.log(user) })

Deploy on production

How to Deploy Kails

How to Deploy Kails With Docker

Commands with yarn

# migrate database
yarn db:migrate
NODE_ENV=test yarn db:migrate
# run for development. it start app and webpack dev server
yarn start
# run the app
yarn app
# run the lint
yarn lint
# run test
yarn test
# deploy
yarn build
yarn assets_compile
NODE_ENV=production npm run db:migrate
yarn pm2
# console
yarn console

Author

Blog

License

MIT

kails's People

Contributors

dependabot[bot] avatar dongyu666 avatar ecmadao avatar embbnux avatar hhebo avatar ksmaxeed avatar lijianzhang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kails's Issues

switch from es2015 to es2015-node in babelrc

if switch from 'es2015' to 'es2015-node' in babelrc, you do not need 'babel-polyfill' anymore, which is friendly for integration with debugging in IDE(only add '-r babel-register' options to node).

support i18n

add i18n middleware to support i18n translate

react components multiple-use

I've no idea about how to import two or more same react component objects into one pug template ,with different props and being rendered with different html ids.

Upgrade Sequelize to V4

Sequelize V4 is a major release and it introduces new features and breaking changes. Majority of sequelize codebase has been refactored to use ES2015 features. The following guide lists some of the changes to upgrade from v3 to v4. See the Changelog for full list of changes.

npm start , i have an error.

E:\demos\kails>npm start

[email protected] start E:\demos\kails
nodemon app/index.js & webpack --config config/webpack/development.js --progress --colors --watch

[nodemon] 1.11.0
[nodemon] reading config E:\demos\kails\nodemon.json
[nodemon] to restart at any time, enter rs
[nodemon] ignoring: E:\demos\kails.git//* .nyc_output .sass-cache bower_components coverage E:\demos\kails\node_modules//* E:\demos\kails\app\assets//* public/assets//*
[nodemon] watching: .
[nodemon] watching extensions: js,json
[nodemon] starting babel-node app/index.js
[nodemon] child pid: 6808
[nodemon] watching 61 files
E:\demos\kails\node_modules.1.2.1@bindings\bindings.js:91
throw err
^

Error: Could not locate the bindings file. Tried:
→ E:\demos\kails\node_modules.0.8.7@bcrypt\build\bcrypt_lib.node
→ E:\demos\kails\node_modules.0.8.7@bcrypt\build\Debug\bcrypt_lib.node
→ E:\demos\kails\node_modules.0.8.7@bcrypt\build\Release\bcrypt_lib.node
→ E:\demos\kails\node_modules.0.8.7@bcrypt\out\Debug\bcrypt_lib.node
→ E:\demos\kails\node_modules.0.8.7@bcrypt\Debug\bcrypt_lib.node
→ E:\demos\kails\node_modules.0.8.7@bcrypt\out\Release\bcrypt_lib.node
→ E:\demos\kails\node_modules.0.8.7@bcrypt\Release\bcrypt_lib.node
→ E:\demos\kails\node_modules.0.8.7@bcrypt\build\default\bcrypt_lib.node
→ E:\demos\kails\node_modules.0.8.7@bcrypt\compiled\6.9.5\win32\x64\bcrypt_lib.node
at bindings (E:\demos\kails\node_modules.1.2.1@bindings\bindings.js:88:9)
at Object. (E:\demos\kails\node_modules.0.8.7@bcrypt\bcrypt.js:3:35)
at Module._compile (module.js:570:32)
at Module._extensions..js (module.js:579:10)
at Object.require.extensions.(anonymous function) [as .js] (E:\demos\kails\node_modules.6.24.0@babel-register\lib\node.js:152:7)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object. (E:/demos/kails/app/models/user.js:1:1)
at Module._compile (module.js:570:32)
at loader (E:\demos\kails\node_modules.6.24.0@babel-register\lib\node.js:144:5)
at Object.require.extensions.(anonymous function) [as .js] (E:\demos\kails\node_modules.6.24.0@babel-register\lib\node.js:154:7)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
[nodemon] app crashed - waiting for file changes before starting...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.