alexhawkins / starhackit

StarHackIt: React + Node full-stack starter kit with authentication and authorization, data backed by SQL.

Home Page:http://starhack.it/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

StarHackIt is a ES6/ES7 React/Node starter kit

Join the chat at https://gitter.im/FredericHeem/starhackit

Fullstack web application starter kit written in es6/es7 with react and node.js with the following features:

  • Authentication: username/password, facebook, google authentication etc ...
  • Authorization: scheme using user, group and permission
  • Scalable by using a micro services based architecture, a.k.a message queues
  • Relational database: postgres, mysql, sqlite, mssql etc, ...
  • Logging

Technologies:

  • React: a facebook library to build user interfaces.
  • Koa: next generation web framework for Node.js.
  • Sequelize: Object Relationship Management (ORM) supporting majors relational SQL database.
  • PostgreSQL: the world's most advanced open source relational database.
  • RabbitMq: messaging system.
  • Passport: authentication framework with more than 140 authentication strategies: username/password, facebook , google, github etc ...
  • Winston: a multi-transport async logging library.
  • Nodemailer: send email with various provider.
  • Babel: A es6/es7 compiler.
  • Gulp: automate and enhance your workflow.
  • Webpack: module bundler for the browser
  • Mocha: test framework.
  • Sinon: test spies, stubs and mocks.
  • Eslint: The pluggable linting utility for JavaScript and JSX.
  • Travis: Test and deploy. Build Status
  • CodeClimate: Automated code review Code Climate Test Coverage
  • Coveralls: Coverage Status
  • DevLab: Containerize your development workflow.
  • Trevor: Your own Travis CI to run tests locally.

Workflow

Yeoman generator

The easiest way to bootstrap your application is to use the Starhackit Yeoman generator.

First install yo and generator-starhackit globally:

npm install -g yo generator-starhackit

Finally, initiate the generator and answer the questions about your project:

mkdir yourproject && cd $_
yo starhackit

Docker containers

To install the docker containers for the various services such as RabbitMq and Postgres on the local machine, the DevLab project is being used to containerize the development workflow, see its configuration file: devlab.yml

# cd server
# npm run devlabinstall

To check that the containers are running:

# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                         NAMES
ccd9f559fabd        rabbitmq:latest     "/docker-entrypoint.s"   36 minutes ago      Up 36 minutes       4369/tcp, 25672/tcp, 0.0.0.0:5672->5672/tcp   devlab_rabbitmq_frederic_1446641005596

Backend

To start the backend:

# cd server
# npm start

To test the backend:

# npm test

It will not only test the code, but also checks the source code with eslint and generates a code coverage report located at coverage/lcov-report/index.html

For more information about the backend, see its README

Frontend

To run the frontend webserver:

# npm start

Now open a browser at http://localhost:8080

Deployment

See Ansible README.md

License

See LICENSE

Author

Crafted with passion by Frederic Heem

About

StarHackIt: React + Node full-stack starter kit with authentication and authorization, data backed by SQL.

http://starhack.it/

License:The Unlicense


Languages

Language:JavaScript 83.9%Language:CSS 8.0%Language:HTML 6.7%Language:Ruby 1.1%Language:Shell 0.3%Language:Groff 0.0%