Skip to content

Latest commit

 

History

History
116 lines (75 loc) · 3.1 KB

README.md

File metadata and controls

116 lines (75 loc) · 3.1 KB

Skeleton

A standard project skeleton

Skeleton provides a simple structure to help you quickly setup new projects, and prevent you from forgetting the finer yet important details of creating and maintaining a software project.

Directory Structure

When you manage a software project, one important but often overlooked aspect, is creating a solid directory structure. Below are some preferred directory names. They're meant to be opt-in. If your project doesn't need a particular directory, then don't include it. However, if you do need it to manage a particular type of content, these names are the most common. Using them will help people new to your project.

There isn't a skel command for creating a directory structure. The various types of potential projects, are too varied to create a command that would satisfy a wide array of users.

Core Directories

  • bin - commands you want to run.
  • docs - Project documentation written by and for humans about your project
  • log - capture information about what happens while your application runs
  • src - the source code of your application
  • tests - the tests that exercise and verify the code of your application

Package Manager Directories

  • node_modules - this is managed by NPM
  • vendor - this is managed by Composer

Optional Directories

  • build - this is for the creation of generated files.
  • config - for files that are used for configuration, that are not environment specific
  • data - to manage things like data source files (e.g. CSV)
  • lib - libraries not managed by a manager like Composer
  • phpdocs - the documentation generated by PHPDoc
  • public - only needed for web projects. Represents the root of the website.
    • css
    • fonts
    • js
    • assets
      • audio
      • docs
      • photos
      • video
    • images
      • buttons
      • backgrounds
      • logos
    • uploads
  • translations - files that translate your application into other languages

Installation

  1. Download the latest ZIP file from https://github.com/andrewwoods/skeleton
  2. Expand the ZIP file
  3. Add the 'bin' directory to your path
  4. Advanced features

Create a New Project Directory

  1. Create the top-level project directories you need

  2. Create Essential Project Docs

    $ skel docs readme contributing
    
  3. Create a License for your project

    $ skel license mit
    

Ideas

  • skel php for PHP-related files

    • composer ( autoloading )
    • docker
    • symfony console application
    • symfony console command
  • skel js for JS-related files

Table of Contents

Submit an issue

Skeleton issues

Credits and Acknowledgments