{"id":13433122,"url":"https://github.com/kriasoft/Folder-Structure-Conventions","last_synced_at":"2025-03-17T10:33:12.585Z","repository":{"id":13816815,"uuid":"16513249","full_name":"kriasoft/Folder-Structure-Conventions","owner":"kriasoft","description":"Folder / directory structure options and naming conventions for software projects","archived":false,"fork":false,"pushed_at":"2022-08-24T10:38:51.000Z","size":8,"stargazers_count":1897,"open_issues_count":8,"forks_count":5927,"subscribers_count":46,"default_branch":"master","last_synced_at":"2024-10-30T00:55:24.111Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kriasoft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-02-04T13:57:30.000Z","updated_at":"2024-10-28T10:45:16.000Z","dependencies_parsed_at":"2022-07-14T05:20:29.243Z","dependency_job_id":null,"html_url":"https://github.com/kriasoft/Folder-Structure-Conventions","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kriasoft%2FFolder-Structure-Conventions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kriasoft%2FFolder-Structure-Conventions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kriasoft%2FFolder-Structure-Conventions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kriasoft%2FFolder-Structure-Conventions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kriasoft","download_url":"https://codeload.github.com/kriasoft/Folder-Structure-Conventions/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243910749,"owners_count":20367544,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T02:01:21.312Z","updated_at":"2025-03-17T10:33:12.570Z","avatar_url":"https://github.com/kriasoft.png","language":null,"funding_links":[],"categories":["Others"],"sub_categories":[],"readme":"Folder Structure Conventions\n============================\n\n\u003e Folder structure options and naming conventions for software projects\n\n### A typical top-level directory layout\n\n    .\n    ├── build                   # Compiled files (alternatively `dist`)\n    ├── docs                    # Documentation files (alternatively `doc`)\n    ├── src                     # Source files (alternatively `lib` or `app`)\n    ├── test                    # Automated tests (alternatively `spec` or `tests`)\n    ├── tools                   # Tools and utilities\n    ├── LICENSE\n    └── README.md\n\n\u003e Use short lowercase names at least for the top-level files and folders except\n\u003e `LICENSE`, `README.md`\n\n### Source files\n\nThe actual source files of a software project are usually stored inside the\n`src` folder. Alternatively, you can put them into the `lib` (if you're\ndeveloping a library), or into the `app` folder (if your application's source\nfiles are not supposed to be compiled).\n\n\u003e **Samples**: [jQuery](https://github.com/jquery/jquery) `src`, [Node.js](https://github.com/nodejs/node) `lib` and `src`, [D3.js](https://github.com/mbostock/d3) `src`, [AngularJS](https://github.com/angular/angular.js) `src`, [Adobe Brackets](https://github.com/adobe/brackets) `src`, [three.js](https://github.com/mrdoob/three.js) `src`, [Express](https://github.com/visionmedia/express) `lib`, [Socket.IO](https://github.com/LearnBoost/socket.io) `lib`, [Less.js](https://github.com/less/less.js) `lib`, [Redis](https://github.com/antirez/redis) `src`, [Ace](https://github.com/ajaxorg/ace) `lib`, [Semantic UI](https://github.com/Semantic-Org/Semantic-UI) `src`, [Zepto.js](https://github.com/madrobby/zepto) `src`, [Emscripten](https://github.com/kripken/emscripten) `src`, [RethinkDB](https://github.com/rethinkdb/rethinkdb) `src`, [Bitcoin](https://github.com/bitcoin/bitcoin) `src`, [MongoDB](https://github.com/mongodb/mongo) `src`, [Facebook React](https://github.com/facebook/react) `src`, [Rust](https://github.com/mozilla/rust) `src`, [ASP.NET](https://aspnetwebstack.codeplex.com/SourceControl/latest) `src`, [SignalR](https://github.com/SignalR/SignalR) `src`, [libgit2](https://github.com/libgit2/libgit2) `src`\n\n### Automated tests\n\nAutomated tests are usually placed into the `test` or, less commonly, into the `spec` or `tests` folder.\n\n\u003e **Q: Why tests are placed into a separate folder, as opposed to having them closer to the code under test?**\n\u003e\n\u003e **A:** Because you don't want to test the code, you want to test the *program*.\n\n    .\n    ├── ...\n    ├── test                    # Test files (alternatively `spec` or `tests`)\n    │   ├── benchmarks          # Load and stress tests\n    │   ├── integration         # End-to-end, integration tests (alternatively `e2e`)\n    │   └── unit                # Unit tests\n    └── ...\n\n\u003e **Samples**: [jQuery](https://github.com/jquery/jquery), [Node.js](https://github.com/joyent/node), [D3.js](https://github.com/mbostock/d3), [AngularJS](https://github.com/angular/angular.js), [Adobe Brackets](https://github.com/adobe/brackets), [three.js](https://github.com/mrdoob/three.js), [Express](https://github.com/visionmedia/express), [Socket.IO](https://github.com/LearnBoost/socket.io), [Less.js](https://github.com/less/less.js), [Bower](https://github.com/bower/bower), [Mozilla PDF.js](https://github.com/mozilla/pdf.js), [Grunt](https://github.com/gruntjs/grunt), [Gulp](https://github.com/gulpjs/gulp), [Semantic UI](https://github.com/Semantic-Org/Semantic-UI), [Zepto.js](https://github.com/madrobby/zepto), [Jade](https://github.com/visionmedia/jade), [RethinkDB](https://github.com/rethinkdb/rethinkdb), [Vagrant](https://github.com/mitchellh/vagrant), [Sails.js](https://github.com/balderdashy/sails), [GitHub Hubot](https://github.com/github/hubot), [Facebook React](https://github.com/facebook/react), [Ansible](https://github.com/ansible/ansible), [ASP.NET](https://aspnetwebstack.codeplex.com/SourceControl/latest), [browserify](https://github.com/substack/node-browserify), [Paper.js](https://github.com/paperjs/paper.js), [Julia](https://github.com/JuliaLang/julia), [Karma](https://github.com/karma-runner/karma)\n\n### Documentation files\n\nOften it is beneficial to include some reference data into the project, such as\nRich Text Format (RTF) documentation, which is usually stored into the `docs`\nor, less commonly, into the `doc` folder.\n\n    .\n    ├── ...\n    ├── docs                    # Documentation files (alternatively `doc`)\n    │   ├── TOC.md              # Table of contents\n    │   ├── faq.md              # Frequently asked questions\n    │   ├── misc.md             # Miscellaneous information\n    │   ├── usage.md            # Getting started guide\n    │   └── ...                 # etc.\n    └── ...\n\n\u003e **Samples**: [HTML5 Boilerplate](https://github.com/h5bp/html5-boilerplate) `docs`, [Backbone](https://github.com/jashkenas/backbone) `docs`, [three.js](https://github.com/mrdoob/three.js) `docs`, [GitLab](https://github.com/gitlabhq/gitlabhq) `doc`, [Underscore.js](https://github.com/jashkenas/underscore) `docs`, [Grunt](https://github.com/gruntjs/grunt) `docs`, [Emscripten](https://github.com/kripken/emscripten) `docs`, [RequireJS](https://github.com/jrburke/requirejs) `docs`, [GitHub Hubot](https://github.com/github/hubot) `docs`, [Twitter Flight](https://github.com/flightjs/flight) `doc`, [Video.js](https://github.com/videojs/video.js) `docs`, [Bitcoin](https://github.com/bitcoin/bitcoin) `doc`, [MongoDB](https://github.com/mongodb/mongo) `docs`, [libgit2](https://github.com/libgit2/libgit2) `docs`, [Stylus](https://github.com/stylus/stylus) `docs`, [Gulp](https://github.com/gulpjs/gulp) `docs`, [Apache httpd](https://github.com/apache/httpd) `docs`, [Windows Terminal](https://github.com/microsoft/terminal/tree/main) `doc`, [OpenTelemetry .NET](https://github.com/open-telemetry/opentelemetry-dotnet) `docs`\n\n### Scripts\n\n...\n\n### Tools and utilities\n\n...\n\n### Compiled files\n\n...\n\n### 3rd party libraries\n\n...\n\n### License information\n\nIf you want to share your work with others, please consider choosing an open\nsource license and include the text of the license into your project.\nThe text of a license is usually stored in the `LICENSE` (or `LICENSE.txt`,\n`LICENSE.md`) file in the root of the project.\n\n\u003e You’re under no obligation to choose a license and it’s your right not to\n\u003e include one with your code or project. But please note that opting out of\n\u003e open source licenses doesn’t mean you’re opting out of copyright law.\n\u003e \n\u003e You’ll have to check with your own legal counsel regarding your particular\n\u003e project, but generally speaking, the absence of a license means that default\n\u003e copyright laws apply. This means that you retain all rights to your source\n\u003e code and that nobody else may reproduce, distribute, or create derivative\n\u003e works from your work. This might not be what you intend.\n\u003e\n\u003e Even in the absence of a license file, you may grant some rights in cases\n\u003e where you publish your source code to a site that requires accepting terms\n\u003e of service. For example, if you publish your source code in a public\n\u003e repository on GitHub, you have accepted the [Terms of Service](https://help.github.com/articles/github-terms-of-service)\n\u003e which do allow other GitHub users some rights. Specifically, you allow others\n\u003e to view and fork your repository.\n\nFor more info on how to choose a license for an open source project, please\nrefer to http://choosealicense.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkriasoft%2FFolder-Structure-Conventions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkriasoft%2FFolder-Structure-Conventions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkriasoft%2FFolder-Structure-Conventions/lists"}