Skip to content

Commit 139267f

Browse files
authored
Merge pull request #131 from codeforpdx/issue-127/create-privacy-policy-page
Feature: Privacy Policy Page
2 parents 6380a0c + aea8d3b commit 139267f

File tree

4 files changed

+256
-5
lines changed

4 files changed

+256
-5
lines changed

frontend/src/App.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import About from "./About";
44
import SessionContextProvider from "./contexts/SessionContext";
55
import Navbar from "./pages/Chat/components/Navbar";
66
import Disclaimer from "./Disclaimer";
7+
import PrivacyPolicy from "./PrivacyPolicy";
78

89
export default function App() {
910
return (
@@ -14,6 +15,7 @@ export default function App() {
1415
<Route path="/" element={<Chat />} />
1516
<Route path="/about" element={<About />} />
1617
<Route path="/disclaimer" element={<Disclaimer />} />
18+
<Route path="/privacy-policy" element={<PrivacyPolicy />} />
1719
</Routes>
1820
</Router>
1921
</SessionContextProvider>

frontend/src/Disclaimer.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
import { Link } from "react-router-dom";
22
import BackLink from "./shared/components/BackLink";
3+
import { useEffect } from "react";
34

45
export default function Disclaimer() {
6+
useEffect(() => {
7+
window.scrollTo({ top: 0, behavior: "smooth" });
8+
}, []);
9+
510
return (
611
<div className="flex items-center mt-16 sm:mt-26 sm:mb-10">
712
<div className="relative max-w-2xl m-auto p-8 bg-[#F4F4F2] rounded-lg shadow-md">
@@ -44,7 +49,7 @@ export default function Disclaimer() {
4449
<h3 className="text-xl font-semibold my-4">2. Privacy</h3>
4550
<p>
4651
Please refer to our{" "}
47-
<Link to="/disclaimer" className="underline text-blue-600">
52+
<Link to="/privacy-policy" className="underline text-blue-600">
4853
Privacy Policy
4954
</Link>{" "}
5055
for information about how we collect, use and disclose information

frontend/src/PrivacyPolicy.tsx

Lines changed: 238 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,238 @@
1+
import { Link } from "react-router-dom";
2+
import BackLink from "./shared/components/BackLink";
3+
import { useEffect } from "react";
4+
5+
export default function PrivacyPolicy() {
6+
useEffect(() => {
7+
window.scrollTo({ top: 0, behavior: "smooth" });
8+
}, []);
9+
10+
return (
11+
<div className="flex items-center mt-16 sm:mt-26 sm:mb-10">
12+
<div className="relative max-w-2xl m-auto p-8 bg-[#F4F4F2] rounded-lg shadow-md">
13+
<BackLink />
14+
<h2 className="text-2xl font-semibold mt-6">Privacy Policy</h2>
15+
<em>Last Updated: June 19, 2025</em>
16+
<p className="my-4">
17+
Tenant First Aid, a program of Code PDX and Qiu Qiu Law ("
18+
<span className="underline">Tenant First Aid</span>
19+
") provides a chatbot service and other tools that allow Oregon
20+
residents to access legal information free of charge about common
21+
tenant issues. This Privacy Policy explains how Qiu Qiu Law collects,
22+
uses, and discloses information about you through its websites and
23+
other online products and services (collectively, the "
24+
<span className="underline">Services</span>
25+
") or when you otherwise interact with us.
26+
</p>
27+
<p className="my-4">
28+
We may change this Privacy Policy from time to time. If we make
29+
changes, we will notify you by revising the date at the top of the
30+
policy and, in some cases, we may provide you with additional notice
31+
(such as adding a statement to our homepage or sending you a
32+
notification). We encourage you to review the Privacy Policy whenever
33+
you access the Services or otherwise interact with us to stay informed
34+
about our information practices and the choices available to you.
35+
</p>
36+
<h3 className="text-xl font-semibold my-4 flex flex-col">
37+
<span>Collection of Information</span>
38+
<span>Information You Provide to Us</span>
39+
</h3>
40+
<p>
41+
We collect transcripts of all conversations for quality improvement
42+
purposes. We do not encourage you to provide your name, address, or
43+
other sensitive information, and generally do not need it to answer
44+
the type of general questions that Tenant First Aid is meant for.
45+
</p>
46+
<p className="my-4">
47+
When you access or use our Services, we automatically collect
48+
information about you, including:
49+
</p>
50+
<ul className="list-disc list-outside my-4 pl-4">
51+
<li>
52+
Log Information: We collect log information about your use of the
53+
Services, including the type of browser you use, access times, pages
54+
viewed, your IP address and the page you visited before navigating
55+
to our Services.
56+
</li>
57+
<li>
58+
Device Information: We collect information about the computer or
59+
mobile device you use to access our Services, including the hardware
60+
model, operating system and version, unique device identifiers, and
61+
mobile network information.
62+
</li>
63+
<li>
64+
Information Collected by Cookies and Other Tracking Technologies:
65+
Like most online services and mobile applications, we may use
66+
cookies and other technologies, such as web beacons and web storage
67+
to collect information about your activity, browser, and device.
68+
Cookies are small data files stored on your hard drive or in device
69+
memory that help us improve our Services and your experience, see
70+
which types of legal information are most frequently accessed
71+
through our Services, and count visits. Web beacons are electronic
72+
images that may be used in our Services or emails and help deliver
73+
cookies, count visits and understand usage and campaign
74+
effectiveness. For more information about cookies and how to disable
75+
them, please see “Your Choices” below.
76+
</li>
77+
<li>
78+
Other Venders: Our Services connect with other technology platforms
79+
and anonymously shared/stored data is governed by their policies
80+
(OpenAI:{" "}
81+
<Link
82+
to="https://openai.com/policies/privacy-policy"
83+
className="underline text-blue-600"
84+
>
85+
Privacy Policy
86+
</Link>{" "}
87+
and{" "}
88+
<Link
89+
to="https://openai.com/policies/terms-of-use"
90+
className="underline text-blue-600"
91+
>
92+
Terms of Use
93+
</Link>
94+
)
95+
</li>
96+
</ul>
97+
<h3 className="text-xl font-semibold my-4">Use of Information</h3>
98+
<p>
99+
We use the information we collect to provide, maintain, and improve
100+
our services, such as to track Service usage and improve the Services.
101+
We may also use the information we collect to:
102+
</p>
103+
<ul className="list-disc list-outside my-4 pl-4">
104+
<li>
105+
Send you technical notices, updates, security alerts and support and
106+
administrative messages and to respond to your comments, questions
107+
and customer service requests
108+
</li>
109+
<li>
110+
Provide news and information we think will be of interest to you
111+
</li>
112+
<li>
113+
Monitor and analyze trends, usage and activities in connection with
114+
our Services
115+
</li>
116+
<li>
117+
Detect, investigate and prevent fraudulent and illegal activities
118+
and protect the rights and property of Tenant First Aid and others
119+
</li>
120+
<li>
121+
Personalize and improve the Services and provide content or features
122+
that match user needs
123+
</li>
124+
<li>
125+
Carry out any other purpose described to you at the time the
126+
information was collected
127+
</li>
128+
</ul>
129+
<h3 className="text-xl font-semibold my-4">Sharing of Information</h3>
130+
<p>
131+
We may share information about you as follows or as otherwise
132+
described in this Privacy Policy:
133+
</p>
134+
<ul className="list-disc list-outside my-4 pl-4">
135+
<li>
136+
With vendors, consultants and other service providers who need
137+
access to such information to carry out work on our behalf
138+
</li>
139+
<li>
140+
With one of our legal services partner organizations, if you apply
141+
for legal aid
142+
</li>
143+
<li>
144+
In response to a request for information if we believe disclosure is
145+
in accordance with, or required by, any applicable law or legal
146+
process, including lawful requests by public authorities to meet
147+
national security or law enforcement requirements
148+
</li>
149+
</ul>
150+
<h3 className="text-xl font-semibold my-4 flex flex-col">
151+
<span>Analytics Services</span>
152+
<span>Provided by Others</span>
153+
</h3>
154+
<ul className="list-disc list-outside my-4 pl-4">
155+
<li>
156+
If we believe your actions are inconsistent with our user agreements
157+
or policies, or to protect the rights, property and safety of Tenant
158+
First Aid or others
159+
</li>
160+
<li>
161+
Between and among Tenant First Aid and our partner organizations in
162+
order to provide, evaluate or improve the Services; and
163+
</li>
164+
<li>With your consent or at your direction</li>
165+
</ul>
166+
<p className="my-4">
167+
We may also share aggregated or de-identified information, which
168+
cannot reasonably be used to identify you.
169+
</p>
170+
<p className="my-4">
171+
We may allow others to provide analytics services across the internet
172+
and in applications. These entities may use cookies, web beacons,
173+
device identifiers and other technologies to collect information about
174+
your use of the Services and other websites and applications,
175+
including your IP address, web browser, mobile network information,
176+
pages viewed, time spent on pages or in apps, links clicked and
177+
conversion information. This information may be used by Tenant First
178+
Aid and others to, among other things, analyze and track data,
179+
determine the popularity of certain content, deliver content targeted
180+
to your interests on our Services and other websites and better
181+
understand your online activity.
182+
</p>
183+
<h3 className="text-xl font-semibold my-4">Data Retention</h3>
184+
<p>
185+
We store the information we collect about you for as long as is
186+
necessary for the purpose(s) for which we originally collected it. We
187+
may retain certain information for legitimate business purposes or as
188+
required by law.
189+
</p>
190+
<h3 className="text-xl font-semibold my-4">
191+
Transfer of Information to the U.S. and Other Countries
192+
</h3>
193+
<p>
194+
Tenant First Aid is based in the United States and we process and
195+
store information in the U.S.
196+
</p>
197+
<h3 className="text-xl font-semibold my-4 flex flex-col">
198+
<span>Your Choices</span>
199+
<span>Personal Information</span>
200+
</h3>
201+
<p>
202+
You may update, correct or delete information about you at any time by
203+
interacting with the Services, or emailing us at{" "}
204+
<Link
205+
to="mailto:michael@qiu-qiulaw.com"
206+
className="underline text-blue-600"
207+
>
208+
michael@qiu-qiulaw.com
209+
</Link>
210+
. We may also retain cached or archived copies of information about
211+
you for a certain period of time.
212+
</p>
213+
<h3 className="text-xl font-semibold my-4">Cookies</h3>
214+
<p>
215+
Most web browsers are set to accept cookies by default. If you prefer,
216+
you can usually choose to set your browser to remove or reject browser
217+
cookies. Please note that if you choose to remove or reject cookies,
218+
this could affect the availability and functionality of our Services.
219+
</p>
220+
<h3 className="text-xl font-semibold my-4">
221+
Mobile Notifications/Alerts
222+
</h3>
223+
<p>With your consent, we may send alerts to your mobile device.</p>
224+
<h3 className="text-xl font-semibold my-4">Contact Us</h3>
225+
<p>
226+
If you have any questions about this Privacy Policy, please contact us
227+
at:{" "}
228+
<Link
229+
to="mailto:michael@qiu-qiulaw.com"
230+
className="underline text-blue-600"
231+
>
232+
michael@qiu-qiulaw.com
233+
</Link>
234+
</p>
235+
</div>
236+
</div>
237+
);
238+
}

frontend/src/pages/Chat/components/Navbar.tsx

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,21 @@ export default function Navbar() {
2323
? "rotate-45 translate-y-2 bg-[#1F584F]"
2424
: "bg-[#BACAB2]"
2525
}`}
26-
></span>
26+
/>
2727
<span
2828
className={`block w-7 h-1 bg-[#BACAB2] rounded my-1 transition-all duration-300 ${
2929
sidebarOpen ? "opacity-0" : ""
3030
}`}
31-
></span>
31+
/>
3232
<span
3333
className={`block w-7 h-1 rounded transition-all duration-300 ${
3434
sidebarOpen
3535
? "-rotate-45 -translate-y-2 bg-[#1F584F]"
3636
: "bg-[#BACAB2]"
3737
}`}
38-
></span>
38+
/>
3939
</button>
4040
</div>
41-
4241
<div
4342
className={`fixed top-0 right-0 h-full w-64 bg-[#F4F4F2] shadow-lg z-50 transition-transform duration-300 ${
4443
sidebarOpen ? "translate-x-0" : "translate-x-full"
@@ -66,6 +65,13 @@ export default function Navbar() {
6665
>
6766
Disclaimer
6867
</Link>
68+
<Link
69+
to="/privacy-policy"
70+
className="block px-3 py-2 rounded text-gray-700 font-medium transition-colors hover:bg-[#4F8B82] hover:text-[#F4F4F2]"
71+
onClick={() => setSidebarOpen(false)}
72+
>
73+
Privacy Policy
74+
</Link>
6975
<hr className="my-2 border-t border-gray-300" />
7076
</div>
7177
</div>

0 commit comments

Comments
 (0)