{"id":20859648,"url":"https://github.com/inlym/life-helper-web","last_synced_at":"2025-05-12T08:32:42.252Z","repository":{"id":41861108,"uuid":"384344871","full_name":"inlym/life-helper-web","owner":"inlym","description":"💄「小鸣助手」项目 Web 端源码，使用 Angular 框架","archived":false,"fork":false,"pushed_at":"2024-01-21T09:37:22.000Z","size":844,"stargazers_count":33,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-01-21T10:33:14.725Z","etag":null,"topics":["angular","typescript"],"latest_commit_sha":null,"homepage":"https://www.lifehelper.com.cn","language":"TypeScript","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/inlym.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,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-07-09T06:36:15.000Z","updated_at":"2023-11-18T12:34:33.000Z","dependencies_parsed_at":"2024-01-21T10:30:38.905Z","dependency_job_id":null,"html_url":"https://github.com/inlym/life-helper-web","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/inlym%2Flife-helper-web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inlym%2Flife-helper-web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inlym%2Flife-helper-web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inlym%2Flife-helper-web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/inlym","download_url":"https://codeload.github.com/inlym/life-helper-web/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225130723,"owners_count":17425506,"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":["angular","typescript"],"created_at":"2024-11-18T04:50:58.153Z","updated_at":"2024-11-18T04:50:58.766Z","avatar_url":"https://github.com/inlym.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003cimg alt=\"小鸣助手 Logo\" src=\"https://static.lifehelper.com.cn/static/project/logo.png\" style=\"height:120px;\" /\u003e\n  \u003cbr\u003e\n  \u003ch1\u003e小鸣助手\u003c/h1\u003e\n  \u003ch5\u003e让生活更简单一些\u003c/h5\u003e\n\u003c/div\u003e\n\n## 🤓 项目介绍\n\n「小鸣助手」是一个生活服务类小程序，主要为用户的日常生活提供一些便捷工具，例如天气查询、时间规划、生活记录等。目前该小程序已稳定运行近 5 年，为近 10 万用户提供了生活帮助。\n\n读者可直接扫描以下小程序码进行体验：\n\n![image](https://static.lifehelper.com.cn/static/project/qrcode.jpg)\n\n## 💡 项目特点\n\n1. 线上正式运行的项目，不是 demo，历经 5 年，久经用户考验。\n2. 开发尽量遵照业界最佳实践，可作为学习样板。\n3. 跟随版本更新，包含 Java、Spring Boot 等，尽量使用**最新稳定版**，保持技术栈不落后。\n\n## 🍱 源码仓库\n\n笔者在开发项目时，遵照了业界最佳实践，读者可通过研读项目源码来学习相关技术栈。按照功能分类，将项目拆分为了 4 个代码仓库，分别为：\n\n| 仓库                                                                        | 定位     | 技术栈                                                                               |\n| --------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------ |\n| [life-helper-server](https://github.com/inlym/life-helper-server)           | 服务端   | `Spring Boot` + `Spring Security` + `JWT` + `MyBatis` + `MySQL` + `Redis` + `Docker` |\n| [life-helper-backend](https://github.com/inlym/life-helper-backend)         | 服务端   | `Node.js` + `Nest.js` + `TypeScript` + `Typeorm` + `MySQL` + `Redis` + `Docker`      |\n| [life-helper-miniprogram](https://github.com/inlym/life-helper-miniprogram) | 小程序端 | `TypeScript` + `Scss`                                                                |\n| [life-helper-web](https://github.com/inlym/life-helper-web)                 | Web 端   | `Angular` + `TypeScript` + `Scss` + `RxJS` + `Webpack`                               |\n\n## 🗂️ 目录结构\n\n当前项目（[life-helper-server](https://github.com/inlym/life-helper-server)）是一个标准的 Spring Boot 项目，几乎遵照了所有的 Spring Boot\n最佳实践（至少笔者认为自己执行了最严格的标准）。\n\n关于项目的目录结构，一般有 2 种常见的思路：\n\n（1）方案一：以定位划分。这种方案的核心点在于以“代码”的角度，将同功能的代码文件放在一起，例如在电商项目中，商品、订单模块都有控制器，那么所有的控制器文件都放在 `controllers`\n目录下，所有的服务类都放在 `services` 目录下。\n\n（2）方案二：以功能划分。这种方案的核心点在于以“功能”的角度，将同业务模块的代码文件放在一起，例如不管是控制器还是服务类，只要是商品模块的代码文件，都放到 `goods`\n目录下。\n\n笔者在项目实践中，采用的是“**方案二**”，笔者认为在大型项目中，方案二更容易维护。以下是当前项目（[life-helper-server](https://github.com/inlym/life-helper-server)）的目录结构（_todo_）。\n\n```markdown\nlife-helper-server\n├── src/ # 项目核心代码\n│ ├── main/\n│ │ ├── java/ # 入口类及程序的开发目录\n│ │ └── resources/ # 资源文件目录，主要用于存放静态文件和配置文件\n│ │ ├── static/ # 用于存放静态资源，如 CSS 文件、Javascript 文件、图片等\n│ │ ├── templates/ # 用于存放模板文件，如 Thymeleaf 模板文件等\n│ │ └── application.yml # 用于配置项目运行所需的配置数据\n│ └── test/ # 单元测试程序目录\n├── .editorconfig # `EditorConfig` 插件的配置文件，用于控制一致的代码风格\n├── .gitignore # `Git` 的配置文件，用户控制不被 `Git` 跟踪的文件和目录\n├── Dockerfile # Docker 构建文件\n├── pom.xml # 用于配置项目基本信息和项目依赖\n└── README.md # 项目介绍文档，用于对外展现项目基本介绍\n```\n\n## 🚀 技术栈\n\n|     技术栈      | 链接                                          |\n| :-------------: | --------------------------------------------- |\n|   Spring Boot   | \u003chttps://spring.io/projects/spring-boot\u003e      |\n| Spring Security | \u003chttps://spring.io/projects/spring-security\u003e  |\n|     Lombok      | \u003chttps://www.projectlombok.org/\u003e              |\n|      Maven      | \u003chttps://maven.apache.org/\u003e                   |\n|     MyBatis     | \u003chttps://mybatis.org/mybatis-3/zh/index.html\u003e |\n|     Docker      | \u003chttps://www.docker.com/\u003e                     |\n|      MySQL      | \u003chttps://www.mysql.com/cn/\u003e                   |\n|      Redis      | \u003chttps://redis.io/\u003e                           |\n|      Druid      | \u003chttps://druid.apache.org/\u003e                   |\n|       JWT       | \u003chttps://jwt.io/\u003e                             |\n|     Swagger     | \u003chttps://swagger.io/\u003e                         |\n\n## ❓ 常见问题\n\n| 序号 | 问题                                                          |\n| ---- | ------------------------------------------------------------- |\n| 1    | [如何启动项目？](https://github.com/inlym/life-helper-server) |\n\n## 📞 交流沟通\n\n如果你在使用「小鸣助手」小程序过程中，遇到任何问题，或者有任何意见建议，你可以通过以下方式联系我：\n\n- [x] 邮箱：_inlym@qq.com_\n- [x] 公众号：搜索公众号「**1 鸣的写字台**」或微信号 `iam1ming`。\n\n## 📄 许可证\n\n本项目使用 [MIT](LICENSE) 许可证。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finlym%2Flife-helper-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finlym%2Flife-helper-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finlym%2Flife-helper-web/lists"}