@tantainnovative/ndpr-toolkit 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. package/.claude/settings.local.json +20 -0
  2. package/.eslintrc.json +10 -0
  3. package/.github/workflows/ci.yml +36 -0
  4. package/.github/workflows/nextjs.yml +104 -0
  5. package/.husky/commit-msg +4 -0
  6. package/.husky/pre-commit +4 -0
  7. package/.lintstagedrc.js +4 -0
  8. package/.nvmrc +1 -0
  9. package/.versionrc +17 -0
  10. package/CHANGELOG.md +16 -0
  11. package/CLAUDE.md +90 -0
  12. package/CNAME +1 -0
  13. package/CONTRIBUTING.md +87 -0
  14. package/README.md +84 -431
  15. package/RELEASE-NOTES-v1.0.0.md +140 -0
  16. package/RELEASE-NOTES-v1.0.1.md +69 -0
  17. package/SECURITY.md +21 -0
  18. package/commitlint.config.js +36 -0
  19. package/components.json +21 -0
  20. package/eslint.config.mjs +16 -0
  21. package/jest.config.js +31 -0
  22. package/jest.setup.js +15 -0
  23. package/next.config.js +15 -0
  24. package/next.config.ts +62 -0
  25. package/package.json +70 -52
  26. package/packages/ndpr-toolkit/README.md +467 -0
  27. package/packages/ndpr-toolkit/jest.config.js +23 -0
  28. package/packages/ndpr-toolkit/package-lock.json +8197 -0
  29. package/packages/ndpr-toolkit/package.json +71 -0
  30. package/packages/ndpr-toolkit/rollup.config.js +34 -0
  31. package/packages/ndpr-toolkit/src/__tests__/components/consent/ConsentBanner.test.tsx +119 -0
  32. package/packages/ndpr-toolkit/src/__tests__/components/consent/ConsentManager.test.tsx +122 -0
  33. package/packages/ndpr-toolkit/src/__tests__/components/consent/ConsentStorage.test.tsx +270 -0
  34. package/packages/ndpr-toolkit/src/__tests__/components/dsr/DSRDashboard.test.tsx +199 -0
  35. package/packages/ndpr-toolkit/src/__tests__/components/dsr/DSRRequestForm.test.tsx +224 -0
  36. package/packages/ndpr-toolkit/src/__tests__/components/dsr/DSRTracker.test.tsx +104 -0
  37. package/packages/ndpr-toolkit/src/__tests__/hooks/useConsent.test.tsx +161 -0
  38. package/packages/ndpr-toolkit/src/__tests__/hooks/useDSR.test.tsx +330 -0
  39. package/packages/ndpr-toolkit/src/__tests__/utils/breach.test.ts +149 -0
  40. package/packages/ndpr-toolkit/src/__tests__/utils/consent.test.ts +88 -0
  41. package/packages/ndpr-toolkit/src/__tests__/utils/dpia.test.ts +160 -0
  42. package/packages/ndpr-toolkit/src/__tests__/utils/dsr.test.ts +110 -0
  43. package/packages/ndpr-toolkit/src/__tests__/utils/privacy.test.ts +97 -0
  44. package/packages/ndpr-toolkit/src/components/breach/BreachNotificationManager.tsx +701 -0
  45. package/packages/ndpr-toolkit/src/components/breach/BreachReportForm.tsx +631 -0
  46. package/packages/ndpr-toolkit/src/components/breach/BreachRiskAssessment.tsx +569 -0
  47. package/packages/ndpr-toolkit/src/components/breach/RegulatoryReportGenerator.tsx +496 -0
  48. package/packages/ndpr-toolkit/src/components/consent/ConsentBanner.tsx +270 -0
  49. package/packages/ndpr-toolkit/src/components/consent/ConsentManager.tsx +217 -0
  50. package/packages/ndpr-toolkit/src/components/consent/ConsentStorage.tsx +206 -0
  51. package/packages/ndpr-toolkit/src/components/dpia/DPIAQuestionnaire.tsx +342 -0
  52. package/packages/ndpr-toolkit/src/components/dpia/DPIAReport.tsx +373 -0
  53. package/packages/ndpr-toolkit/src/components/dpia/StepIndicator.tsx +174 -0
  54. package/packages/ndpr-toolkit/src/components/dsr/DSRDashboard.tsx +717 -0
  55. package/packages/ndpr-toolkit/src/components/dsr/DSRRequestForm.tsx +476 -0
  56. package/packages/ndpr-toolkit/src/components/dsr/DSRTracker.tsx +620 -0
  57. package/packages/ndpr-toolkit/src/components/policy/PolicyExporter.tsx +541 -0
  58. package/packages/ndpr-toolkit/src/components/policy/PolicyGenerator.tsx +454 -0
  59. package/packages/ndpr-toolkit/src/components/policy/PolicyPreview.tsx +333 -0
  60. package/packages/ndpr-toolkit/src/hooks/useBreach.ts +409 -0
  61. package/packages/ndpr-toolkit/src/hooks/useConsent.ts +263 -0
  62. package/packages/ndpr-toolkit/src/hooks/useDPIA.ts +457 -0
  63. package/packages/ndpr-toolkit/src/hooks/useDSR.ts +236 -0
  64. package/packages/ndpr-toolkit/src/hooks/usePrivacyPolicy.ts +428 -0
  65. package/{dist/index.d.ts → packages/ndpr-toolkit/src/index.ts} +14 -1
  66. package/packages/ndpr-toolkit/src/setupTests.ts +5 -0
  67. package/packages/ndpr-toolkit/src/types/breach.ts +283 -0
  68. package/packages/ndpr-toolkit/src/types/consent.ts +111 -0
  69. package/packages/ndpr-toolkit/src/types/dpia.ts +236 -0
  70. package/packages/ndpr-toolkit/src/types/dsr.ts +192 -0
  71. package/packages/ndpr-toolkit/src/types/index.ts +42 -0
  72. package/packages/ndpr-toolkit/src/types/privacy.ts +246 -0
  73. package/packages/ndpr-toolkit/src/utils/breach.ts +122 -0
  74. package/packages/ndpr-toolkit/src/utils/consent.ts +51 -0
  75. package/packages/ndpr-toolkit/src/utils/dpia.ts +104 -0
  76. package/packages/ndpr-toolkit/src/utils/dsr.ts +77 -0
  77. package/packages/ndpr-toolkit/src/utils/privacy.ts +100 -0
  78. package/packages/ndpr-toolkit/tsconfig.json +23 -0
  79. package/postcss.config.mjs +5 -0
  80. package/public/NDPR TOOLKIT.svg +1 -0
  81. package/public/favicon/android-chrome-192x192.png +0 -0
  82. package/public/favicon/android-chrome-512x512.png +0 -0
  83. package/public/favicon/apple-touch-icon.png +0 -0
  84. package/public/favicon/favicon-16x16.png +0 -0
  85. package/public/favicon/favicon-32x32.png +0 -0
  86. package/public/favicon/site.webmanifest +1 -0
  87. package/public/file.svg +1 -0
  88. package/public/globe.svg +1 -0
  89. package/public/ndpr-toolkit-logo.svg +108 -0
  90. package/public/next.svg +1 -0
  91. package/public/vercel.svg +1 -0
  92. package/public/window.svg +1 -0
  93. package/src/__tests__/example.test.ts +13 -0
  94. package/src/__tests__/requestService.test.ts +57 -0
  95. package/src/app/accessibility.css +70 -0
  96. package/src/app/docs/components/DocLayout.tsx +267 -0
  97. package/src/app/docs/components/breach-notification/page.tsx +797 -0
  98. package/src/app/docs/components/consent-management/page.tsx +576 -0
  99. package/src/app/docs/components/data-subject-rights/page.tsx +511 -0
  100. package/src/app/docs/components/dpia-questionnaire/layout.tsx +15 -0
  101. package/src/app/docs/components/dpia-questionnaire/metadata.ts +31 -0
  102. package/src/app/docs/components/dpia-questionnaire/page.tsx +666 -0
  103. package/src/app/docs/components/hooks/page.tsx +305 -0
  104. package/src/app/docs/components/page.tsx +84 -0
  105. package/src/app/docs/components/privacy-policy-generator/page.tsx +634 -0
  106. package/src/app/docs/guides/breach-notification-process/components/BestPractices.tsx +123 -0
  107. package/src/app/docs/guides/breach-notification-process/components/ImplementationSteps.tsx +328 -0
  108. package/src/app/docs/guides/breach-notification-process/components/Introduction.tsx +28 -0
  109. package/src/app/docs/guides/breach-notification-process/components/NotificationTimeline.tsx +91 -0
  110. package/src/app/docs/guides/breach-notification-process/components/Resources.tsx +118 -0
  111. package/src/app/docs/guides/breach-notification-process/page.tsx +39 -0
  112. package/src/app/docs/guides/conducting-dpia/page.tsx +593 -0
  113. package/src/app/docs/guides/data-subject-requests/page.tsx +666 -0
  114. package/src/app/docs/guides/managing-consent/page.tsx +738 -0
  115. package/src/app/docs/guides/ndpr-compliance-checklist/components/ComplianceChecklist.tsx +296 -0
  116. package/src/app/docs/guides/ndpr-compliance-checklist/components/ImplementationTools.tsx +145 -0
  117. package/src/app/docs/guides/ndpr-compliance-checklist/components/Introduction.tsx +33 -0
  118. package/src/app/docs/guides/ndpr-compliance-checklist/components/KeyRequirements.tsx +99 -0
  119. package/src/app/docs/guides/ndpr-compliance-checklist/components/Resources.tsx +159 -0
  120. package/src/app/docs/guides/ndpr-compliance-checklist/page.tsx +38 -0
  121. package/src/app/docs/guides/page.tsx +67 -0
  122. package/src/app/docs/layout.tsx +15 -0
  123. package/src/app/docs/metadata.ts +31 -0
  124. package/src/app/docs/page.tsx +572 -0
  125. package/src/app/favicon.ico +0 -0
  126. package/src/app/globals.css +123 -0
  127. package/src/app/layout.tsx +37 -0
  128. package/src/app/ndpr-demos/breach/page.tsx +354 -0
  129. package/src/app/ndpr-demos/consent/page.tsx +366 -0
  130. package/src/app/ndpr-demos/dpia/page.tsx +495 -0
  131. package/src/app/ndpr-demos/dsr/page.tsx +280 -0
  132. package/src/app/ndpr-demos/page.tsx +73 -0
  133. package/src/app/ndpr-demos/policy/page.tsx +771 -0
  134. package/src/app/page.tsx +452 -0
  135. package/src/components/ErrorBoundary.tsx +90 -0
  136. package/src/components/breach-notification/BreachNotificationForm.tsx +479 -0
  137. package/src/components/consent/ConsentBanner.tsx +159 -0
  138. package/src/components/data-subject-rights/DataSubjectRequestForm.tsx +419 -0
  139. package/src/components/docs/DocLayout.tsx +289 -0
  140. package/src/components/docs/index.ts +2 -0
  141. package/src/components/dpia/DPIAQuestionnaire.tsx +483 -0
  142. package/src/components/privacy-policy/PolicyGenerator.tsx +1062 -0
  143. package/src/components/privacy-policy/data.ts +98 -0
  144. package/src/components/privacy-policy/shared/CheckboxField.tsx +38 -0
  145. package/src/components/privacy-policy/shared/CheckboxGroup.tsx +85 -0
  146. package/src/components/privacy-policy/shared/FormField.tsx +79 -0
  147. package/src/components/privacy-policy/shared/StepIndicator.tsx +86 -0
  148. package/src/components/privacy-policy/steps/CustomSectionsStep.tsx +335 -0
  149. package/src/components/privacy-policy/steps/DataCollectionStep.tsx +231 -0
  150. package/src/components/privacy-policy/steps/DataSharingStep.tsx +418 -0
  151. package/src/components/privacy-policy/steps/OrganizationInfoStep.tsx +202 -0
  152. package/src/components/privacy-policy/steps/PolicyPreviewStep.tsx +172 -0
  153. package/src/components/ui/Badge.tsx +46 -0
  154. package/src/components/ui/Button.tsx +59 -0
  155. package/src/components/ui/Card.tsx +92 -0
  156. package/src/components/ui/Checkbox.tsx +57 -0
  157. package/src/components/ui/FormField.tsx +50 -0
  158. package/src/components/ui/Input.tsx +38 -0
  159. package/src/components/ui/Loading.tsx +201 -0
  160. package/src/components/ui/Select.tsx +42 -0
  161. package/src/components/ui/TextArea.tsx +38 -0
  162. package/src/components/ui/label.tsx +24 -0
  163. package/src/components/ui/switch.tsx +31 -0
  164. package/src/components/ui/tabs.tsx +66 -0
  165. package/src/hooks/useConsent.ts +64 -0
  166. package/src/hooks/useLoadingState.ts +85 -0
  167. package/src/lib/consentService.ts +137 -0
  168. package/src/lib/dpiaQuestions.ts +148 -0
  169. package/src/lib/requestService.ts +75 -0
  170. package/src/lib/sanitize.ts +108 -0
  171. package/src/lib/storage.ts +222 -0
  172. package/src/lib/utils.ts +6 -0
  173. package/src/types/html-to-docx.d.ts +30 -0
  174. package/src/types/index.ts +72 -0
  175. package/tailwind.config.ts +65 -0
  176. package/tsconfig.json +41 -0
  177. package/dist/components/breach/BreachNotificationManager.d.ts +0 -62
  178. package/dist/components/breach/BreachReportForm.d.ts +0 -66
  179. package/dist/components/breach/BreachRiskAssessment.d.ts +0 -50
  180. package/dist/components/breach/RegulatoryReportGenerator.d.ts +0 -94
  181. package/dist/components/consent/ConsentBanner.d.ts +0 -79
  182. package/dist/components/consent/ConsentManager.d.ts +0 -73
  183. package/dist/components/consent/ConsentStorage.d.ts +0 -41
  184. package/dist/components/dpia/DPIAQuestionnaire.d.ts +0 -70
  185. package/dist/components/dpia/DPIAReport.d.ts +0 -40
  186. package/dist/components/dpia/StepIndicator.d.ts +0 -64
  187. package/dist/components/dsr/DSRDashboard.d.ts +0 -58
  188. package/dist/components/dsr/DSRRequestForm.d.ts +0 -74
  189. package/dist/components/dsr/DSRTracker.d.ts +0 -56
  190. package/dist/components/policy/PolicyExporter.d.ts +0 -65
  191. package/dist/components/policy/PolicyGenerator.d.ts +0 -54
  192. package/dist/components/policy/PolicyPreview.d.ts +0 -71
  193. package/dist/hooks/useBreach.d.ts +0 -97
  194. package/dist/hooks/useConsent.d.ts +0 -63
  195. package/dist/hooks/useDPIA.d.ts +0 -92
  196. package/dist/hooks/useDSR.d.ts +0 -72
  197. package/dist/hooks/usePrivacyPolicy.d.ts +0 -87
  198. package/dist/index.esm.js +0 -2
  199. package/dist/index.esm.js.map +0 -1
  200. package/dist/index.js +0 -2
  201. package/dist/index.js.map +0 -1
  202. package/dist/setupTests.d.ts +0 -2
  203. package/dist/types/breach.d.ts +0 -239
  204. package/dist/types/consent.d.ts +0 -95
  205. package/dist/types/dpia.d.ts +0 -196
  206. package/dist/types/dsr.d.ts +0 -162
  207. package/dist/types/privacy.d.ts +0 -204
  208. package/dist/utils/breach.d.ts +0 -14
  209. package/dist/utils/consent.d.ts +0 -10
  210. package/dist/utils/dpia.d.ts +0 -12
  211. package/dist/utils/dsr.d.ts +0 -11
  212. package/dist/utils/privacy.d.ts +0 -12
@@ -0,0 +1,159 @@
1
+ 'use client';
2
+
3
+ import { Button } from '@/components/ui/Button';
4
+ import { Card, CardContent } from '@/components/ui/Card';
5
+
6
+ export default function Resources() {
7
+ return (
8
+ <section id="resources" className="mb-8">
9
+ <h2 className="text-2xl font-bold mb-4">Additional Resources</h2>
10
+ <p className="mb-4">
11
+ To help you achieve and maintain NDPR compliance, here are some additional resources:
12
+ </p>
13
+
14
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
15
+ <Card>
16
+ <CardContent className="p-4">
17
+ <h3 className="font-medium text-gray-900 dark:text-white mb-2">NDPR Full Text</h3>
18
+ <p className="text-gray-600 dark:text-gray-300 text-sm mb-3">
19
+ The complete text of the Nigeria Data Protection Regulation.
20
+ </p>
21
+ <Button asChild variant="outline" size="sm">
22
+ <a href="https://nitda.gov.ng/wp-content/uploads/2019/01/Nigeria-Data-Protection-Regulation.pdf" target="_blank" rel="noopener noreferrer">
23
+ View Regulation
24
+ </a>
25
+ </Button>
26
+ </CardContent>
27
+ </Card>
28
+
29
+ <Card>
30
+ <CardContent className="p-4">
31
+ <h3 className="font-medium text-gray-900 dark:text-white mb-2">NDPR Implementation Framework</h3>
32
+ <p className="text-gray-600 dark:text-gray-300 text-sm mb-3">
33
+ Official guidance on implementing the NDPR.
34
+ </p>
35
+ <Button asChild variant="outline" size="sm">
36
+ <a href="https://nitda.gov.ng/wp-content/uploads/2020/01/NDPR-Implementation-Framework.pdf" target="_blank" rel="noopener noreferrer">
37
+ View Framework
38
+ </a>
39
+ </Button>
40
+ </CardContent>
41
+ </Card>
42
+
43
+ <Card>
44
+ <CardContent className="p-4">
45
+ <h3 className="font-medium text-gray-900 dark:text-white mb-2">NITDA Website</h3>
46
+ <p className="text-gray-600 dark:text-gray-300 text-sm mb-3">
47
+ The official website of the National Information Technology Development Agency.
48
+ </p>
49
+ <Button asChild variant="outline" size="sm">
50
+ <a href="https://nitda.gov.ng/" target="_blank" rel="noopener noreferrer">
51
+ Visit Website
52
+ </a>
53
+ </Button>
54
+ </CardContent>
55
+ </Card>
56
+
57
+ <Card>
58
+ <CardContent className="p-4">
59
+ <h3 className="font-medium text-gray-900 dark:text-white mb-2">Data Protection Templates</h3>
60
+ <p className="text-gray-600 dark:text-gray-300 text-sm mb-3">
61
+ Downloadable templates for key data protection documents.
62
+ </p>
63
+ <Button asChild variant="outline" size="sm">
64
+ <a href="/templates/data-protection" target="_blank" rel="noopener noreferrer">
65
+ View Templates
66
+ </a>
67
+ </Button>
68
+ </CardContent>
69
+ </Card>
70
+ </div>
71
+
72
+ <div className="mt-8">
73
+ <h3 className="text-xl font-bold mb-3">Compliance Roadmap</h3>
74
+ <p className="mb-3">
75
+ Achieving NDPR compliance can seem daunting, but breaking it down into manageable steps can make the process more approachable.
76
+ Here&apos;s a suggested roadmap for your compliance journey:
77
+ </p>
78
+
79
+ <div className="relative border-l-2 border-blue-500 pl-8 pb-8 space-y-8">
80
+ <div className="relative">
81
+ <div className="absolute -left-10 mt-1.5 h-6 w-6 rounded-full bg-blue-500 flex items-center justify-center">
82
+ <span className="text-white font-bold text-sm">1</span>
83
+ </div>
84
+ <h4 className="text-lg font-bold">Assessment</h4>
85
+ <p className="text-gray-600 dark:text-gray-300 mt-2">
86
+ Begin by assessing your current data protection practices against the NDPR requirements. Use the compliance
87
+ checklist provided above to identify gaps and areas for improvement.
88
+ </p>
89
+ </div>
90
+
91
+ <div className="relative">
92
+ <div className="absolute -left-10 mt-1.5 h-6 w-6 rounded-full bg-blue-500 flex items-center justify-center">
93
+ <span className="text-white font-bold text-sm">2</span>
94
+ </div>
95
+ <h4 className="text-lg font-bold">Planning</h4>
96
+ <p className="text-gray-600 dark:text-gray-300 mt-2">
97
+ Develop a compliance plan based on your assessment. Prioritize high-risk areas and quick wins.
98
+ Assign responsibilities and set deadlines for implementation.
99
+ </p>
100
+ </div>
101
+
102
+ <div className="relative">
103
+ <div className="absolute -left-10 mt-1.5 h-6 w-6 rounded-full bg-blue-500 flex items-center justify-center">
104
+ <span className="text-white font-bold text-sm">3</span>
105
+ </div>
106
+ <h4 className="text-lg font-bold">Implementation</h4>
107
+ <p className="text-gray-600 dark:text-gray-300 mt-2">
108
+ Implement the necessary measures to address the gaps identified in your assessment. Use the NDPR Toolkit
109
+ components to implement key compliance features such as consent management, data subject rights handling,
110
+ and breach notification.
111
+ </p>
112
+ </div>
113
+
114
+ <div className="relative">
115
+ <div className="absolute -left-10 mt-1.5 h-6 w-6 rounded-full bg-blue-500 flex items-center justify-center">
116
+ <span className="text-white font-bold text-sm">4</span>
117
+ </div>
118
+ <h4 className="text-lg font-bold">Documentation</h4>
119
+ <p className="text-gray-600 dark:text-gray-300 mt-2">
120
+ Document your compliance efforts, including policies, procedures, and records of processing activities.
121
+ This documentation is essential for demonstrating compliance to regulators and stakeholders.
122
+ </p>
123
+ </div>
124
+
125
+ <div className="relative">
126
+ <div className="absolute -left-10 mt-1.5 h-6 w-6 rounded-full bg-blue-500 flex items-center justify-center">
127
+ <span className="text-white font-bold text-sm">5</span>
128
+ </div>
129
+ <h4 className="text-lg font-bold">Training</h4>
130
+ <p className="text-gray-600 dark:text-gray-300 mt-2">
131
+ Train staff on data protection principles, the NDPR requirements, and your organization&apos;s specific
132
+ policies and procedures. Ensure that everyone understands their role in maintaining compliance.
133
+ </p>
134
+ </div>
135
+
136
+ <div className="relative">
137
+ <div className="absolute -left-10 mt-1.5 h-6 w-6 rounded-full bg-blue-500 flex items-center justify-center">
138
+ <span className="text-white font-bold text-sm">6</span>
139
+ </div>
140
+ <h4 className="text-lg font-bold">Monitoring and Review</h4>
141
+ <p className="text-gray-600 dark:text-gray-300 mt-2">
142
+ Regularly monitor and review your compliance program to ensure it remains effective. Conduct periodic
143
+ audits, address any new compliance gaps, and update your practices as needed.
144
+ </p>
145
+ </div>
146
+ </div>
147
+ </div>
148
+
149
+ <div className="mt-8 bg-blue-50 dark:bg-blue-900/20 p-4 rounded-md">
150
+ <h4 className="text-blue-800 dark:text-blue-200 font-medium mb-2">Need Additional Help?</h4>
151
+ <p className="text-blue-700 dark:text-blue-300 text-sm">
152
+ If you need additional help with NDPR compliance, consider consulting with a data protection professional or legal expert
153
+ who specializes in Nigerian data protection law. While the NDPR Toolkit provides valuable tools and guidance,
154
+ professional advice can help ensure that your compliance program addresses your organization&apos;s specific needs and risks.
155
+ </p>
156
+ </div>
157
+ </section>
158
+ );
159
+ }
@@ -0,0 +1,38 @@
1
+ 'use client';
2
+
3
+ import Link from 'next/link';
4
+ import { DocLayout } from '@/components/docs/DocLayout';
5
+ import { Button } from '@/components/ui/Button';
6
+ import Introduction from './components/Introduction';
7
+ import KeyRequirements from './components/KeyRequirements';
8
+ import ComplianceChecklist from './components/ComplianceChecklist';
9
+ import ImplementationTools from './components/ImplementationTools';
10
+ import Resources from './components/Resources';
11
+
12
+ export default function NDPRComplianceChecklistGuide() {
13
+ return (
14
+ <DocLayout
15
+ title="NDPR Compliance Checklist"
16
+ description="A comprehensive checklist to help organizations achieve and maintain NDPR compliance"
17
+ >
18
+ <div className="flex mb-6 space-x-2">
19
+ <Button asChild variant="outline" size="sm">
20
+ <a href="https://nitda.gov.ng/wp-content/uploads/2020/01/NDPR-Implementation-Framework.pdf" target="_blank" rel="noopener noreferrer">
21
+ NDPR Framework
22
+ </a>
23
+ </Button>
24
+ <Button asChild variant="outline" size="sm">
25
+ <Link href="/docs">
26
+ Toolkit Documentation
27
+ </Link>
28
+ </Button>
29
+ </div>
30
+
31
+ <Introduction />
32
+ <KeyRequirements />
33
+ <ComplianceChecklist />
34
+ <ImplementationTools />
35
+ <Resources />
36
+ </DocLayout>
37
+ );
38
+ }
@@ -0,0 +1,67 @@
1
+ 'use client';
2
+
3
+ import Link from 'next/link';
4
+ import { DocLayout } from '@/components/docs/DocLayout';
5
+ import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/Card';
6
+ import { Button } from '@/components/ui/Button';
7
+
8
+ export default function GuidesPage() {
9
+ return (
10
+ <DocLayout
11
+ title="Implementation Guides"
12
+ description="Step-by-step guides for implementing NDPR-compliant features"
13
+ >
14
+ <p className="mb-6">
15
+ These comprehensive guides will help you implement NDPR-compliant features in your applications.
16
+ Each guide provides step-by-step instructions, code examples, and best practices.
17
+ </p>
18
+
19
+ <div className="grid grid-cols-1 gap-6 sm:grid-cols-2">
20
+ {[
21
+ {
22
+ title: 'Conducting a DPIA',
23
+ description: 'Step-by-step guide to conducting a Data Protection Impact Assessment',
24
+ href: '/docs/guides/conducting-dpia',
25
+ },
26
+ {
27
+ title: 'Managing Consent',
28
+ description: 'Learn how to implement a complete consent management system',
29
+ href: '/docs/guides/managing-consent',
30
+ },
31
+ {
32
+ title: 'Handling Data Subject Requests',
33
+ description: 'Best practices for handling data subject rights requests',
34
+ href: '/docs/guides/data-subject-requests',
35
+ },
36
+ {
37
+ title: 'Breach Notification Process',
38
+ description: 'How to implement a 72-hour breach notification process',
39
+ href: '/docs/guides/breach-notification-process',
40
+ },
41
+ {
42
+ title: 'NDPR Compliance Checklist',
43
+ description: 'A comprehensive checklist to help organizations achieve and maintain NDPR compliance',
44
+ href: '/docs/guides/ndpr-compliance-checklist',
45
+ },
46
+ ].map((guide) => (
47
+ <Card key={guide.title}>
48
+ <CardHeader>
49
+ <CardTitle>{guide.title}</CardTitle>
50
+ </CardHeader>
51
+ <CardContent>
52
+ <p className="text-gray-500 dark:text-gray-400 mb-4">{guide.description}</p>
53
+ <Button asChild variant="outline">
54
+ <Link href={guide.href}>
55
+ Read Guide
56
+ <svg className="w-4 h-4 ml-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
57
+ <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M14 5l7 7m0 0l-7 7m7-7H3" />
58
+ </svg>
59
+ </Link>
60
+ </Button>
61
+ </CardContent>
62
+ </Card>
63
+ ))}
64
+ </div>
65
+ </DocLayout>
66
+ );
67
+ }
@@ -0,0 +1,15 @@
1
+ import metadata from './metadata';
2
+
3
+ export { metadata };
4
+
5
+ export default function DocsLayout({
6
+ children,
7
+ }: {
8
+ children: React.ReactNode;
9
+ }) {
10
+ return (
11
+ <>
12
+ {children}
13
+ </>
14
+ );
15
+ }
@@ -0,0 +1,31 @@
1
+ import { Metadata } from 'next';
2
+
3
+ export const metadata: Metadata = {
4
+ title: 'NDPR Toolkit Documentation | Implementation Guides & API Reference',
5
+ description: 'Comprehensive documentation for implementing NDPR-compliant features in your applications, including guides, API references, and compliance information.',
6
+ keywords: 'NDPR Documentation, Nigerian Data Protection, Compliance Guides, API Reference, Implementation Tutorials',
7
+ openGraph: {
8
+ title: 'NDPR Toolkit Documentation | Implementation Guides & API Reference',
9
+ description: 'Comprehensive documentation for implementing NDPR-compliant features in your applications, including guides, API references, and compliance information.',
10
+ url: 'https://ndprtoolkit.com.ng/docs',
11
+ siteName: 'NDPR Toolkit',
12
+ images: [
13
+ {
14
+ url: '/og-docs.png',
15
+ width: 1200,
16
+ height: 630,
17
+ alt: 'NDPR Toolkit Documentation',
18
+ },
19
+ ],
20
+ locale: 'en_US',
21
+ type: 'website',
22
+ },
23
+ twitter: {
24
+ card: 'summary_large_image',
25
+ title: 'NDPR Toolkit Documentation | Implementation Guides & API Reference',
26
+ description: 'Comprehensive documentation for implementing NDPR-compliant features in your applications, including guides, API references, and compliance information.',
27
+ images: ['/og-docs.png'],
28
+ },
29
+ };
30
+
31
+ export default metadata;