Ubisam-MobileGit/docs/product.md

58 lines
2.2 KiB
Markdown

# Product brief
## Purpose
UBGitea gives employees a focused Android experience for the company Gitea instance without attempting to reproduce every web feature.
## MVP outcomes
1. Sign in through Gitea OAuth 2.0 with PKCE.
2. View the signed-in user and organizations.
3. Browse accessible repositories, branches, directories, and files.
4. View issues, pull requests, and notifications.
5. Sign out and remove locally stored credentials.
## Repository browsing experience
Within the permissions of the signed-in Gitea account, the application must support:
- Listing organizations and repositories with pagination.
- Listing every branch and tag visible to the account.
- Browsing a repository tree at an explicit branch, tag, or commit.
- Viewing text source with the selected ref and path always visible.
- Viewing commit history and per-commit file changes.
- Comparing branches and commits without implying write access.
- Viewing pull requests, issues, reviews, comments, and notifications.
Binary files, Git LFS pointers, submodules, and files too large for safe mobile rendering require an explicit fallback rather than being decoded as ordinary source text.
The first release is read-oriented. Creating, merging, deleting, or administering resources is out of scope until explicitly approved.
## UX principles
- Korean-first copy with a structure that permits localization.
- Clear loading, empty, offline, authentication-expired, and server-error states.
- Never obscure which Gitea instance and account are active.
- Require confirmation before any future destructive or irreversible operation.
## Non-goals for MVP
- Editing source files
- Git clone/push over SSH
- Repository or account administration
- Gitea Actions runner administration
- Package publishing
- Multiple Gitea instances
- Creating or editing files, pushing commits, merging, deleting branches, or administering repositories
## Product decisions
- Android application ID: `com.ubisam.ubgitea` (see ADR-001)
- Minimum supported version: Android 9, API 28 (see ADR-001)
## Open product decisions
- Visual identity, icon, and color palette
- Whether biometric reauthentication is required
- Whether repositories must be cached for offline browsing