{"id":13603939,"url":"https://github.com/phodal/ideabook","last_synced_at":"2025-05-15T08:08:38.046Z","repository":{"id":37406078,"uuid":"55874746","full_name":"phodal/ideabook","owner":"phodal","description":"一个全栈增长工程师的练手项目集. A Growth Engineering Idea in Action.","archived":false,"fork":false,"pushed_at":"2017-11-20T09:21:05.000Z","size":3823,"stargazers_count":3772,"open_issues_count":1,"forks_count":797,"subscribers_count":361,"default_branch":"gh-pages","last_synced_at":"2025-04-06T14:09:38.313Z","etag":null,"topics":["ebook","github-books","growth","idea","ideabook","phodal"],"latest_commit_sha":null,"homepage":"http://ideabook.phodal.com/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phodal.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":"2016-04-10T01:15:48.000Z","updated_at":"2025-04-04T23:29:57.000Z","dependencies_parsed_at":"2022-07-20T02:33:01.379Z","dependency_job_id":null,"html_url":"https://github.com/phodal/ideabook","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/phodal%2Fideabook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phodal%2Fideabook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phodal%2Fideabook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phodal%2Fideabook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phodal","download_url":"https://codeload.github.com/phodal/ideabook/tar.gz/refs/heads/gh-pages","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248871132,"owners_count":21175161,"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":["ebook","github-books","growth","idea","ideabook","phodal"],"created_at":"2024-08-01T19:00:36.850Z","updated_at":"2025-04-14T11:28:17.538Z","avatar_url":"https://github.com/phodal.png","language":"HTML","readme":"一个全栈增长工程师的练手项目集\n===\n\n\u003e English version is Ongoing, welcome to join us.\n\n**你是不是在为提高编程技术而发愁？**\n\n**你是不是在为找不到合适的练手项目而烦恼？**\n\n**你是不是在为有合适的项目，但是没有指南而烦恼？**\n\n我的其他电子书：\n\n - 《[一步步搭建物联网系统](https://github.com/phodal/designiot)》\n - 《[GitHub 漫游指南](https://github.com/phodal/github-roam)》\n - 《[RePractise](https://github.com/phodal/repractise)》\n - 《[Growth: 全栈增长工程师指南](https://github.com/phodal/growth-ebook)》\n - 《[Growth: 全栈增长工程师实战](https://github.com/phodal/growth-in-action)》\n\n欢迎关注我的微信公众号（扫描下面的二维码或搜索 Phodal）.\n\n![QRCode](https://phodal.github.io/growth-materials/wp.jpg)\n\n目录\n---\n\n*   [分析网站日志，打造访问地图](http://ideabook.phodal.com/#分析网站日志打造访问地图)\n    *   [概况](http://ideabook.phodal.com/#概况)\n        *   [背景](http://ideabook.phodal.com/#背景)\n        *   [ShowCase](http://ideabook.phodal.com/#showcase)\n        *   [Hadoop + Pig + Jython + AmMap + ElasticSearch](http://ideabook.phodal.com/#hadoop-pig-jython-ammap-elasticsearch)\n    *   [步骤](http://ideabook.phodal.com/#步骤)\n        *   [Step 1: 搭建基础设施](http://ideabook.phodal.com/#step-1-搭建基础设施)\n        *   [Step 2: 解析access.log](http://ideabook.phodal.com/#step-2-解析access.log)\n        *   [Step 3: 转换IP为GEO信息](http://ideabook.phodal.com/#step-3-转换ip为geo信息)\n        *   [Step 4: 展示数据到地图上](http://ideabook.phodal.com/#step-4-展示数据到地图上)\n        *   [练习建议](http://ideabook.phodal.com/#练习建议)\n*   [书籍录入移动应用：条形码扫描](http://ideabook.phodal.com/#书籍录入移动应用条形码扫描)\n    *   [概况](http://ideabook.phodal.com/#概况-1)\n        *   [背景](http://ideabook.phodal.com/#背景-1)\n        *   [ShowCase](http://ideabook.phodal.com/#showcase-1)\n        *   [Ionic + Zxing](http://ideabook.phodal.com/#ionic-zxing)\n    *   [步骤](http://ideabook.phodal.com/#步骤-1)\n        *   [Step 1: ZXing扫描与Douban API](http://ideabook.phodal.com/#step-1-zxing扫描与douban-api)\n        *   [Step 2: 存储数据库](http://ideabook.phodal.com/#step-2-存储数据库)\n        *   [练习建议](http://ideabook.phodal.com/#练习建议-1)\n*   [制作专属Badge](http://ideabook.phodal.com/#制作专属badge)\n    *   [概况](http://ideabook.phodal.com/#概况-2)\n        *   [背景](http://ideabook.phodal.com/#背景-2)\n        *   [ShowCase](http://ideabook.phodal.com/#showcase-2)\n        *   [SVG与SVGWrite](http://ideabook.phodal.com/#svg与svgwrite)\n    *   [步骤](http://ideabook.phodal.com/#步骤-2)\n        *   [Step 1: 基本图形](http://ideabook.phodal.com/#step-1-基本图形)\n        *   [Step 2: 高级Badge](http://ideabook.phodal.com/#step-2-高级badge)\n*   [微信文章编辑器](http://ideabook.phodal.com/#微信文章编辑器)\n    *   [概况](http://ideabook.phodal.com/#概况-3)\n        *   [背景](http://ideabook.phodal.com/#背景-3)\n        *   [ShowCase](http://ideabook.phodal.com/#showcase-3)\n        *   [CKEditor + Ractive](http://ideabook.phodal.com/#ckeditor-ractive)\n    *   [步骤](http://ideabook.phodal.com/#步骤-3)\n        *   [Step 1: hello,world](http://ideabook.phodal.com/#step-1-helloworld)\n        *   [Step 2: Require.js模块化](http://ideabook.phodal.com/#step-2-require.js模块化)\n        *   [Step 3: 初始化](http://ideabook.phodal.com/#step-3-初始化)\n        *   [Step 4: 创建对应的View](http://ideabook.phodal.com/#step-4-创建对应的view)\n        *   [练习建议](http://ideabook.phodal.com/#练习建议-2)\n*   [JavaScript制作Slide框架](http://ideabook.phodal.com/#javascript制作slide框架)\n    *   [概况](http://ideabook.phodal.com/#概况-4)\n        *   [背景](http://ideabook.phodal.com/#背景-4)\n        *   [Showcase](http://ideabook.phodal.com/#showcase-4)\n        *   [需求](http://ideabook.phodal.com/#需求)\n    *   [步骤](http://ideabook.phodal.com/#步骤-4)\n        *   [Step 1: 基本的Slide功能](http://ideabook.phodal.com/#step-1-基本的slide功能)\n        *   [Step 2: 解析Markdown](http://ideabook.phodal.com/#step-2-解析markdown)\n        *   [Step 3: 事件处理](http://ideabook.phodal.com/#step-3-事件处理)\n        *   [Step 4: 解析字幕](http://ideabook.phodal.com/#step-4-解析字幕)\n        *   [Step 5: 进度条](http://ideabook.phodal.com/#step-5-进度条)\n        *   [Step 6: 同步](http://ideabook.phodal.com/#step-6-同步)\n        *   [练习建议](http://ideabook.phodal.com/#练习建议-3)\n*   [编辑-发布-分离的博客系统](http://ideabook.phodal.com/#编辑-发布-分离的博客系统)\n    *   [概况](http://ideabook.phodal.com/#概况-5)\n        *   [背景: 编辑-发布-开发分离](http://ideabook.phodal.com/#背景-编辑-发布-开发分离)\n        *   [用户场景](http://ideabook.phodal.com/#用户场景)\n    *   [步骤](http://ideabook.phodal.com/#步骤-5)\n        *   [Step 1: 构建工具](http://ideabook.phodal.com/#step-1-构建工具)\n        *   [Step 2: 静态页面生成](http://ideabook.phodal.com/#step-2-静态页面生成)\n*   [Solr实现多边形地理搜索](http://ideabook.phodal.com/#solr实现多边形地理搜索)\n    *   [概况](http://ideabook.phodal.com/#概况-6)\n        *   [背景](http://ideabook.phodal.com/#背景-5)\n        *   [Showcase](http://ideabook.phodal.com/#showcase-5)\n        *   [Solr](http://ideabook.phodal.com/#solr)\n    *   [步骤](http://ideabook.phodal.com/#步骤-6)\n        *   [Step 1: Solr Flask](http://ideabook.phodal.com/#step-1-solr-flask)\n        *   [Step 2: Google map Polygon](http://ideabook.phodal.com/#step-2-google-map-polygon)\n*   [一份代码打造跨平台应用](http://ideabook.phodal.com/#一份代码打造跨平台应用)\n    *   [概况](http://ideabook.phodal.com/#概况-7)\n        *   [背景](http://ideabook.phodal.com/#背景-6)\n        *   [ShowCase](http://ideabook.phodal.com/#showcase-6)\n        *   [Ionic \u0026 Electron \u0026 Cordova](http://ideabook.phodal.com/#ionic-electron-cordova)\n    *   [步骤](http://ideabook.phodal.com/#步骤-7)\n        *   [Step 1: 从Web到混合应用，再到桌面应用](http://ideabook.phodal.com/#step-1-从web到混合应用再到桌面应用)\n        *   [Step 2: 响应式设计](http://ideabook.phodal.com/#step-2-响应式设计)\n        *   [Step 3: 平台特定代码](http://ideabook.phodal.com/#step-3-平台特定代码)\n        *   [未来](http://ideabook.phodal.com/#未来)\n*   [Ionic与ElasticSearch打造O2O应用](http://ideabook.phodal.com/#ionic与elasticsearch打造o2o应用)\n    *   [概况](http://ideabook.phodal.com/#概况-8)\n        *   [背景](http://ideabook.phodal.com/#背景-7)\n        *   [Showcase](http://ideabook.phodal.com/#showcase-7)\n        *   [构架设计](http://ideabook.phodal.com/#构架设计)\n    *   [步骤](http://ideabook.phodal.com/#步骤-8)\n        *   [Step 1: Django GIS 设置](http://ideabook.phodal.com/#step-1-django-gis-设置)\n        *   [Step 2: 配置Haystack](http://ideabook.phodal.com/#step-2-配置haystack)\n        *   [Step 3: Django Haystack Model创建](http://ideabook.phodal.com/#step-3-django-haystack-model创建)\n        *   [Step 4: 创建search_index](http://ideabook.phodal.com/#step-4-创建search_index)\n        *   [Step 4: Ionic ElasticSearch 创建页面](http://ideabook.phodal.com/#step-4-ionic-elasticsearch-创建页面)\n        *   [Step 5: Ionic ElasticSearch Service](http://ideabook.phodal.com/#step-5-ionic-elasticsearch-service)\n        *   [Step 6: Ionic OpenLayer 地图显示](http://ideabook.phodal.com/#step-6-ionic-openlayer-地图显示)\n*   [一步步搭建JavaScript框架](http://ideabook.phodal.com/#一步步搭建javascript框架)\n    *   [概况](http://ideabook.phodal.com/#概况-9)\n        *   [背景](http://ideabook.phodal.com/#背景-8)\n    *   [步骤](http://ideabook.phodal.com/#步骤-9)\n        *   [Step 1: 注册npm和bower包](http://ideabook.phodal.com/#step-1-注册npm和bower包)\n        *   [Step 2: 生成Javascript项目框架](http://ideabook.phodal.com/#step-2-生成javascript项目框架)\n        *   [Step 3: 寻找所需要的函数](http://ideabook.phodal.com/#step-3-寻找所需要的函数)\n        *   [Step 4: 整合](http://ideabook.phodal.com/#step-4-整合)\n        *   [Step 5: 测试](http://ideabook.phodal.com/#step-5-测试)\n        *   [练习建议](http://ideabook.phodal.com/#练习建议-4)\n*   [制作简易Mac OS上的伪锁屏工具](http://ideabook.phodal.com/#制作简易mac-os上的伪锁屏工具)\n    *   [概况](http://ideabook.phodal.com/#概况-10)\n        *   [背景](http://ideabook.phodal.com/#背景-9)\n    *   [步骤](http://ideabook.phodal.com/#步骤-10)\n        *   [Step 1：屏幕截图](http://ideabook.phodal.com/#step-1屏幕截图)\n        *   [Step 2：调节亮度](http://ideabook.phodal.com/#step-2调节亮度)\n        *   [Step 3：全屏图片](http://ideabook.phodal.com/#step-3全屏图片)\n*   [基于Virtual DOM的测试代码生成](http://ideabook.phodal.com/#基于virtual-dom的测试代码生成)\n    *   [概况](http://ideabook.phodal.com/#概况-11)\n        *   [背景](http://ideabook.phodal.com/#背景-10)\n        *   [ShowCase](http://ideabook.phodal.com/#showcase-8)\n        *   [基本原理](http://ideabook.phodal.com/#基本原理)\n    *   [步骤](http://ideabook.phodal.com/#步骤-11)\n        *   [Step 1: Virtual-dom与HyperScript](http://ideabook.phodal.com/#step-1-virtual-dom与hyperscript)\n        *   [Step 2: 标记DOM变化](http://ideabook.phodal.com/#step-2-标记dom变化)\n*   [基于Backbone的单页面移动应用](http://ideabook.phodal.com/#基于backbone的单页面移动应用)\n    *   [概况](http://ideabook.phodal.com/#概况-12)\n        *   [背景](http://ideabook.phodal.com/#背景-11)\n        *   [Showcase](http://ideabook.phodal.com/#showcase-9)\n        *   [jQuery + Backbone + UnderScore + Require.JS](http://ideabook.phodal.com/#jquery-backbone-underscore-require.js)\n    *   [步骤](http://ideabook.phodal.com/#步骤-12)\n        *   [Step 1: 使用Require.js管理依赖](http://ideabook.phodal.com/#step-1-使用require.js管理依赖)\n        *   [Step 2: 添加路由](http://ideabook.phodal.com/#step-2-添加路由)\n        *   [Step 3: 创建主页View](http://ideabook.phodal.com/#step-3-创建主页view)\n        *   [Step 4: jQuery Sidr](http://ideabook.phodal.com/#step-4-jquery-sidr)\n        *   [Step 5: Django Tastypie示例](http://ideabook.phodal.com/#step-5-django-tastypie示例)\n        *   [Step 6: RequireJS Plugins](http://ideabook.phodal.com/#step-6-requirejs-plugins)\n        *   [Step 6: 简单的博客](http://ideabook.phodal.com/#step-6-简单的博客)\n        *   [Step 7: 重构](http://ideabook.phodal.com/#step-7-重构)\n        *   [Step 8: 移动CMS滑动](http://ideabook.phodal.com/#step-8-移动cms滑动)\n*   [Oculus + Node.js + Three.js 打造VR世界](http://ideabook.phodal.com/#oculus-node.js-three.js-打造vr世界)\n    *   [概况](http://ideabook.phodal.com/#概况-13)\n        *   [背景](http://ideabook.phodal.com/#背景-12)\n        *   [Showcase](http://ideabook.phodal.com/#showcase-10)\n        *   [框架： Oculus Rift \u0026 Node NMD](http://ideabook.phodal.com/#框架-oculus-rift-node-nmd)\n    *   [步骤](http://ideabook.phodal.com/#步骤-13)\n        *   [Step 1: Node Oculus Services](http://ideabook.phodal.com/#step-1-node-oculus-services)\n        *   [Step 2: Node.js Oculus Hello，World](http://ideabook.phodal.com/#step-2-node.js-oculus-helloworld)\n        *   [Step 3: Node Oculus WebSocket](http://ideabook.phodal.com/#step-3-node-oculus-websocket)\n        *   [Step 4: Oculus Effect + DK2 Control](http://ideabook.phodal.com/#step-4-oculus-effect-dk2-control)\n        *   [Step 5: Three.js KeyHandler](http://ideabook.phodal.com/#step-5-three.js-keyhandler)\n        *   [练习建议](http://ideabook.phodal.com/#练习建议-5)\n*   [手动制作照片地图](http://ideabook.phodal.com/#手动制作照片地图)\n    *   [概况](http://ideabook.phodal.com/#概况-14)\n        *   [Background:把照片放在地图上](http://ideabook.phodal.com/#background把照片放在地图上)\n        *   [Showcase](http://ideabook.phodal.com/#showcase-11)\n        *   [框架： EXIF \u0026 ExifRead \u0026 CartoDB](http://ideabook.phodal.com/#框架-exif-exifread-cartodb)\n    *   [步骤](http://ideabook.phodal.com/#步骤-14)\n        *   [Step 1: 解析读取照片信息](http://ideabook.phodal.com/#step-1-解析读取照片信息)\n        *   [Step 2: 上传数据](http://ideabook.phodal.com/#step-2-上传数据)\n        *   [练习建议](http://ideabook.phodal.com/#练习建议-6)\n*   [D3.js打造技能树](http://ideabook.phodal.com/#d3.js打造技能树)\n    *   [概况](http://ideabook.phodal.com/#概况-15)\n        *   [背景](http://ideabook.phodal.com/#背景-13)\n        *   [Showcase](http://ideabook.phodal.com/#showcase-12)\n        *   [Graphviz](http://ideabook.phodal.com/#graphviz)\n    *   [步骤](http://ideabook.phodal.com/#步骤-15)\n        *   [Step 1: 打造简单的技能树](http://ideabook.phodal.com/#step-1-打造简单的技能树)\n        *   [Step 3: D3.js Tooltipster](http://ideabook.phodal.com/#step-3-d3.js-tooltipster)\n*   [技术雷达趋势](http://ideabook.phodal.com/#技术雷达趋势)\n    *   [概况](http://ideabook.phodal.com/#概况-16)\n        *   [背景](http://ideabook.phodal.com/#背景-14)\n        *   [Showcase](http://ideabook.phodal.com/#showcase-13)\n        *   [D3.js](http://ideabook.phodal.com/#d3.js)\n    *   [步骤](http://ideabook.phodal.com/#步骤-16)\n        *   [Step 1: Schema与原始代码](http://ideabook.phodal.com/#step-1-schema与原始代码)\n        *   [Step 2: 处理数据](http://ideabook.phodal.com/#step-2-处理数据)\n*   [文本转Logo](http://ideabook.phodal.com/#文本转logo)\n    *   [概况](http://ideabook.phodal.com/#概况-17)\n        *   [背景](http://ideabook.phodal.com/#背景-15)\n        *   [ShowCase](http://ideabook.phodal.com/#showcase-14)\n        *   [需求说明](http://ideabook.phodal.com/#需求说明)\n    *   [步骤](http://ideabook.phodal.com/#步骤-17)\n        *   [Step 1: Python 文字转Logo实战](http://ideabook.phodal.com/#step-1-python-文字转logo实战)\n*   [GeoJSON与ElasticSearch实现高级图形搜索](http://ideabook.phodal.com/#geojson与elasticsearch实现高级图形搜索)\n    *   [概况](http://ideabook.phodal.com/#概况-18)\n        *   [Showcase](http://ideabook.phodal.com/#showcase-15)\n        *   [jQuery + Mustache + Leaflet](http://ideabook.phodal.com/#jquery-mustache-leaflet)\n    *   [步骤](http://ideabook.phodal.com/#步骤-18)\n        *   [Step 1: 离线地图与搜索](http://ideabook.phodal.com/#step-1-离线地图与搜索)\n        *   [Step 2: 从地点到地图上显示](http://ideabook.phodal.com/#step-2-从地点到地图上显示)\n        *   [Step 3: 从地图到地点上显示](http://ideabook.phodal.com/#step-3-从地图到地点上显示)\n\nLicense\n---\n\n[![Phodal's Book](http://brand.phodal.com/shields/book-small.svg)](https://www.phodal.com/)    [![Phodal's Idea](http://brand.phodal.com/shields/idea-small.svg)](http://ideas.phodal.com/)\n\n© 2016 [Phodal Huang](https://www.phodal.com). This code is distributed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0  License. See `LICENSE` in this directory.\n\n[![待我代码编成,娶你为妻可好](http://brand.phodal.com/slogan/slogan.svg)](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/)\n\n","funding_links":[],"categories":["HTML","编程之禅"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphodal%2Fideabook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphodal%2Fideabook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphodal%2Fideabook/lists"}