时尚魔镜 FashionMagicMirror 虚拟试衣独立仓 (Angular18+Ionic8+Capacitor6)

liuyuyang ccdf2e0fab chore: 飞马 Harness 初始化 (.fmode/config.json + CLAUDE.md + CHANGELOG) před 6 dny
.fmode 4efe87ee03 chore: 飞马 Harness 初始化 (.fmode/config.json + CLAUDE.md + CHANGELOG) před 6 dny
src cc16f36121 feat: 从 2205106/FashionMagicMirror 提取独立仓(Angular18+Ionic8+Capacitor6 虚拟试衣) před 6 dny
.browserslistrc cc16f36121 feat: 从 2205106/FashionMagicMirror 提取独立仓(Angular18+Ionic8+Capacitor6 虚拟试衣) před 6 dny
.editorconfig cc16f36121 feat: 从 2205106/FashionMagicMirror 提取独立仓(Angular18+Ionic8+Capacitor6 虚拟试衣) před 6 dny
.eslintrc.json cc16f36121 feat: 从 2205106/FashionMagicMirror 提取独立仓(Angular18+Ionic8+Capacitor6 虚拟试衣) před 6 dny
.gitignore cc16f36121 feat: 从 2205106/FashionMagicMirror 提取独立仓(Angular18+Ionic8+Capacitor6 虚拟试衣) před 6 dny
01.png cc16f36121 feat: 从 2205106/FashionMagicMirror 提取独立仓(Angular18+Ionic8+Capacitor6 虚拟试衣) před 6 dny
02.png cc16f36121 feat: 从 2205106/FashionMagicMirror 提取独立仓(Angular18+Ionic8+Capacitor6 虚拟试衣) před 6 dny
03.png cc16f36121 feat: 从 2205106/FashionMagicMirror 提取独立仓(Angular18+Ionic8+Capacitor6 虚拟试衣) před 6 dny
04.png cc16f36121 feat: 从 2205106/FashionMagicMirror 提取独立仓(Angular18+Ionic8+Capacitor6 虚拟试衣) před 6 dny
05.png cc16f36121 feat: 从 2205106/FashionMagicMirror 提取独立仓(Angular18+Ionic8+Capacitor6 虚拟试衣) před 6 dny
06.png cc16f36121 feat: 从 2205106/FashionMagicMirror 提取独立仓(Angular18+Ionic8+Capacitor6 虚拟试衣) před 6 dny
07.png cc16f36121 feat: 从 2205106/FashionMagicMirror 提取独立仓(Angular18+Ionic8+Capacitor6 虚拟试衣) před 6 dny
CHANGELOG.md 4efe87ee03 chore: 飞马 Harness 初始化 (.fmode/config.json + CLAUDE.md + CHANGELOG) před 6 dny
CLAUDE.md 4efe87ee03 chore: 飞马 Harness 初始化 (.fmode/config.json + CLAUDE.md + CHANGELOG) před 6 dny
README.md cc16f36121 feat: 从 2205106/FashionMagicMirror 提取独立仓(Angular18+Ionic8+Capacitor6 虚拟试衣) před 6 dny
angular.json cc16f36121 feat: 从 2205106/FashionMagicMirror 提取独立仓(Angular18+Ionic8+Capacitor6 虚拟试衣) před 6 dny
capacitor.config.ts cc16f36121 feat: 从 2205106/FashionMagicMirror 提取独立仓(Angular18+Ionic8+Capacitor6 虚拟试衣) před 6 dny
guimo.png cc16f36121 feat: 从 2205106/FashionMagicMirror 提取独立仓(Angular18+Ionic8+Capacitor6 虚拟试衣) před 6 dny
ionic.config.json cc16f36121 feat: 从 2205106/FashionMagicMirror 提取独立仓(Angular18+Ionic8+Capacitor6 虚拟试衣) před 6 dny
karma.conf.js cc16f36121 feat: 从 2205106/FashionMagicMirror 提取独立仓(Angular18+Ionic8+Capacitor6 虚拟试衣) před 6 dny
package-lock.json cc16f36121 feat: 从 2205106/FashionMagicMirror 提取独立仓(Angular18+Ionic8+Capacitor6 虚拟试衣) před 6 dny
package.json cc16f36121 feat: 从 2205106/FashionMagicMirror 提取独立仓(Angular18+Ionic8+Capacitor6 虚拟试衣) před 6 dny
tsconfig.app.json cc16f36121 feat: 从 2205106/FashionMagicMirror 提取独立仓(Angular18+Ionic8+Capacitor6 虚拟试衣) před 6 dny
tsconfig.json cc16f36121 feat: 从 2205106/FashionMagicMirror 提取独立仓(Angular18+Ionic8+Capacitor6 虚拟试衣) před 6 dny
tsconfig.spec.json cc16f36121 feat: 从 2205106/FashionMagicMirror 提取独立仓(Angular18+Ionic8+Capacitor6 虚拟试衣) před 6 dny

README.md

fmode-app-mirror · 时尚魔镜虚拟试衣

时尚魔镜(Fashion Magic Mirror):随时随地虚拟试穿,让每一套穿搭都完美无瑕。 从 Nova 体系课程项目 2205106/FashionMagicMirror 提取的独立仓库。

项目定位

移动端虚拟试衣应用:用户可在「换装 / 上传 / 结果」流程中浏览服装图集、上传自己的照片并选择服装完成虚拟试穿,另含好友列表与个人中心。

技术栈

选型
框架 Angular 18 + Ionic 8(tabs 结构:tab1 主页 / tab2 好友 / tab3 个人 / mine·user-info)
轮播 Swiper 11(本地打包 src/assets/swiper,无外网依赖)
动效 Angular Animations(@angular/platform-browser/animations/async
移动端壳 Capacitor 6(本仓仅 Web 发布,不构建原生平台)
后端 Parse(https://server.fmode.cn/parse,appId ncloudmaster;登录/注册/个人中心)
发布 静态产物上华为云 OBS + CDN(https://fmode.cn/aipm-lesson/fmode-app-mirror/

本地运行

# Node 20.x 推荐
npm ci          # 优先按 package-lock 安装;如 peer deps 冲突改用 npm install --legacy-peer-deps
npm start       # ng serve → http://localhost:4200

路由:/tabs/tab1(主页·虚拟试衣)、/tabs/tab2(好友列表)、/tabs/tab3(个人)、/user(登录注册)、/mine(用户信息)。

构建发布

npx ng build --configuration production   # 产物在 www/
cp www/index.html www/404.html            # SPA 路由 fallback,防刷新 404

上传 OBS(逐文件指定目标键并带 content-type,勿目录递归 cp):

obsutil cp www/index.html obs://www-fmode.cn/aipm-lesson/fmode-app-mirror/index.html \
  -meta=content-type:text/html -acl=public-read -e=obs.cn-south-1.myhuaweicloud.com
# 其余 js/css/资产同理(js: text/javascript, css: text/css, png/jpg: 对应 image 类型)

随后刷新 CDN(fmode.cn 域名组):

node /opt/data/git-repos/fmode-app/scripts/refresh-fmode-cn.js \
  https://fmode.cn/aipm-lesson/fmode-app-mirror/index.html

线上地址:https://fmode.cn/aipm-lesson/fmode-app-mirror/index.html

工程纪律(飞马 Harness)

  • 凭据零暴露:AK/SK、sessionToken、Gogs token 一律不入库、不入日志、不入报告。
  • 提交遵循 Conventional Commits(feat: / fix: / docs: / chore:)。
  • 发布与 Git 归档是两个独立状态,分别验证、分别报告(git ls-remote + curl 逐 URL 验收)。
  • 页面验收以无头浏览器截图 + console 输出为准,禁止伪造运行成功。

源仓致谢

本项目提取自 FmodeLabs Nova 体系学员项目 FashionMagicMirror(2205106),保留其原始业务代码与素材(根目录 01-07.png / guimo.png 为产品策划书插图),在此致谢原作者。README 与工程化配置按独立仓标准重写。