Automate Everything ™
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%!
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!
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!
- Linting
- Testing
- Continuous Integration
- Dependency Management
- Task Runners
- Project Structure
- Release Management
- Documentation
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.
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.
grunt lint
- Runs all linters installed.
Language | Linters | Rules | Why? |
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 |
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.
Add Automate test cases our project, using this command:
yo ./standard-project-structure/generators/task-runner
grunt test
grunt cover
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.
Add Task Runner our project, using this command:
yo ./standard-project-structure/generators/task-runner
Making documentation accessible enables people to learn about a project; making it easy to update ensures that documentation stays relevant.
Run these command using create Initial Project Structure.
yo ./standard-project-structure/generators/projectStructure
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...