├── CNAME ├── index.html ├── .gitignore ├── bin └── generator.js ├── README.md ├── LICENSE └── api └── all.json /CNAME: -------------------------------------------------------------------------------- 1 | awesome-practise-project.phodal.com -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Awesome-practise-project by phodal 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Runtime data 7 | pids 8 | *.pid 9 | *.seed 10 | 11 | # Directory for instrumented libs generated by jscoverage/JSCover 12 | lib-cov 13 | 14 | # Coverage directory used by tools like istanbul 15 | coverage 16 | 17 | # nyc test coverage 18 | .nyc_output 19 | 20 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 21 | .grunt 22 | 23 | # node-waf configuration 24 | .lock-wscript 25 | 26 | # Compiled binary addons (http://nodejs.org/api/addons.html) 27 | build/Release 28 | 29 | # Dependency directories 30 | node_modules 31 | jspm_packages 32 | 33 | # Optional npm cache directory 34 | .npm 35 | 36 | # Optional REPL history 37 | .node_repl_history 38 | -------------------------------------------------------------------------------- /bin/generator.js: -------------------------------------------------------------------------------- 1 | // code basis on https://github.com/JacksonTian/fks/blob/master/bin/generate.js 2 | // Thanks to JacksonTian 3 | var fs = require('fs'); 4 | var path = require('path'); 5 | 6 | var readme = fs.readFileSync(path.join(__dirname, '../README.md'), 'utf8'); 7 | 8 | var getItems = function (str) { 9 | var patt = /([ ]*)-(.*)/g; 10 | var result; 11 | 12 | var list = []; 13 | while ((result = patt.exec(str)) != null) { 14 | list.push({level: result[1].length / 2, content: result[2].trim()}); 15 | } 16 | return list; 17 | }; 18 | 19 | var filter = function (list) { 20 | var j = 0; 21 | var f2e = []; 22 | for (var i = 0; i < list.length; i++) { 23 | var item = list[i]; 24 | if (item.level === 0) { 25 | j = j + 1; 26 | if (j === 2) { 27 | break; 28 | } 29 | } 30 | 31 | f2e.push(item); 32 | } 33 | return f2e; 34 | }; 35 | 36 | var format = function (list) { 37 | var result = []; 38 | for (var i = 0; i < list.length; i++) { 39 | var item = list[i]; 40 | var data = { 41 | name: item.content, 42 | level: item.level 43 | }; 44 | result.push(data); 45 | } 46 | return result; 47 | }; 48 | 49 | var items = getItems(readme); 50 | var f2e = filter(items); 51 | var formated = format(f2e); 52 | 53 | var generateLinksAndDescription = function (str) { 54 | var patt = /\[([^\]]+)\]\(([^)]+)\)(.*)/g; 55 | var result; 56 | 57 | var list = []; 58 | while ((result = patt.exec(str)) != null) { 59 | var projectName = result[1]; 60 | var projectLink = result[2]; 61 | var projectDesc = result[3]; 62 | list.push({name: projectName, link: projectLink, desc: projectDesc}); 63 | } 64 | return list; 65 | }; 66 | 67 | var buildTree = function (list) { 68 | var root = null; 69 | for (var i = 0; i < list.length; i++) { 70 | var item = list[i]; 71 | 72 | if (root === null) { 73 | root = item; 74 | root.domains = []; 75 | } 76 | 77 | var lastLevel0 = root.domains; 78 | if (item.level === 1) { 79 | lastLevel0.push(item); 80 | } 81 | 82 | if (item.level === 2) { 83 | var lastLevel1 = lastLevel0[lastLevel0.length - 1]; 84 | lastLevel1.subdomains = lastLevel1.subdomains || []; 85 | lastLevel1.subdomains.push(item); 86 | } 87 | 88 | if (item.level === 3) { 89 | var lastLevel1Child = lastLevel0[lastLevel0.length - 1].subdomains; 90 | var lastLevel2 = lastLevel1Child[lastLevel1Child.length - 1]; 91 | lastLevel2.projects = lastLevel2.projects || []; 92 | var itemDesc = generateLinksAndDescription(item.name); 93 | lastLevel2.projects.push(itemDesc[0]); 94 | } 95 | 96 | delete item.level; 97 | } 98 | return root; 99 | }; 100 | 101 | var api = {}; 102 | var tree = buildTree(formated); 103 | api.source = "http://awesome-practise-project.phodal.com/"; 104 | api.content = tree.domains; 105 | fs.writeFileSync(path.join(__dirname, '../api/all.json'), JSON.stringify(api, null, ' ')); -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Awesome Practise Project 2 | 3 | The Part of [Growth Plan](https://github.com/phodal/growth). 4 | 5 | - Awesome Projects 6 | - 前端 7 | - 必看 8 | - [TodoMVC](https://github.com/tastejs/todomvc) 包含了一系列不同框架的Todo MVC,如Backbone.js, Ember.js, AngularJS 9 | - ReactJS 10 | - [Awesome React](https://github.com/enaqx/awesome-react) A collection of awesome things regarding React ecosystem. 11 | - [React Demos](https://github.com/ruanyf/react-demos) 由阮一峰收集的React.js的相关Demos。加入索引时,一共有13个Demo,从简单的渲染JSX、Component的生命周期,到服务端渲染。 12 | - [同架JavaScript](https://github.com/DavidWells/isomorphic-react-example) 这是一个基于React和Node.js、Express的示例,并且还包含视频。介绍了如何在前后端使用相同的代码来完成逻辑。 13 | - Angular.js 14 | - [Awesome AngularJS](https://github.com/gianarb/awesome-angularjs) 🌀 A list of awesome AngularJs services, directives, utilities and resources. 15 | - Angular 2 16 | - [Awesome Angular 2](https://github.com/AngularClass/awesome-angular2) A curated list of awesome Angular 2 resources 17 | - Vue 18 | - [Awesome Vue](https://github.com/vuejs/awesome-vue) A curated list of awesome things related to Vue.js 19 | - Ember.js 20 | - [Awesome Ember.js](https://github.com/nmec/awesome-ember) A curated list of awesome Ember.js things 21 | - Riot 22 | - [Riot Todo](https://github.com/srackham/riot-todo) 使用类似于Flux架构实现的Riot下的Todo应用。 23 | - Backbone 24 | - [Backbone Boilerplate](https://github.com/tbranyen/backbone-boilerplate) Bakcbone.js下的工作流,包含可选的Backbone, jQuery, Lodash, Grunt, Babel, Combyne, Karma, Mocha以及Pure CSS。 25 | - Ionic 26 | - [Awesome Ionic](https://github.com/Alexintosh/Awesome-Ionic) A curated list of awesome Ionic libraries, resources and solutions. 27 | - [Ionic 2 会议应用](https://github.com/driftyco/ionic-conference-app) 使用Ionic 2以及Typescript实现的会议应用。 28 | - [CNodejs Ionic](https://github.com/lanceli/cnodejs-ionic) 使用Ionic实现的https://cnodejs.org的手机APP。 29 | - 后端 30 | - Node.js 31 | - [Awesome Nodejs](https://github.com/sindresorhus/awesome-nodejs) Delightful Node.js packages and resources 32 | - [Node.js Express Demos](https://github.com/bsspirit/nodejs-demo) 这个项目原本是依照《Node.js开发指南》书中介绍的项目开始的,然而它讲的是Express2.x的,这个项目则以Express 3.x、Express 4.x为例子展开。 33 | - Laravel 34 | - [Awesome Laravel](https://github.com/chiraggude/awesome-laravel) A curated list of awesome bookmarks, packages, tutorials, videos and other cool resources from the Laravel ecosystem. 35 | - Spring MVC 36 | - [Spring MVC Showcase](https://github.com/spring-projects/spring-mvc-showcase) 这个项目带有Spring MVC的大部分功能的演示,如从正常的Controller,到表单、文件上传、异常处理等等。 37 | - [Spring Blog](https://github.com/Raysmond/SpringBlog) 用Spring Boot/MVC/JPA + Hibernate + MySQL + Redis + Bootstrap + Jade实现的博客系统。 38 | - Spring Boot 39 | - [Spring Boot samples](https://github.com/netgloo/spring-boot-samples) 这个项目包含一系列的Spring Boot示例,当然还有相关的介绍。 40 | - [Spring Boot微服务模板](https://github.com/rohitghatol/spring-boot-microservices) 这个项目介绍了如何用Spring Boot、Spring Cloud、Spring OAuth 2和Netflix OSS来实现微服务架构。 41 | - Django 42 | - [Awesome Django](https://github.com/rosarior/awesome-django) 大家都懂的,A curated list of awesome Django apps, projects and resources。 43 | - Flask 44 | - [Awesome Flask](https://github.com/humiaozuzu/awesome-flask) A curated list of awesome Flask resources and plugins. 45 | - [Flask Boilerplate](https://github.com/mjhea0/flask-boilerplate) 一个基于Flask、 Flask-SQLAlchemy、Flask-WTF、Fabric、Coverage、Bootstrap的Web应用。 46 | - Rails 47 | - [Awesome Rails](https://github.com/ekremkaraca/awesome-rails) A collection / list of awesome projects, sites made with Rails. 48 | - 前后端结合 49 | - React 50 | - [React Starter Kit](https://github.com/kriasoft/react-starter-kit) 基于Node.js, Express, GraphQL, React.js, Babel 6, PostCSS, Webpack, Browsersync提供的同构Web应用模板 51 | - Angular.js 52 | - [MEAN.JS](https://github.com/meanjs/mean) 使用MongoDB, Express, AngularJS, and Node.js的全栈JavaScript。 53 | - [AngularJS + Flask Boilerplate App](https://github.com/shea256/angular-flask) 以Flask作为后端,Angular.js作为前端的Web应用模板 54 | 55 | License 56 | --- 57 | 58 | [![Phodal's Idea](http://brand.phodal.com/shields/idea-small.svg)](http://ideas.phodal.com/) 59 | 60 | © 2015~2016 [Phodal Huang](https://www.phodal.com). This code is distributed under the CC0 1.0 Universal license. See `LICENSE` in this directory. 61 | 62 | [待我代码编成,娶你为妻可好](http://www.xuntayizhan.com/person/ji-ke-ai-qing-zhi-er-shi-dai-wo-dai-ma-bian-cheng-qu-ni-wei-qi-ke-hao-wan/) 63 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | CC0 1.0 Universal 2 | 3 | Statement of Purpose 4 | 5 | The laws of most jurisdictions throughout the world automatically confer 6 | exclusive Copyright and Related Rights (defined below) upon the creator and 7 | subsequent owner(s) (each and all, an "owner") of an original work of 8 | authorship and/or a database (each, a "Work"). 9 | 10 | Certain owners wish to permanently relinquish those rights to a Work for the 11 | purpose of contributing to a commons of creative, cultural and scientific 12 | works ("Commons") that the public can reliably and without fear of later 13 | claims of infringement build upon, modify, incorporate in other works, reuse 14 | and redistribute as freely as possible in any form whatsoever and for any 15 | purposes, including without limitation commercial purposes. These owners may 16 | contribute to the Commons to promote the ideal of a free culture and the 17 | further production of creative, cultural and scientific works, or to gain 18 | reputation or greater distribution for their Work in part through the use and 19 | efforts of others. 20 | 21 | For these and/or other purposes and motivations, and without any expectation 22 | of additional consideration or compensation, the person associating CC0 with a 23 | Work (the "Affirmer"), to the extent that he or she is an owner of Copyright 24 | and Related Rights in the Work, voluntarily elects to apply CC0 to the Work 25 | and publicly distribute the Work under its terms, with knowledge of his or her 26 | Copyright and Related Rights in the Work and the meaning and intended legal 27 | effect of CC0 on those rights. 28 | 29 | 1. Copyright and Related Rights. A Work made available under CC0 may be 30 | protected by copyright and related or neighboring rights ("Copyright and 31 | Related Rights"). Copyright and Related Rights include, but are not limited 32 | to, the following: 33 | 34 | i. the right to reproduce, adapt, distribute, perform, display, communicate, 35 | and translate a Work; 36 | 37 | ii. moral rights retained by the original author(s) and/or performer(s); 38 | 39 | iii. publicity and privacy rights pertaining to a person's image or likeness 40 | depicted in a Work; 41 | 42 | iv. rights protecting against unfair competition in regards to a Work, 43 | subject to the limitations in paragraph 4(a), below; 44 | 45 | v. rights protecting the extraction, dissemination, use and reuse of data in 46 | a Work; 47 | 48 | vi. database rights (such as those arising under Directive 96/9/EC of the 49 | European Parliament and of the Council of 11 March 1996 on the legal 50 | protection of databases, and under any national implementation thereof, 51 | including any amended or successor version of such directive); and 52 | 53 | vii. other similar, equivalent or corresponding rights throughout the world 54 | based on applicable law or treaty, and any national implementations thereof. 55 | 56 | 2. Waiver. To the greatest extent permitted by, but not in contravention of, 57 | applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and 58 | unconditionally waives, abandons, and surrenders all of Affirmer's Copyright 59 | and Related Rights and associated claims and causes of action, whether now 60 | known or unknown (including existing as well as future claims and causes of 61 | action), in the Work (i) in all territories worldwide, (ii) for the maximum 62 | duration provided by applicable law or treaty (including future time 63 | extensions), (iii) in any current or future medium and for any number of 64 | copies, and (iv) for any purpose whatsoever, including without limitation 65 | commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes 66 | the Waiver for the benefit of each member of the public at large and to the 67 | detriment of Affirmer's heirs and successors, fully intending that such Waiver 68 | shall not be subject to revocation, rescission, cancellation, termination, or 69 | any other legal or equitable action to disrupt the quiet enjoyment of the Work 70 | by the public as contemplated by Affirmer's express Statement of Purpose. 71 | 72 | 3. Public License Fallback. Should any part of the Waiver for any reason be 73 | judged legally invalid or ineffective under applicable law, then the Waiver 74 | shall be preserved to the maximum extent permitted taking into account 75 | Affirmer's express Statement of Purpose. In addition, to the extent the Waiver 76 | is so judged Affirmer hereby grants to each affected person a royalty-free, 77 | non transferable, non sublicensable, non exclusive, irrevocable and 78 | unconditional license to exercise Affirmer's Copyright and Related Rights in 79 | the Work (i) in all territories worldwide, (ii) for the maximum duration 80 | provided by applicable law or treaty (including future time extensions), (iii) 81 | in any current or future medium and for any number of copies, and (iv) for any 82 | purpose whatsoever, including without limitation commercial, advertising or 83 | promotional purposes (the "License"). The License shall be deemed effective as 84 | of the date CC0 was applied by Affirmer to the Work. Should any part of the 85 | License for any reason be judged legally invalid or ineffective under 86 | applicable law, such partial invalidity or ineffectiveness shall not 87 | invalidate the remainder of the License, and in such case Affirmer hereby 88 | affirms that he or she will not (i) exercise any of his or her remaining 89 | Copyright and Related Rights in the Work or (ii) assert any associated claims 90 | and causes of action with respect to the Work, in either case contrary to 91 | Affirmer's express Statement of Purpose. 92 | 93 | 4. Limitations and Disclaimers. 94 | 95 | a. No trademark or patent rights held by Affirmer are waived, abandoned, 96 | surrendered, licensed or otherwise affected by this document. 97 | 98 | b. Affirmer offers the Work as-is and makes no representations or warranties 99 | of any kind concerning the Work, express, implied, statutory or otherwise, 100 | including without limitation warranties of title, merchantability, fitness 101 | for a particular purpose, non infringement, or the absence of latent or 102 | other defects, accuracy, or the present or absence of errors, whether or not 103 | discoverable, all to the greatest extent permissible under applicable law. 104 | 105 | c. Affirmer disclaims responsibility for clearing rights of other persons 106 | that may apply to the Work or any use thereof, including without limitation 107 | any person's Copyright and Related Rights in the Work. Further, Affirmer 108 | disclaims responsibility for obtaining any necessary consents, permissions 109 | or other rights required for any use of the Work. 110 | 111 | d. Affirmer understands and acknowledges that Creative Commons is not a 112 | party to this document and has no duty or obligation with respect to this 113 | CC0 or use of the Work. 114 | 115 | For more information, please see 116 | 117 | -------------------------------------------------------------------------------- /api/all.json: -------------------------------------------------------------------------------- 1 | { 2 | "source": "http://awesome-practise-project.phodal.com/", 3 | "content": [ 4 | { 5 | "name": "前端", 6 | "subdomains": [ 7 | { 8 | "name": "必看", 9 | "projects": [ 10 | { 11 | "name": "TodoMVC", 12 | "link": "https://github.com/tastejs/todomvc", 13 | "desc": " 包含了一系列不同框架的Todo MVC,如Backbone.js, Ember.js, AngularJS" 14 | } 15 | ] 16 | }, 17 | { 18 | "name": "ReactJS", 19 | "projects": [ 20 | { 21 | "name": "Awesome React", 22 | "link": "https://github.com/enaqx/awesome-react", 23 | "desc": " A collection of awesome things regarding React ecosystem." 24 | }, 25 | { 26 | "name": "React Demos", 27 | "link": "https://github.com/ruanyf/react-demos", 28 | "desc": " 由阮一峰收集的React.js的相关Demos。加入索引时,一共有13个Demo,从简单的渲染JSX、Component的生命周期,到服务端渲染。" 29 | }, 30 | { 31 | "name": "同架JavaScript", 32 | "link": "https://github.com/DavidWells/isomorphic-react-example", 33 | "desc": " 这是一个基于React和Node.js、Express的示例,并且还包含视频。介绍了如何在前后端使用相同的代码来完成逻辑。" 34 | } 35 | ] 36 | }, 37 | { 38 | "name": "Angular.js", 39 | "projects": [ 40 | { 41 | "name": "Awesome AngularJS", 42 | "link": "https://github.com/gianarb/awesome-angularjs", 43 | "desc": " 🌀 A list of awesome AngularJs services, directives, utilities and resources." 44 | } 45 | ] 46 | }, 47 | { 48 | "name": "Angular 2", 49 | "projects": [ 50 | { 51 | "name": "Awesome Angular 2", 52 | "link": "https://github.com/AngularClass/awesome-angular2", 53 | "desc": " A curated list of awesome Angular 2 resources" 54 | } 55 | ] 56 | }, 57 | { 58 | "name": "Vue", 59 | "projects": [ 60 | { 61 | "name": "Awesome Vue", 62 | "link": "https://github.com/vuejs/awesome-vue", 63 | "desc": " A curated list of awesome things related to Vue.js" 64 | } 65 | ] 66 | }, 67 | { 68 | "name": "Ember.js", 69 | "projects": [ 70 | { 71 | "name": "Awesome Ember.js", 72 | "link": "https://github.com/nmec/awesome-ember", 73 | "desc": " A curated list of awesome Ember.js things" 74 | } 75 | ] 76 | }, 77 | { 78 | "name": "Riot", 79 | "projects": [ 80 | { 81 | "name": "Riot Todo", 82 | "link": "https://github.com/srackham/riot-todo", 83 | "desc": " 使用类似于Flux架构实现的Riot下的Todo应用。" 84 | } 85 | ] 86 | }, 87 | { 88 | "name": "Backbone", 89 | "projects": [ 90 | { 91 | "name": "Backbone Boilerplate", 92 | "link": "https://github.com/tbranyen/backbone-boilerplate", 93 | "desc": " Bakcbone.js下的工作流,包含可选的Backbone, jQuery, Lodash, Grunt, Babel, Combyne, Karma, Mocha以及Pure CSS。" 94 | } 95 | ] 96 | }, 97 | { 98 | "name": "Ionic", 99 | "projects": [ 100 | { 101 | "name": "Awesome Ionic", 102 | "link": "https://github.com/Alexintosh/Awesome-Ionic", 103 | "desc": " A curated list of awesome Ionic libraries, resources and solutions." 104 | }, 105 | { 106 | "name": "Ionic 2 会议应用", 107 | "link": "https://github.com/driftyco/ionic-conference-app", 108 | "desc": " 使用Ionic 2以及Typescript实现的会议应用。" 109 | }, 110 | { 111 | "name": "CNodejs Ionic", 112 | "link": "https://github.com/lanceli/cnodejs-ionic", 113 | "desc": " 使用Ionic实现的https://cnodejs.org的手机APP。" 114 | } 115 | ] 116 | } 117 | ] 118 | }, 119 | { 120 | "name": "后端", 121 | "subdomains": [ 122 | { 123 | "name": "Node.js", 124 | "projects": [ 125 | { 126 | "name": "Awesome Nodejs", 127 | "link": "https://github.com/sindresorhus/awesome-nodejs", 128 | "desc": " Delightful Node.js packages and resources" 129 | }, 130 | { 131 | "name": "Node.js Express Demos", 132 | "link": "https://github.com/bsspirit/nodejs-demo", 133 | "desc": " 这个项目原本是依照《Node.js开发指南》书中介绍的项目开始的,然而它讲的是Express2.x的,这个项目则以Express 3.x、Express 4.x为例子展开。" 134 | } 135 | ] 136 | }, 137 | { 138 | "name": "Laravel", 139 | "projects": [ 140 | { 141 | "name": "Awesome Laravel", 142 | "link": "https://github.com/chiraggude/awesome-laravel", 143 | "desc": " A curated list of awesome bookmarks, packages, tutorials, videos and other cool resources from the Laravel ecosystem." 144 | } 145 | ] 146 | }, 147 | { 148 | "name": "Spring MVC", 149 | "projects": [ 150 | { 151 | "name": "Spring MVC Showcase", 152 | "link": "https://github.com/spring-projects/spring-mvc-showcase", 153 | "desc": " 这个项目带有Spring MVC的大部分功能的演示,如从正常的Controller,到表单、文件上传、异常处理等等。" 154 | }, 155 | { 156 | "name": "Spring Blog", 157 | "link": "https://github.com/Raysmond/SpringBlog", 158 | "desc": " 用Spring Boot/MVC/JPA + Hibernate + MySQL + Redis + Bootstrap + Jade实现的博客系统。" 159 | } 160 | ] 161 | }, 162 | { 163 | "name": "Spring Boot", 164 | "projects": [ 165 | { 166 | "name": "Spring Boot samples", 167 | "link": "https://github.com/netgloo/spring-boot-samples", 168 | "desc": " 这个项目包含一系列的Spring Boot示例,当然还有相关的介绍。" 169 | }, 170 | { 171 | "name": "Spring Boot微服务模板", 172 | "link": "https://github.com/rohitghatol/spring-boot-microservices", 173 | "desc": " 这个项目介绍了如何用Spring Boot、Spring Cloud、Spring OAuth 2和Netflix OSS来实现微服务架构。" 174 | } 175 | ] 176 | }, 177 | { 178 | "name": "Django", 179 | "projects": [ 180 | { 181 | "name": "Awesome Django", 182 | "link": "https://github.com/rosarior/awesome-django", 183 | "desc": " 大家都懂的,A curated list of awesome Django apps, projects and resources。" 184 | } 185 | ] 186 | }, 187 | { 188 | "name": "Flask", 189 | "projects": [ 190 | { 191 | "name": "Awesome Flask", 192 | "link": "https://github.com/humiaozuzu/awesome-flask", 193 | "desc": " A curated list of awesome Flask resources and plugins." 194 | }, 195 | { 196 | "name": "Flask Boilerplate", 197 | "link": "https://github.com/mjhea0/flask-boilerplate", 198 | "desc": " 一个基于Flask、 Flask-SQLAlchemy、Flask-WTF、Fabric、Coverage、Bootstrap的Web应用。" 199 | } 200 | ] 201 | }, 202 | { 203 | "name": "Rails", 204 | "projects": [ 205 | { 206 | "name": "Awesome Rails", 207 | "link": "https://github.com/ekremkaraca/awesome-rails", 208 | "desc": " A collection / list of awesome projects, sites made with Rails." 209 | } 210 | ] 211 | } 212 | ] 213 | }, 214 | { 215 | "name": "前后端结合", 216 | "subdomains": [ 217 | { 218 | "name": "React", 219 | "projects": [ 220 | { 221 | "name": "React Starter Kit", 222 | "link": "https://github.com/kriasoft/react-starter-kit", 223 | "desc": " 基于Node.js, Express, GraphQL, React.js, Babel 6, PostCSS, Webpack, Browsersync提供的同构Web应用模板" 224 | } 225 | ] 226 | }, 227 | { 228 | "name": "Angular.js", 229 | "projects": [ 230 | { 231 | "name": "MEAN.JS", 232 | "link": "https://github.com/meanjs/mean", 233 | "desc": " 使用MongoDB, Express, AngularJS, and Node.js的全栈JavaScript。" 234 | }, 235 | { 236 | "name": "AngularJS + Flask Boilerplate App", 237 | "link": "https://github.com/shea256/angular-flask", 238 | "desc": " 以Flask作为后端,Angular.js作为前端的Web应用模板" 239 | } 240 | ] 241 | } 242 | ] 243 | } 244 | ] 245 | } --------------------------------------------------------------------------------