{"id":20008105,"url":"https://github.com/bartmelton/angular-scalable-boilerplate","last_synced_at":"2026-05-06T03:32:10.733Z","repository":{"id":57179034,"uuid":"82223263","full_name":"bartmelton/angular-scalable-boilerplate","owner":"bartmelton","description":"A scalable boilerplate for AngularJS 1.x","archived":false,"fork":false,"pushed_at":"2017-03-03T07:32:43.000Z","size":14,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-04T15:53:08.216Z","etag":null,"topics":["angular-applications","angular-apps","angularjs","javascript"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bartmelton.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-02-16T20:30:40.000Z","updated_at":"2017-02-21T05:43:04.000Z","dependencies_parsed_at":"2022-09-09T19:01:07.714Z","dependency_job_id":null,"html_url":"https://github.com/bartmelton/angular-scalable-boilerplate","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/bartmelton/angular-scalable-boilerplate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bartmelton%2Fangular-scalable-boilerplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bartmelton%2Fangular-scalable-boilerplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bartmelton%2Fangular-scalable-boilerplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bartmelton%2Fangular-scalable-boilerplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bartmelton","download_url":"https://codeload.github.com/bartmelton/angular-scalable-boilerplate/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bartmelton%2Fangular-scalable-boilerplate/sbom","scorecard":{"id":226351,"data":{"date":"2025-08-11","repo":{"name":"github.com/bartmelton/angular-scalable-boilerplate","commit":"63fb8d22a0a6a0a94abc1513e143e42d5ba10710"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.6,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/8 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-17T03:53:56.822Z","repository_id":57179034,"created_at":"2025-08-17T03:53:56.822Z","updated_at":"2025-08-17T03:53:56.822Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32677926,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T02:33:58.958Z","status":"ssl_error","status_checked_at":"2026-05-06T02:33:39.611Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["angular-applications","angular-apps","angularjs","javascript"],"created_at":"2024-11-13T07:08:28.126Z","updated_at":"2026-05-06T03:32:10.708Z","avatar_url":"https://github.com/bartmelton.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Summary\nA scalable boilerplate for AngularJS 1.x\n\n### Purpose\nWebsites can be anything from a few pages to large scale sites with hundreds of different pages and radically different subsections.  For example, a website's \"shop\" and \"support\" sections may not have any functionality that is the same. This boilerplate is designed to facilitate being able to scale from the smallest to the largest websites.\n\n### How it works\nThere is a base set of files that are loaded to initialize your app. Shared services, directives, setup, etc. Subsections are a self-contained set of files which can be plugged in, moved, renamed, or include their own subsections. This allows for ease of file management and separation of content and functionality between sections.\n\nThe site is built up by chaining \"include\" files using [RequireJS](http://requirejs.org/).\n\nThere are some basic comments within the files explaining what things are doing and where to make changes. Of course, this is just an example of what can be done.  Everyone has their own preferences for file structure and site organization. If you look through the code for a few minutes, it should become fairly self-explanatory as to the basic principle of how to modularize your site for ease of management. From there, you can use it as a guide to set things up however you prefer.\n\n### Structure\nThe root is `/public/`.\n - `index.html` is the basic shell for the app\n - `main.js` has the configuration for `requirejs` and initializes the app.\n - `/css/` contains the CSS files. This setup only uses client-side technologies only, so change as needed for using Less/Sass.\n - `/views/` all of the .html snippets used in the global views\n - `/js/` has all of the global js files\n   - `/js/app.js` the initial setup for your angular application `angular.module(...)`\n   - `/js/inc.js` includes all of the \"global\" files and links to the include files for each of the subsections. When you add files, remember to add them here.\n   - `/js/routes.js` the initial routing declarations\n   - `/js/controllers/`, `/js/services/`, `/js/directives/` have all of your \"global\" application files\n - `/libs/` where plugins and utilities are installed.\n\nFor a small site, that is all you need.\n\nTo add subsections, you can add in one or more folders with all of the files for that subsection.  In this example, it uses `/section1/` and `/section2/`, however you can structure things however you like.\n\nThe subsection structure\n\n - `/section/inc.js` used to require all of the JS files for the subsection.\n - `/section/routes.js` all of the routing for this section.\n - `/section/views/`, `/section/controllers/`, `/section/services/`, `/section/directives/` the .js and .html files specific to this subsection.\n\n\nThe `inc.js` files are the key to keeping everything modular. When you add a new section, you just add a line pointing to its \"include\" file in the parent include file. If you move/add a section or change the folder name, you simply modify the parent `inc.js` to point to the location of the `inc.js` for the module.  You can continue to chain subsections by adding them the same way but within the section folder and including it's `inc.js` in the parent `inc.js`. Anything that is added/moved/renamed only requires a single line change in the parent `inc.js` (or 2 of moving from one parent structure to another).\n\nIn the top-level `main.js` there is a path definition for the subsections.  This is not required, but is convenient for allowing each section to have a base path for reference. That way if the folder structure is changed, you only have to modify the line for the section in `main.js` to update the base path, instead of having to modify each line in the `inc.js` to reflect the new folder structure.\n\n\n### Plugins\n\nThe following are the angular plugins and other utilities included with the package for convenience. Technically, none of them are required other than angularjs and requirejs.\n\n - [RequireJS](http://requirejs.org/)\n - [AngularJS](https://angularjs.org/)\n - [Angular UI Router](https://ui-router.github.io/)\n - [Angular UI Router Helper](https://github.com/marklagendijk/ui-router.stateHelper)\n - [Angular UI Animate](https://docs.angularjs.org/api/ngAnimate)\n - [Bootstrap](http://getbootstrap.com/)\n - [Angular UI Bootstrap](https://angular-ui.github.io/bootstrap/)\n - [jQuery](http://jquery.com/)\n - [Lodash](https://lodash.com/)\n - [Font-Awesome](http://fontawesome.io/) added in `index.html`. Very useful set of icons.\n\n\n### Installing\n\n#### GitHub\n[https://github.com/bartmelton/angular-scalable-boilerplate](https://github.com/bartmelton/angular-scalable-boilerplate)\n\n\n#### NPM\n ```\n  npm install angular-scalable-boilerplate\n ```\nNPM should run `bower install` when it is complete.  If not, run it manually.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbartmelton%2Fangular-scalable-boilerplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbartmelton%2Fangular-scalable-boilerplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbartmelton%2Fangular-scalable-boilerplate/lists"}