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 with redis
- Password with bcrypt
- Testing (mocha)
- Lint (eslint)
- middleware
- console
- server side render with react
Requirements
How to Install
1 2 3 4 5 6
| install nodejs install redis and postgres 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' } clone this project
|
Features
Structure
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| ├── 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
|
Usage
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| npm install npm run db:migrate NODE_ENV=test npm run db:migrate # run for development, it start app and webpack dev server npm start # run the app npm run app # run the lint npm run lint # run test npm test # deploy npm run assets_compile NODE_ENV=production npm run db:migrate npm run pm2
|
Go to App console
1 2 3
| $ npm run console models.User.create({ name: 'test', email: 'kails@kails.org', password: '12345678', passwordConfirmation: '12345678' }).then(function(user) { console.log(user) }) models.User.findOne({ where: { email: 'kails@kails.org' } }).then(function(user) { console.log(user) })
|
Start development environtment
1 2
| $ npm run start # Visit `http://localhost:3000/
|
Deploy on production
How to Deploy Kails
Author
Blog
License
MIT