Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Jan 9, 2026

Authenticated users can now submit bugs and feature requests in-app. Non-authenticated users are redirected to GitHub Issues with a dialog explaining account requirement.

Architecture

Parse Models (4 new):

  • FeedbackIssue - title, type (Bug/Feature), description, status (open/planned/in-progress/shipped/rejected), upvotes, platform, version
  • FeedbackComment - threaded discussions
  • FeedbackVote - one vote per user per issue
  • FeedbackNotificationSettings - per-issue opt-in preferences

Service Layer:

  • IFeedbackService interface with CRUD, voting, comments, notifications
  • ParseFeedbackService implementation with proper error handling

ViewModels (MVVM):

  • FeedbackBoardViewModel - list management, filtering (type/status), sorting (recent/upvotes/status), search
  • FeedbackSubmissionViewModel - form state, duplicate detection via title similarity search
  • FeedbackDetailViewModel - issue display, upvoting, commenting, notification preferences

UI Implementation

WinUI (6 XAML pages):

  • FeedbackBoardPage - main list with RecyclerView pattern, MaterialCardView elevation 12
  • FeedbackSubmissionPage - form with real-time duplicate warnings
  • FeedbackDetailPage - full issue view with comment thread
  • 6 value converters for status/type colors, relative time, upvote state

Android (3 native Fragments):

  • Programmatic Material Design layouts with MaterialCardView elevation 12dp
  • RecyclerView adapters for issues and comments
  • Consistent color scheme: status badges (blue/purple/orange/green/red), type badges (red/green)

Navigation:

  • Settings page → new "Feedback" button → FeedbackBoardPage/Fragment
  • Frame navigation (WinUI), Fragment transactions (Android)

Key Features

  • Duplicate detection shows up to 5 similar issues during submission
  • GitHub fallback dialog for non-authenticated: "You need a Dimmer account to submit feedback in-app." with "Open GitHub Issues" button
  • Author-only deletion for issues and comments
  • Automatic platform and version attachment
  • Parse subclasses registered in ServiceRegistration

Example Usage

// In ViewModel
await _feedbackService.CreateIssueAsync(
    title: "Dark mode not persisting",
    type: FeedbackIssueType.Bug,
    description: "Theme reverts after restart",
    platform: DeviceInfo.Platform.ToString()
);

// Upvoting
bool success = await _feedbackService.UpvoteIssueAsync(issueId);

// Searching for duplicates
var similar = await _feedbackService.SearchIssuesAsync(
    searchTerm: userInput,
    type: FeedbackIssueType.Bug
);

Requirements for Production

  • Parse server schema configured for 4 new classes
  • ACLs set for user-level permissions
  • Optional: Parse Cloud Code for push notifications on status changes

Note: Full build requires external dependencies (Last.fm, Parse-LiveQueries) not present in CI environment. Unit tests validate data models and constants.

Original prompt

This section details on the original issue you should resolve

<issue_title>In-app Feedback Board (Feature Requests & Bug Reports) with GH fallback for non-users</issue_title>
<issue_description>

Current feedback collection (forms, emails, DMs) is:

one-way

hard to follow up on

full of duplicates

invisible to other users

This slows iteration and hides real user priorities.


Proposal

Add an in-app feedback board for Dimmer authenticated users only, inspired by lightweight Reddit-style threads.

Non-authenticated users are redirected to GitHub Issues instead.


Core UX Goals

Fast, low-friction submission

Public visibility of existing requests

No duplicate spam

Clear status communication

Zero clutter


User Flows

  1. Authenticated Dimmer user

Open Feedback section in app

Browse existing issues (Feature / Bug tabs)

Search before submitting

Submit new issue

Upvote + comment

Get notified on status change / release

  1. Non-authenticated user

Tap “Submit feedback”

Shown short message:

“You need a Dimmer account to submit feedback in-app.”

Button: “Open GitHub Issues”

Opens system browser → Dimmer GH repo

No in-app submission without an account.


Issue Types

Bug

Feature request


Minimal Data Model (implementation hint)

Title

Type (bug / feature)

Description

Status (open / planned / in-progress / shipped / rejected)

Comment thread

Platform + app version (auto-attached)


UI Requirements

Dense list (no oversized cards) but still cards with elevation 12 on WinUI and droid

Status badge always visible

Sorting:

Recent

Status

Duplicate suggestions shown before submit

No modals for basic actions


Notifications

Notify users who:

created the issue

upvoted

commented

Triggers:

status change

issue shipped

Opt-in only.
</issue_description>

Comments on the Issue (you are @copilot in this section)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 6 commits January 9, 2026 22:14
… (partial)

Co-authored-by: YBTopaz8 <41630728+YBTopaz8@users.noreply.github.com>
Co-authored-by: YBTopaz8 <41630728+YBTopaz8@users.noreply.github.com>
Co-authored-by: YBTopaz8 <41630728+YBTopaz8@users.noreply.github.com>
Co-authored-by: YBTopaz8 <41630728+YBTopaz8@users.noreply.github.com>
Co-authored-by: YBTopaz8 <41630728+YBTopaz8@users.noreply.github.com>
Co-authored-by: YBTopaz8 <41630728+YBTopaz8@users.noreply.github.com>
Copilot AI changed the title [WIP] Add in-app feedback board for feature requests and bug reports Add in-app feedback board with Parse backend and GitHub fallback Jan 9, 2026
Copilot AI requested a review from YBTopaz8 January 9, 2026 22:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

In-app Feedback Board (Feature Requests & Bug Reports) with GH fallback for non-users

2 participants