<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sindhu Goli</title>
    <description>The latest articles on DEV Community by Sindhu Goli (@sindhug29).</description>
    <link>https://dev.to/sindhug29</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3495702%2Fb79e6339-7f81-451c-a8cd-73b43ed89a6e.jpg</url>
      <title>DEV Community: Sindhu Goli</title>
      <link>https://dev.to/sindhug29</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sindhug29"/>
    <language>en</language>
    <item>
      <title>PrivacyDesk — DSR &amp; Consent Hub (KendoReact Free)</title>
      <dc:creator>Sindhu Goli</dc:creator>
      <pubDate>Mon, 29 Sep 2025 04:41:11 +0000</pubDate>
      <link>https://dev.to/sindhug29/privacydesk-dsr-consent-hub-kendoreact-free-1e9g</link>
      <guid>https://dev.to/sindhug29/privacydesk-dsr-consent-hub-kendoreact-free-1e9g</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/kendoreact-2025-09-10"&gt;KendoReact Free Components Challenge&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;PrivacyDesk is a React + TypeScript app (using only KendoReact Free components) that streamlines Data Subject Requests (DSRs)—access, delete, export, correct—from intake to closure.&lt;br&gt;
&lt;strong&gt;Requests hub&lt;/strong&gt;: compact Grid with paging/sorting and filters (Type, Status, Owner, Date range) + “Open” action.&lt;br&gt;
&lt;strong&gt;New Request&lt;/strong&gt;: guided flow with validation; computes due date from SLA settings.&lt;br&gt;
&lt;strong&gt;Case workspace&lt;/strong&gt;: header with Status/Owner/SLA widget; tabs for Overview / Notes / Evidence / History; confirm dialogs log decisions to History.&lt;br&gt;
&lt;strong&gt;Export&lt;/strong&gt;: print-friendly runbook and deterministic JSON download.&lt;br&gt;
&lt;strong&gt;Settings&lt;/strong&gt;: edit SLA days per request type.&lt;br&gt;
Built entirely with KendoReact Free components for a fast, accessible, and consistent DSR workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Problem It Solves
&lt;/h3&gt;

&lt;p&gt;Teams (especially SMBs) often handle Data Subject Requests (DSRs) with emails and spreadsheets. That leads to missed SLAs, inconsistent replies, and poor audit trails—all risky for GDPR/CCPA compliance.&lt;/p&gt;

&lt;h3&gt;
  
  
  How PrivacyDesk Helps
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;One place for all DSRs&lt;/strong&gt;: intake → triage → resolution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Never miss deadlines&lt;/strong&gt;: automatic SLA due date tracking with clear status.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistent processing&lt;/strong&gt;: guided New Request flow and Case tabs (Overview/Notes/Evidence/History).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit-ready&lt;/strong&gt;: decisions and actions are logged; Export provides a print-friendly runbook and deterministic JSON for records.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://drive.google.com/file/d/1t8elCHlfeLXLnMfPngjm3TdP6eB6f-8F/view?usp=share_link" rel="noopener noreferrer"&gt;Demo Link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sindhurani29/PrivacyDesk?tab=readme-ov-file#here-are-the-final-pages-images-of-the-application" rel="noopener noreferrer"&gt;Application Screenshots Link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sindhurani29/PrivacyDesk" rel="noopener noreferrer"&gt;Repo Link&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  KendoReact Components Used
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/sindhurani29/PrivacyDesk?tab=readme-ov-file#kendoreact-free-components-used-10" rel="noopener noreferrer"&gt;Free KendoReact Components used&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Grid&lt;/strong&gt;: Data table for the Requests hub with paging and sorting; shows request metadata and actions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GridColumn&lt;/strong&gt;: Column definitions inside the Grid (id, type, requester.email, submittedAt, dueAt, status, owner, actions).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DropDownList&lt;/strong&gt;: Single-select pickers for request Type, Status, Owner (also used on Case/Settings forms).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MultiSelect&lt;/strong&gt;: Multi-owner filter with chips in the Requests filters bar.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DatePicker&lt;/strong&gt;: From/To date range filters on the Requests page (and date fields where needed).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Input&lt;/strong&gt;: Text inputs across the app (login, requester name/email, case fields, settings).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TextArea&lt;/strong&gt;: Multi-line notes/rationale fields (New Request details, Case notes, Settings description).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Switch&lt;/strong&gt;: Boolean toggle in New Request (e.g., “ID proof received?”).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NumericTextBox&lt;/strong&gt;: Number inputs in Settings for SLA days per request type.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Button&lt;/strong&gt;: Primary/secondary actions everywhere (Open case, Save, Confirm, Cancel).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Toolbar&lt;/strong&gt;: Horizontal actions container for the Requests filter controls.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ToolbarItem&lt;/strong&gt;: Individual items (filters/buttons) placed inside the Toolbar.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ToolbarSeparator&lt;/strong&gt;: Visual separators between groups of filter controls.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dialog&lt;/strong&gt;: Modal confirmations (finalize case, delete note) and small interaction flows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DialogActionsBar&lt;/strong&gt;: Standard OK/Cancel action area within Dialogs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Window&lt;/strong&gt;: Export/Preview window with Print and Download JSON actions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Notification&lt;/strong&gt;: Toast messages for success/error feedback (e.g., saved settings, created request).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NotificationGroup&lt;/strong&gt;: Positioned container that hosts one or more Notification toasts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Badge&lt;/strong&gt;: Status pill for requests/cases (new, in_progress, waiting, done, rejected) and due-state indicators.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ProgressBar&lt;/strong&gt;: SLA time-remaining visualization in the Case header/widget.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Label&lt;/strong&gt;: Accessible labels for filter inputs and form fields.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TabStrip&lt;/strong&gt;: Case workspace tabs (Overview, Notes, Evidence, History).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TabStripTab&lt;/strong&gt;: Individual tab panes/content within the TabStrip.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Code Smarter, Not Harder prize category
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;AI Coding Assistant Usage&lt;/strong&gt;&lt;br&gt;
I used the assistant at each major UI milestone to create skeleton components, fix TypeScript edge cases, and apply Kendo patterns faster. Here are some of the exact prompts, what I accepted/edited, and the commits/screenshots I captured are in the &lt;a href="https://github.com/sindhurani29/PrivacyDesk#bonus-kendo-ui-ai-coding-assistant--how-i-used-it" rel="noopener noreferrer"&gt;(Bonus) Kendo UI AI Coding Assistant Section&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nuclia Integration
&lt;/h2&gt;

&lt;p&gt;The Case page contains a “Policy Helper” placeholder. Nuclia RAG is &lt;strong&gt;not&lt;/strong&gt;&lt;br&gt;
integrated with it. If enabled in the future, it will surface&lt;br&gt;
policy Q&amp;amp;A with citations via a public Knowledge Box.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>kendoreactchallenge</category>
      <category>react</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
