Skip to content

A mission to improve developer productivity. Automate Everything ™ !

License

Notifications You must be signed in to change notification settings

rcorp/standard-project-structure

Repository files navigation

standard-project-structure

Automate Everything ™

standard-project-structure

Standard Project Structure (SPS) is a mission to improve developer productivity! It is a complete set of tools along with configurations and automatic scaffolding which hopefully increases your efficiency by 10000%!

Motivation

In the ever changing world of technology, especially the explosion of choice in the open source world, software quality has become the most metric; more so for new users. The problem is worse with seasoned experts in the Web/JS/Node world frequently diagnosed with analysis paralysis

SPS helps you by automatically configuring your software project with Code Linting, Unit Testing, Functional Testing, Front End Dependency Management, Bundling, Documentation, Back End Dependency Management, Task Runners, Mobile/Multi Platform Development, Project Structure, Source Code Management, Issue Management, Code Review Workflow, Continuous Integration, Code Coverage, and more! All configured to work together harmoniously.

We also try to help you master these tools and provide 'Best Practices' so that you can concentrate on your project and leave the rest to us!

Status

This is a work in progress but we are getting closer to a Public Launch! We need your help to make this project useful. Browse the discussions and leave your comments!

Modules

  1. Linting
  2. Testing
  3. Continuous Integration
  4. Dependency Management
  5. Task Runners
  6. Project Structure
  7. Release Management
  8. Documentation

Linting

All code should look like a single person typed it, no matter how many people contributed so its easy to read and contribute.

Linting is the process of checking the source code for Programmatic as well as Stylistic errors. This is most helpful in identifying some common and uncommon mistakes that are made during coding.

Installation

Add linters and Atom to your project. For this, we will run this command:

yo ./standard-project-structure/generators/linter
  • Asks for all languages being used.
  • Installs tasks for each linter.
  • Asks for Editors being used and installs editor Plugins.

Usage

grunt lint
  • Runs all linters installed.
Language LintersRulesWhy?
Javascript ESLint Airbnb Style Guide #4 , #6
Coffeescript CoffeeLint #4
CSS StyleLint StyleLint Standard Config #4 , #11
HTML HTMLHint HTML Standard Config #4 , #13
Typescript TSLint Microsoft tslint Standard #4 , #15

Testing

we do manual testing of some project, we generally run some command, and check the output, or exit code to verify if the command did what it was supposed to do.

Some Framework or tools uses to your project like, Mocha, Code Coverage etc.

Installation

Add Automate test cases our project, using this command:

yo ./standard-project-structure/generators/task-runner

Usage

grunt test
grunt cover    

Unit Testing

Functional Testing

Continuous Integration

Dependency Management

NPM

Bower

Task Runners

Task Runner is a process of automation of task. You will have to do less work when performing repetitive tasks like bundling, unit testing, linting, etc.

Installation

Add Task Runner our project, using this command:

yo ./standard-project-structure/generators/task-runner 

Project Structure

Making documentation accessible enables people to learn about a project; making it easy to update ensures that documentation stays relevant.

Installation

Run these command using create Initial Project Structure.

yo ./standard-project-structure/generators/projectStructure

Release Management

We attempt to stick to Semantic Versioning. Most of the time, development should be against a new minor version - fixing bugs and adding new features that are backwards compatible. Read more...

Documentation