base on 又一个小商城。litemall = Spring Boot后端 + Vue管理员前端 + 微信小程序用户前端 + Vue用户移动端 # litemall 又一个小商场系统。 litemall = Spring Boot后端 + Vue管理员前端 + 微信小程序用户前端 + Vue用户移动端 * [文档](https://linlinjava.gitbook.io/litemall) * [贡献](https://linlinjava.gitbook.io/litemall/contribute) * [FAQ](https://linlinjava.gitbook.io/litemall/faq) * [API](https://linlinjava.gitbook.io/litemall/api) ## 项目代码 * [码云](https://gitee.com/linlinjava/litemall) * [GitHub](https://github.com/linlinjava/litemall) ## 项目架构 ![](./doc/pics/readme/project-structure.png) ## 技术栈 > 1. Spring Boot > 2. Vue > 3. 微信小程序 ![](doc/pics/readme/technology-stack.png) ## 功能 ### 小商城功能 * 首页 * 专题列表、专题详情 * 分类列表、分类详情 * 品牌列表、品牌详情 * 新品首发、人气推荐 * 优惠券列表、优惠券选择 * 团购 * 搜索 * 商品详情、商品评价、商品分享 * 购物车 * 下单 * 订单列表、订单详情、订单售后 * 地址、收藏、足迹、意见反馈 * 客服 ### 管理平台功能 * 会员管理 * 商城管理 * 商品管理 * 推广管理 * 系统管理 * 配置管理 * 统计报表 ## 快速启动 1. 配置最小开发环境: * [MySQL](https://dev.mysql.com/downloads/mysql/) * [JDK1.8或以上](http://www.oracle.com/technetwork/java/javase/overview/index.html) * [Maven](https://maven.apache.org/download.cgi) * [Nodejs](https://nodejs.org/en/download/) * [微信开发者工具](https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html) 2. 数据库依次导入litemall-db/sql下的数据库文件 * litemall_schema.sql * litemall_table.sql * litemall_data.sql 3. 启动小商场和管理后台的后端服务 打开命令行,输入以下命令 ```bash cd litemall mvn install mvn clean package java -Dfile.encoding=UTF-8 -jar litemall-all/target/litemall-all-0.1.0-exec.jar ``` 4. 启动管理后台前端 打开命令行,输入以下命令 ```bash cd litemall/litemall-admin npm install --registry=https://registry.npm.taobao.org npm run dev ``` 此时,浏览器打开,输入网址`http://localhost:9527`, 此时进入管理后台登录页面。 5. 启动小商城前端 这里存在两套小商场前端litemall-wx和renard-wx,开发者可以分别导入和测试: 1. 微信开发工具导入litemall-wx项目; 2. 项目配置,启用“不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书” 3. 点击“编译”,即可在微信开发工具预览效果; 4. 也可以点击“预览”,然后手机扫描登录(但是手机需开启调试功能)。 注意: > 这里只是最简启动方式,而小商场的微信登录、微信支付等功能需开发者设置才能运行, > 更详细方案请参考[文档](https://linlinjava.gitbook.io/litemall/project)。 6. 启动轻商城前端 打开命令行,输入以下命令 ```bash cd litemall/litemall-vue npm install --registry=https://registry.npm.taobao.org npm run dev ``` 此时,浏览器(建议采用chrome 手机模式)打开,输入网址`http://localhost:6255`, 此时进入轻商场。 注意: > 现在功能很不稳定,处在开发阶段。 ## 警告 > 1. 本项目仅用于学习练习 > 2. 本项目还不完善,仍处在开发中,不承担任何使用后果 > 3. 本项目代码开源[MIT](./LICENSE),项目文档采用 [署名-禁止演绎 4.0 国际协议许可](https://creativecommons.org/licenses/by-nd/4.0/deed.zh) ## 致谢 本项目基于或参考以下项目: 1. [nideshop-mini-program](https://github.com/tumobi/nideshop-mini-program) 项目介绍:基于Node.js+MySQL开发的开源微信小程序商城(微信小程序) 项目参考: 1. litemall项目数据库基于nideshop-mini-program项目数据库; 2. litemall项目的litemall-wx模块基于nideshop-mini-program开发。 2. [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin) 项目介绍: 一个基于Vue和Element的后台集成方案 项目参考:litemall项目的litemall-admin模块的前端框架基于vue-element-admin项目修改扩展。 3. [mall-admin-web](https://github.com/macrozheng/mall-admin-web) 项目介绍:mall-admin-web是一个电商后台管理系统的前端项目,基于Vue+Element实现。 项目参考:litemall项目的litemall-admin模块的一些页面布局样式参考了mall-admin-web项目。 4. [biu](https://github.com/CaiBaoHong/biu) 项目介绍:管理后台项目开发脚手架,基于vue-element-admin和springboot搭建,前后端分离方式开发和部署。 项目参考:litemall项目的权限管理功能参考了biu项目。 5. [vant--mobile-mall](https://github.com/qianzhaoy/vant--mobile-mall) 项目介绍:基于有赞 vant 组件库的移动商城。 项目参考:litemall项目的litemall-vue模块基于vant--mobile-mall项目开发。 ## 推荐 1. [Flutter_Mall](https://github.com/youxinLu/mall) 项目介绍:Flutter_Mall是一款Flutter开源在线商城应用程序。 2. [Taro_Mall](https://github.com/jiechud/taro-mall) 项目介绍:Taro_Mall是一款多端开源在线商城应用程序,后台是基于litemall基础上进行开发,前端采用Taro框架编写。 ## License [MIT](https://github.com/linlinjava/litemall/blob/master/LICENSE) Copyright (c) 2018-present linlinjava", Assign "at most 3 tags" to the expected json: {"id":"6939","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"