Git Product home page Git Product logo

aloo's Introduction

Aloo - the base to your torkari (project).

An easy starting point with NodeJS, ExpressJS, SASS, ReactJS and Redux. Includes testing and docker integration for cross OS development.

Why Aloo instead of other stacks?

  • Watching throughout development, both client and server. Testing too! Dramatically speeds up development.
  • Easily plug in any DB of choice
  • Docker integration for cross OS development
  • ES6 to leverage the latest JavaScript features
  • SASSify your stylesheets
  • ReactJS server side rendering with Redux for state management

Installation

Note - It is preferred to develop on Docker since it insures cross OS compatibility of your project codebase.

Prerequisites

  • NodeJS 6.10
  • Yarn v0.21.3 or NPM v3.10.10
  # Replace Yarn with NPM if using default package manager.
  $ git clone https://github.com/faisalhmohd/aloo.git
  $ cd aloo
  $ yarn install

On Docker

Prerequisites

  • Docker
  • Docker Compose
  $ docker-compose build

Development

  # Replace Yarn with NPM if using default package manager.

  # Develop on ReactJS
  $ yarn run start-client-watch

  # Develop on NodeJS
  $ yarn run start-server-watch

  # Testing
  $ yarn run start-test-watch

On Docker

  # Develop on ReactJS
  $ docker-compose -f development-client.yml up

  # Develop on NodeJS
  $ docker-compose -f development-server.yml up

  # Testing. Works even during development.
  $ docker-compose -f test.yml up

Production

Manage your processes and application states using PM2.

On Docker

  # Build the server. Only required when there is code change since last run.
  $ docker-compose -f production-build.yml up

  # Run the server in daemon
  $ docker-compose -d up

Not sure where to deploy? DigitalOcean is a great choice for most projects.

Project Structure

├── assets # Repo readme assets
├── base.yml # Base Docker Compose file
├── bin
│   └── app.js # Starting point to your project
├── client # All ReactJS code goes here
│   ├── components
│   │   ├── app.js
│   │   ├── home.js
│   │   └── notfound.js
│   ├── index.js
│   ├── reducers # Redux for state management
│   │   ├── header.js
│   │   └── index.js
│   └── routes.js
├── development-client.yml # Docker Compose for ReactJS development
├── development-server.yml # Docker Compose for NodeJS development
├── docker-compose.yml # Docker Compose for Production
├── Dockerfile # To build Docker image
├── LICENSE.md
├── nodemon.json # Nodemon configuration
├── package.json # Project Dependencies
├── production-build.yml # Docker Compose to build production
├── public # Static public assets go here
│   ├── bundle.js
│   └── main.css
├── README.md
├── scss # SASS stylesheets go here
│   ├── home.scss
│   └── main.scss
├── server # All NodeJS code goes here
│   └── index.js
├── tests # All Jest tests go here
│   └── app.test.js
├── test.yml # Docker Compose for Test driven development
├── views # All server side rendered views go here
│   └── index.pug
└── webpack.config.dev.js # Webpack configuration

Tutorials

Things left to do

  • Documentation
  • Adding CLI for multiple starter kits
  • Tests

License

This project is licensed under the MIT license.

If you have any questions or comments, please create a new issue. I'd be happy to hear your thoughts.

aloo's People

Watchers

James Cloos avatar Hien Phan avatar

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.