Skip to content

Repository files navigation

映迹 · sk-content

面向生活记录与视觉内容的全栈内容平台 MVP。映迹围绕图文笔记、图片/短视频资产、标签、评论、点赞与收藏构建,并提供 Web、桌面浏览器与移动端基础界面。

当前定位是可运行、可演进的产品基座,不是已经完成内容安全、版权和推荐系统建设的生产平台。

能力概览

  • 生活笔记、图文内容与标签
  • 图片/短视频资产上传、评论、点赞与收藏
  • 媒体处理基础模块与 S3 兼容对象存储直传
  • JWT + Argon2id 认证、Prisma 数据访问与 Swagger API 文档
  • NestJS API、Next.js Web/桌面界面、Expo 移动端

技术架构

apps/mobile  Expo + React Native ─┐
apps/web     Next.js + React      ├─ HTTP ─ apps/api ─ PostgreSQL
                                  └─────────────── Redis / MinIO
目录 作用
apps/api NestJS API、认证、笔记/媒体领域服务、Prisma schema 与迁移
apps/web Next.js App Router Web/桌面浏览器界面
apps/mobile Expo Router 移动端
docs 架构说明、边界与演进路线
compose.yaml 本地 PostgreSQL、Redis、MinIO

快速开始

要求 Node.js 24 LTS、pnpm 10、Docker。

nvm use
cp .env.example .env
cp apps/web/.env.example apps/web/.env.local
cp apps/mobile/.env.example apps/mobile/.env
pnpm install
pnpm infra:up
pnpm db:generate
pnpm db:migrate
pnpm --filter @sk-content/api prisma:seed

分别启动:

pnpm dev:api       # API: http://localhost:4103,Swagger: /docs
pnpm dev:web       # Web: http://localhost:3103
pnpm dev:mobile    # Expo 开发服务器

本地基础设施端口为 PostgreSQL 5435、Redis 6382、MinIO API 9003。移动真机调试时,请将 EXPO_PUBLIC_API_URL 改为开发机局域网地址。

常用命令

pnpm build
pnpm lint
pnpm test
pnpm --filter @sk-content/api test:e2e
pnpm infra:down

完整配置见 .env.exampleNEXT_PUBLIC_*EXPO_PUBLIC_* 会进入客户端包,只能放公开配置,不能放密钥。

当前边界与路线

当前发现页按发布时间返回,不宣称已经实现个性化推荐。上线前需要增加召回/排序服务、内容安全、版权申诉、未成年人保护、限流与反滥用、审计日志、可观测性、备份恢复、推送通知和独立安全评审。

媒体上传与处理链路适合本地开发和 MVP 验证;生产环境还需要可靠的异步任务、病毒/内容探测、CDN、生命周期管理和故障恢复。欢迎提交 Issue 和 Pull Request。

Star History

Star History Chart

License

MIT

About

Full-stack lifestyle notes and visual content platform MVP with NestJS, Next.js, Expo, Prisma, PostgreSQL, Redis, and S3-compatible media storage.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages