校园记忆胶片杂志 — 每一张照片,都是青春的底片。
Memories 是一款专为校园场景打造的跨平台客户端,支持 Android、iOS、Windows、macOS 和 Linux。每所学校拥有独立的客户端包,数据隔离、安全可靠。
Memories 致力于为学校学生打造一个温暖、安全、智能的记忆分享平台,让青春的每一帧都被珍藏。
校园时光是人生中最珍贵的记忆之一。我们相信,每一张照片都承载着独特的故事与情感。Memories 希望成为这些美好瞬间的守护者,让同学们能够轻松上传、浏览、分享校园生活中的点点滴滴,让记忆不再随时间流逝而褪色。
Memories-Client/
├── web/ # Web 前台(React + Vite + Tailwind CSS)
├── Android/ # Android 原生客户端(Java)
├── iOS/ # iOS 客户端(React + Vite + Tailwind CSS)
├── macOS/ # macOS 客户端
├── Windows/ # Windows 客户端(CMake + Qt 6 + C++)
├── Linux/ # Linux 客户端(CMake + Qt 6 + C++)
├── admin/ # 管理后台(React + Vite + Tailwind CSS)
└── LICENSE # GPL v3
按需进入对应平台目录构建。首次克隆后建议先准备各端的本地配置文件,再执行构建命令;真实配置、依赖缓存和构建产物不应提交到仓库。
| 模块 | 入口 | 常用命令 |
|---|---|---|
| Web 前台 | web/ |
pnpm install、pnpm dev、pnpm build |
| 管理后台 | admin/ |
npm install、npm run dev、npm run build |
| Android | Android/ |
./gradlew :app:assembleDebug |
| iOS Web 客户端 | iOS/ |
pnpm install、pnpm dev --host 127.0.0.1、pnpm build |
| Linux | Linux/ |
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release |
| Windows | Windows/ |
见 Windows/README.md |
| Windows | macOS/ |
none |
- Android:复制
Android/app-config.example.properties到Android/app/src/main/assets/app-config.properties,填写 API、OAuth、学校和主题配置。 - Linux/Windows:按平台 README 安装 Qt、CMake 和编译器后构建。
- iOS/Web/admin:前端依赖目录
node_modules/和构建目录dist/只保留在本机。
以下目录是可再生成产物,已在 .gitignore 中忽略,可按需删除后重新构建:
rm -rf build Android/.gradle Android/build Android/app/build Linux/build Linux/build-gcc14 Linux/build-release web/dist admin/dist iOS/dist iOS/node_modules基于 React 18 + Vite + Tailwind CSS + shadcn/ui 构建。
cd web
pnpm install
pnpm dev # 启动开发服务器
pnpm build # 构建静态文件到 dist/原生 Java 项目,使用 Android Studio 或 Gradle 构建。
cd Android
cp app-config.example.properties app/src/main/assets/app-config.properties
# 编辑配置文件填入你的参数
./gradlew :app:assembleDebug详细说明见 Android/README.md。
iOS/ 目录当前是一个基于 React 18 + TypeScript + Vite 的前端客户端,使用 pnpm 管理依赖。
cd iOS
pnpm install
pnpm dev --host 127.0.0.1
pnpm build- 图片列表、健康检查等接口仍走
https://memories-api.mrcwoods.com - 图片信息查询接口单独走
https://img.scdn.io/api/v1.php?q=... - 设置面板支持主题、字号和多款 CDN 字体;字体 CSS 与字体文件会缓存到浏览器本地后复用
- 生产构建已补齐 PWA,包含安装图标、离线缓存和主屏安装能力
详细说明见 iOS/README.md。
- Linux 客户端使用 C++20、Qt 6 和 CMake 构建,详细说明见 Linux/README.md。
- Windows 客户端使用 C++20、Qt 6 和 CMake 构建,详细说明见 Windows/README.md。
- 📷 校园广场 — 浏览全校师生的照片记忆
- 📤 多图上传 — 支持批量选择、队列上传、进度展示
- 🔗 OAuth 登录 — 通过校园墙账号安全登录
- 🎨 主题定制 — 亮色 / 暗色主题自由切换
- 📦 一校一包 — 每所学校独立客户端,数据完全隔离
- 🌐 跨平台 — Android / iOS / Windows / macOS / Linux /Web 全覆盖
| 模块 | 技术 |
|---|---|
| 官网 | React 18, Vite, Tailwind CSS, shadcn/ui, Framer Motion |
| Android | Java, Android SDK, Gradle |
| iOS | React 18, Vite, TypeScript, shadcn/ui, Framer Motion |
| Windows | C++20, Qt 6, CMake |
| Linux | C++20, Qt 6, CMake |
| macOS | |
| 后台 | React 18, Vite, Tailwind CSS, shadcn/ui, Framer Motion |
| 多语言 | 简体中文 / 繁體中文 / English / 日本語 |
本项目基于 GNU General Public License v3.0 开源。