{"adoption": {"forks": 329, "observed_at": "2026-08-28T04:05:05.469252+00:00", "stars": 1571}, "canonical_url": "https://ross.abutalabs.com/products/photonoter", "card": {"archived": false, "artifact_type": "application", "description": ":notebook:Material Design风格的开源照片笔记。(MVP+Dagger2+RxJava+AspectJ+Dex处理)      ", "domain": ["mobile-development", "photography", "developer-tools"], "enriched": true, "function": ["image-processing", "animation"], "health_score": 20, "homepage": null, "language": "Java", "license": null, "license_family": "other", "maturity": "abandoned", "member_repos": ["yydcdut/PhotoNoter"], "name": "yydcdut/PhotoNoter", "platform": [], "pushed_at": "2018-04-25T15:31:47+00:00", "repo": "yydcdut/PhotoNoter", "stars": 1571, "tags": ["material-design", "mvp-architecture", "rxjava", "dagger2", "aspectj", "camera2", "photo-notes", "open-source-android-app", "android"], "topics": ["android", "rxjava", "material-design", "camera2-api", "animation", "rxandroid", "mvp-architecture", "aspectj", "dex", "mvp-android", "aop-aspects"], "urls": [], "use_cases": ["take photo notes on android", "open source material design note app", "learn mvp dagger2 rxjava android architecture", "android camera2 api example app", "android aspectj aop demo", "photo diary app for android"], "what_it_is": "PhotoNoter is an open-source Android photo note-taking app with a Material Design style, built with MVP architecture, Dagger2, RxJava, and AspectJ. It lets users capture photos with the Camera2 API and organize them into notes with polished animations.", "when_to_avoid": ["you need a maintained app with recent updates or security patches", "you need an iOS or desktop photo note app", "you want a library to embed in your own project rather than a standalone app"], "when_to_choose": ["you want a full-featured open-source Android photo note app to use or study", "you want to learn MVP + Dagger2 + RxJava patterns in a real app", "you need a Camera2 API and Material Design animation reference"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/photonoter", "repo": "yydcdut/PhotoNoter", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.469252+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:58:27.401760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "06b7d8593f175b8910b0fcc1bfd380b68438ae97958da98ea7e25f8d002b04eb", "fetched_at": "2026-08-28T04:05:05.469252+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yydcdut/PhotoNoter"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.469252+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:58:27.401760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "06b7d8593f175b8910b0fcc1bfd380b68438ae97958da98ea7e25f8d002b04eb", "fetched_at": "2026-08-28T04:05:05.469252+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yydcdut/PhotoNoter"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:58:27.401760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "06b7d8593f175b8910b0fcc1bfd380b68438ae97958da98ea7e25f8d002b04eb", "fetched_at": "2026-08-28T04:05:05.469252+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yydcdut/PhotoNoter"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.469252+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.469252+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.469252+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:58:27.401760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "06b7d8593f175b8910b0fcc1bfd380b68438ae97958da98ea7e25f8d002b04eb", "fetched_at": "2026-08-28T04:05:05.469252+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yydcdut/PhotoNoter"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.469252+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.469252+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:58:27.401760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "06b7d8593f175b8910b0fcc1bfd380b68438ae97958da98ea7e25f8d002b04eb", "fetched_at": "2026-08-28T04:05:05.469252+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yydcdut/PhotoNoter"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.469252+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.469252+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.469252+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:58:27.401760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "06b7d8593f175b8910b0fcc1bfd380b68438ae97958da98ea7e25f8d002b04eb", "fetched_at": "2026-08-28T04:05:05.469252+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yydcdut/PhotoNoter"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.469252+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.469252+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:58:27.401760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "06b7d8593f175b8910b0fcc1bfd380b68438ae97958da98ea7e25f8d002b04eb", "fetched_at": "2026-08-28T04:05:05.469252+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yydcdut/PhotoNoter"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:58:27.401760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "06b7d8593f175b8910b0fcc1bfd380b68438ae97958da98ea7e25f8d002b04eb", "fetched_at": "2026-08-28T04:05:05.469252+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yydcdut/PhotoNoter"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:58:27.401760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "06b7d8593f175b8910b0fcc1bfd380b68438ae97958da98ea7e25f8d002b04eb", "fetched_at": "2026-08-28T04:05:05.469252+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yydcdut/PhotoNoter"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:58:27.401760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "06b7d8593f175b8910b0fcc1bfd380b68438ae97958da98ea7e25f8d002b04eb", "fetched_at": "2026-08-28T04:05:05.469252+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yydcdut/PhotoNoter"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3978, "days_push": 3052, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}