Skip to content

Commit d5df36f

Browse files
committed
add ToS and privacy policy
1 parent 5b6be47 commit d5df36f

5 files changed

Lines changed: 212 additions & 2 deletions

File tree

app/controllers/pages_controller.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,10 @@ class PagesController < ApplicationController
33

44
def home
55
end
6+
7+
def terms
8+
end
9+
10+
def privacy
11+
end
612
end

app/views/layouts/application.html.erb

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,11 @@
6666
<footer class="bg-white border-t border-gray-200 mt-auto">
6767
<div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
6868
<div class="flex flex-col sm:flex-row items-center justify-between gap-4 text-sm text-gray-500">
69-
<p>CouncilTracker is an independent civic transparency project.</p>
70-
<p>Not affiliated with the City of Jersey City.</p>
69+
<p>CouncilTracker is an independent civic transparency project. Not affiliated with the City of Jersey City.</p>
70+
<div class="flex items-center gap-4">
71+
<%= link_to "Terms of Service", terms_path, class: "hover:text-gray-700" %>
72+
<%= link_to "Privacy Policy", privacy_path, class: "hover:text-gray-700" %>
73+
</div>
7174
</div>
7275
</div>
7376
</footer>

app/views/pages/privacy.html.erb

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
<div class="max-w-3xl mx-auto py-8 sm:py-12">
2+
<h1 class="text-2xl sm:text-3xl font-bold text-gray-900 mb-2">Privacy Policy</h1>
3+
<p class="text-sm text-gray-500 mb-8">Last updated: March 22, 2026</p>
4+
5+
<div class="prose prose-gray max-w-none space-y-6 text-sm leading-relaxed text-gray-700">
6+
<p>
7+
Art Redacted LLC ("Company", "we", "us", or "our") operates the CouncilTracker website ("Service").
8+
This Privacy Policy describes how we collect, use, and protect your information when you use the Service.
9+
</p>
10+
11+
<h2 class="text-lg font-semibold text-gray-900 !mt-8">1. Information We Collect</h2>
12+
13+
<h3 class="text-base font-medium text-gray-800 !mt-4">Information You Provide</h3>
14+
<p>When you create an account, we collect:</p>
15+
<ul class="list-disc pl-6 space-y-1">
16+
<li><strong>Email address</strong> &mdash; used for authentication and account communications.</li>
17+
<li><strong>Password</strong> &mdash; stored in hashed form; we never store or have access to your plaintext password.</li>
18+
</ul>
19+
<p>
20+
We do not require or collect your real name, phone number, physical address, or payment information.
21+
</p>
22+
23+
<h3 class="text-base font-medium text-gray-800 !mt-4">Information Collected Automatically</h3>
24+
<p>When you access the Service, we may automatically collect:</p>
25+
<ul class="list-disc pl-6 space-y-1">
26+
<li><strong>IP address</strong> &mdash; collected as part of session management.</li>
27+
<li><strong>User agent</strong> &mdash; your browser type and version, collected as part of session management.</li>
28+
<li><strong>Usage data</strong> &mdash; pages visited and features used, collected through standard server logs.</li>
29+
</ul>
30+
31+
<h3 class="text-base font-medium text-gray-800 !mt-4">Information We Do Not Collect</h3>
32+
<p>We do not use third-party analytics services, advertising trackers, or social media tracking pixels. We do not sell, share, or provide your data to any third-party advertising or data broker services.</p>
33+
34+
<h2 class="text-lg font-semibold text-gray-900 !mt-8">2. How We Use Your Information</h2>
35+
<p>We use the information we collect to:</p>
36+
<ul class="list-disc pl-6 space-y-1">
37+
<li>Provide, maintain, and improve the Service.</li>
38+
<li>Authenticate your identity and manage your account.</li>
39+
<li>Maintain your preferences, such as starred items.</li>
40+
<li>Protect against unauthorized access and abuse.</li>
41+
</ul>
42+
43+
<h2 class="text-lg font-semibold text-gray-900 !mt-8">3. Cookies and Session Data</h2>
44+
<p>
45+
The Service uses session cookies to keep you signed in. These are essential cookies required for
46+
the Service to function and are not used for tracking or advertising purposes. We do not use
47+
third-party cookies.
48+
</p>
49+
50+
<h2 class="text-lg font-semibold text-gray-900 !mt-8">4. Data Retention</h2>
51+
<p>
52+
We retain your account information for as long as your account is active. Session data (IP address,
53+
user agent) is retained for security purposes and may be periodically purged. If you delete your
54+
account, we will delete your personal information within a reasonable timeframe, except as required
55+
by law.
56+
</p>
57+
58+
<h2 class="text-lg font-semibold text-gray-900 !mt-8">5. Data Security</h2>
59+
<p>
60+
We implement appropriate technical and organizational measures to protect your personal information,
61+
including encrypted connections (HTTPS), hashed passwords, and access controls. However, no method
62+
of transmission over the Internet or electronic storage is completely secure, and we cannot
63+
guarantee absolute security.
64+
</p>
65+
66+
<h2 class="text-lg font-semibold text-gray-900 !mt-8">6. Your Rights</h2>
67+
<p>You have the right to:</p>
68+
<ul class="list-disc pl-6 space-y-1">
69+
<li><strong>Access</strong> the personal information we hold about you.</li>
70+
<li><strong>Correct</strong> inaccurate personal information.</li>
71+
<li><strong>Delete</strong> your account and associated personal information.</li>
72+
<li><strong>Export</strong> your data in a portable format upon request.</li>
73+
</ul>
74+
<p>To exercise any of these rights, please contact us using the information below.</p>
75+
76+
<h2 class="text-lg font-semibold text-gray-900 !mt-8">7. Children's Privacy</h2>
77+
<p>
78+
The Service is not directed to children under 13 years of age. We do not knowingly collect personal
79+
information from children under 13. If we become aware that we have collected personal information
80+
from a child under 13, we will take steps to delete that information.
81+
</p>
82+
83+
<h2 class="text-lg font-semibold text-gray-900 !mt-8">8. Third-Party Links</h2>
84+
<p>
85+
The Service may contain links to third-party websites, including official government websites.
86+
We are not responsible for the privacy practices of these external sites. We encourage you to
87+
review the privacy policies of any third-party sites you visit.
88+
</p>
89+
90+
<h2 class="text-lg font-semibold text-gray-900 !mt-8">9. Changes to This Policy</h2>
91+
<p>
92+
We may update this Privacy Policy from time to time. If we make material changes, we will update
93+
the "Last updated" date at the top of this page. Your continued use of the Service after any
94+
changes constitutes acceptance of the updated Privacy Policy.
95+
</p>
96+
97+
<h2 class="text-lg font-semibold text-gray-900 !mt-8">10. Contact</h2>
98+
<p>
99+
If you have any questions about this Privacy Policy or wish to exercise your data rights,
100+
please contact us at Art Redacted LLC.
101+
</p>
102+
</div>
103+
</div>

app/views/pages/terms.html.erb

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
<div class="max-w-3xl mx-auto py-8 sm:py-12">
2+
<h1 class="text-2xl sm:text-3xl font-bold text-gray-900 mb-2">Terms of Service</h1>
3+
<p class="text-sm text-gray-500 mb-8">Last updated: March 22, 2026</p>
4+
5+
<div class="prose prose-gray max-w-none space-y-6 text-sm leading-relaxed text-gray-700">
6+
<p>
7+
These Terms of Service ("Terms") govern your access to and use of the CouncilTracker website
8+
("Service"), operated by Art Redacted LLC ("Company", "we", "us", or "our"). By accessing or using the
9+
Service, you agree to be bound by these Terms.
10+
</p>
11+
12+
<h2 class="text-lg font-semibold text-gray-900 !mt-8">1. Description of Service</h2>
13+
<p>
14+
CouncilTracker is a civic transparency platform that aggregates, organizes, and presents publicly
15+
available information about the Jersey City Municipal Council, including meeting agendas, voting
16+
records, and related public documents. The Service is provided for informational purposes only.
17+
</p>
18+
19+
<h2 class="text-lg font-semibold text-gray-900 !mt-8">2. Use of the Service</h2>
20+
<p>You agree to use the Service only for lawful purposes and in accordance with these Terms. You agree not to:</p>
21+
<ul class="list-disc pl-6 space-y-1">
22+
<li>Use the Service in any way that violates applicable federal, state, or local law or regulation.</li>
23+
<li>Attempt to gain unauthorized access to any portion of the Service, other accounts, or computer systems or networks connected to the Service.</li>
24+
<li>Use any automated means, including bots, scrapers, or spiders, to access the Service for any purpose without our express written permission.</li>
25+
<li>Interfere with or disrupt the Service or servers or networks connected to the Service.</li>
26+
</ul>
27+
28+
<h2 class="text-lg font-semibold text-gray-900 !mt-8">3. Accounts</h2>
29+
<p>
30+
Certain features of the Service may require you to create an account. You are responsible for
31+
maintaining the confidentiality of your account credentials and for all activities that occur under
32+
your account. You agree to notify us immediately of any unauthorized use of your account.
33+
</p>
34+
35+
<h2 class="text-lg font-semibold text-gray-900 !mt-8">4. Accuracy of Information</h2>
36+
<p>
37+
While we strive to present accurate and up-to-date information, the data on CouncilTracker is
38+
derived from publicly available government records and may contain errors, omissions, or delays.
39+
The Service is not a substitute for official government records. For authoritative information,
40+
please refer to official City of Jersey City sources.
41+
</p>
42+
<p>
43+
We make no representations or warranties of any kind, express or implied, about the completeness,
44+
accuracy, reliability, or availability of the information provided through the Service.
45+
</p>
46+
47+
<h2 class="text-lg font-semibold text-gray-900 !mt-8">5. Intellectual Property</h2>
48+
<p>
49+
The Service and its original content (excluding publicly sourced government data), features, and
50+
functionality are owned by Art Redacted LLC and are protected by copyright, trademark, and other
51+
intellectual property laws. Government data presented through the Service remains in the public domain.
52+
</p>
53+
54+
<h2 class="text-lg font-semibold text-gray-900 !mt-8">6. Disclaimer of Warranties</h2>
55+
<p>
56+
THE SERVICE IS PROVIDED ON AN "AS IS" AND "AS AVAILABLE" BASIS WITHOUT WARRANTIES OF ANY KIND,
57+
EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY,
58+
FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. WE DO NOT WARRANT THAT THE SERVICE WILL
59+
BE UNINTERRUPTED, SECURE, OR ERROR-FREE.
60+
</p>
61+
62+
<h2 class="text-lg font-semibold text-gray-900 !mt-8">7. Limitation of Liability</h2>
63+
<p>
64+
TO THE FULLEST EXTENT PERMITTED BY LAW, ART REDACTED LLC SHALL NOT BE LIABLE FOR ANY INDIRECT,
65+
INCIDENTAL, SPECIAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES, OR ANY LOSS OF PROFITS OR REVENUES,
66+
WHETHER INCURRED DIRECTLY OR INDIRECTLY, OR ANY LOSS OF DATA, USE, GOODWILL, OR OTHER INTANGIBLE
67+
LOSSES, ARISING OUT OF YOUR ACCESS TO OR USE OF THE SERVICE.
68+
</p>
69+
70+
<h2 class="text-lg font-semibold text-gray-900 !mt-8">8. Indemnification</h2>
71+
<p>
72+
You agree to indemnify and hold harmless Art Redacted LLC and its officers, directors, employees,
73+
and agents from and against any claims, liabilities, damages, losses, and expenses arising out of
74+
or in any way connected with your access to or use of the Service or your violation of these Terms.
75+
</p>
76+
77+
<h2 class="text-lg font-semibold text-gray-900 !mt-8">9. Changes to Terms</h2>
78+
<p>
79+
We reserve the right to modify these Terms at any time. If we make material changes, we will
80+
update the "Last updated" date at the top of this page. Your continued use of the Service after
81+
any changes constitutes acceptance of the new Terms.
82+
</p>
83+
84+
<h2 class="text-lg font-semibold text-gray-900 !mt-8">10. Governing Law</h2>
85+
<p>
86+
These Terms shall be governed by and construed in accordance with the laws of the State of
87+
New Jersey, without regard to its conflict of law provisions.
88+
</p>
89+
90+
<h2 class="text-lg font-semibold text-gray-900 !mt-8">11. Contact</h2>
91+
<p>
92+
If you have any questions about these Terms, please contact us at Art Redacted LLC.
93+
</p>
94+
</div>
95+
</div>

config/routes.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,5 +50,8 @@
5050

5151
get "search", to: "search#index", as: :search
5252

53+
get "terms", to: "pages#terms", as: :terms
54+
get "privacy", to: "pages#privacy", as: :privacy
55+
5356
root "pages#home"
5457
end

0 commit comments

Comments
 (0)