Skip to content

Commit fced39d

Browse files
authored
Merge pull request #37 from Krish-2118/main
terms and privacy policy
2 parents 059bda1 + 4a1c3b8 commit fced39d

15 files changed

Lines changed: 281 additions & 27 deletions

File tree

‎README.md‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,8 @@ The registration APIs (`/api/register`, `/api/upload`) check the same switch on
195195

196196
Edit [`src/config/payment.ts`](src/config/payment.ts). The fee must match `REGISTRATION_FEE_INR` in
197197
[`src/lib/security.ts`](src/lib/security.ts), which is what the server records. Then regenerate
198-
`public/assets/upi-qr.svg` from the new `UPI_PAY_LINK` with any QR encoder, and scan it to check before deploying.
198+
`public/assets/upi-qr.svg` from the new `UPI_PAY_LINK` as a single byte-mode segment (see the comment in
199+
`payment.ts`), and scan it to check before deploying.
199200

200201
### Add gallery photos
201202

‎public/assets/upi-qr.svg‎

Lines changed: 1 addition & 1 deletion
Loading

‎src/app/privacy/page.tsx‎

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
import Link from 'next/link';
2+
import LegalPage, { LegalContacts } from '@/components/legal/LegalPage';
3+
import { pageMetadata } from '@/lib/seo';
4+
5+
export const metadata = pageMetadata({
6+
title: 'Privacy Policy',
7+
description: 'How INNOVISION 2026, the techno-management festival of NIT Rourkela, collects, uses and protects your personal data.',
8+
path: '/privacy',
9+
});
10+
11+
/**
12+
* /privacy. Describes what the site actually does with personal data; keep it in step with the code when the data
13+
* collected changes (registration form fields, supabase/schema.sql, the analytics in src/app/layout.tsx).
14+
*/
15+
export default function PrivacyPage() {
16+
return (
17+
<LegalPage title="Privacy Policy" path="/privacy" updated="13 October 2026">
18+
<p>
19+
This policy explains what personal data the INNOVISION 2026 website collects, why, who can see it and what you can
20+
do about it. &ldquo;We&rdquo; means the INNOVISION 2026 organising team at the National Institute of Technology
21+
Rourkela, Odisha. By signing in or registering you agree to this policy and to our{' '}
22+
<Link href="/terms">Terms and Conditions</Link>.
23+
</p>
24+
25+
<h2>What we collect</h2>
26+
<ul>
27+
<li><b>From Google sign-in:</b> your name, email address and profile photo. We never see your Google password.</li>
28+
<li><b>When you register:</b> your name, gender, college, enrolment or roll number and phone number.</li>
29+
<li><b>For the fee:</b> the UPI transaction ID (UTR) and the screenshot of your payment that you upload. We do not collect card, bank or UPI PIN details.</li>
30+
<li><b>At the venue:</b> when your entry pass is scanned, we record the time, the entry desk and which volunteer checked you in.</li>
31+
<li><b>Visit statistics:</b> anonymous page-view counts through Vercel Analytics, which uses no cookies and does not identify you.</li>
32+
</ul>
33+
34+
<h2>Why we use it</h2>
35+
<ul>
36+
<li>To sign you in and keep you signed in.</li>
37+
<li>To verify your payment and confirm or reject your registration.</li>
38+
<li>To issue your QR entry pass and check you in at the gate, once per registration.</li>
39+
<li>To contact you about your registration or important changes to the fest.</li>
40+
<li>To keep the site secure and stop abuse, such as fake or repeated registrations.</li>
41+
</ul>
42+
<p>We do not sell your data, use it for advertising or send you marketing email.</p>
43+
44+
<h2>Who can see it</h2>
45+
<ul>
46+
<li><b>You</b> can see your own profile, registration and entry pass after signing in.</li>
47+
<li><b>The registration team</b> sees registration details and payment screenshots to verify payments. Screenshots are kept in private storage and opened only through short-lived links.</li>
48+
<li><b>Gate volunteers</b> see your registration details when they scan your pass, to match them with your college ID.</li>
49+
<li>
50+
<b>Service providers</b> that run the site for us: Google (sign-in), Supabase (database and file storage) and
51+
Vercel (hosting and visit statistics). They process data only to provide those services.
52+
</li>
53+
</ul>
54+
<p>We share data with anyone else only if the law requires it.</p>
55+
56+
<h2>Cookies and browser storage</h2>
57+
<p>
58+
We use two sign-in cookies, which last up to 7 and 30 days, so you stay logged in. The site also keeps small,
59+
temporary notes in your browser&apos;s session storage, for example to reopen the registration form after you sign
60+
in. We use no advertising or tracking cookies.
61+
</p>
62+
63+
<h2>How long we keep it</h2>
64+
<p>
65+
We keep registration data, payment screenshots and check-in records only for as long as we need them to run
66+
INNOVISION 2026, handle questions about payments or entry and settle the fest&apos;s accounts. After that we delete them.
67+
</p>
68+
69+
<h2>How we protect it</h2>
70+
<p>
71+
Data is sent over encrypted connections. Access is limited by role: participants can read only their own records,
72+
and only the registration team can see payment screenshots. Entry-pass codes are stored encrypted. No system is
73+
perfectly secure, but we take reasonable steps to protect your data.
74+
</p>
75+
76+
<h2>Your choices and rights</h2>
77+
<ul>
78+
<li>You can view your details in your profile and update your phone number there.</li>
79+
<li>You can ask us for a copy of your data, to correct details you can&apos;t edit yourself, or to delete your data.</li>
80+
<li>If you have a concern about how we handle your data, contact us first and we will try to resolve it.</li>
81+
</ul>
82+
<p>
83+
Deleting your data cancels your registration and entry pass. We may keep a record of a payment where that is needed
84+
to settle accounts or resolve a dispute.
85+
</p>
86+
87+
<h2>Changes to this policy</h2>
88+
<p>
89+
If we change this policy we will update it on this page and change the date at the top. Significant changes will
90+
also be announced on the site.
91+
</p>
92+
93+
<h2>Contact us</h2>
94+
<p>For any privacy question or request, contact the organising team:</p>
95+
<LegalContacts />
96+
</LegalPage>
97+
);
98+
}

‎src/app/sitemap.ts‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { WORLDS } from '@/components/innovision/data';
1010
* whose #/ hash routes on the home page search engines treat as the home page itself; the gallery and schedule views
1111
* have no pages of their own. /register and /merch are listed only while they render their public teaser pages; once
1212
* their launch switch (src/config/launch.ts) is on, they redirect instead (to sign-in, or to the #/merch store view)
13-
* and are left out. Staff pages (/admin) and the API never appear.
13+
* and are left out. /privacy and /terms are always listed. Staff pages (/admin) and the API never appear.
1414
*
1515
* No lastModified: nothing in the project records when a page's content last changed, and a build date is not that.
1616
*/
@@ -21,6 +21,8 @@ export default function sitemap(): MetadataRoute.Sitemap {
2121
...WORLDS.map((w) => `/events/${w.slug}`),
2222
...(REGISTRATIONS_OPEN ? [] : ['/register']),
2323
...(MERCH_STORE_OPEN ? [] : ['/merch']),
24+
'/privacy',
25+
'/terms',
2426
];
2527
return paths.map((path) => ({ url: `${SITE_URL}${path}` }));
2628
}

‎src/app/terms/page.tsx‎

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
import Link from 'next/link';
2+
import LegalPage, { LegalContacts } from '@/components/legal/LegalPage';
3+
import { REGISTRATION_FEE } from '@/config/payment';
4+
import { pageMetadata } from '@/lib/seo';
5+
6+
export const metadata = pageMetadata({
7+
title: 'Terms and Conditions',
8+
description: 'The terms for registering for and attending INNOVISION 2026, the techno-management festival of NIT Rourkela.',
9+
path: '/terms',
10+
});
11+
12+
/** /terms. The registration and entry rules here mirror the registration flow and the QR check-in at the gate. */
13+
export default function TermsPage() {
14+
return (
15+
<LegalPage title="Terms and Conditions" path="/terms" updated="13 October 2026">
16+
<p>
17+
These terms apply to everyone who uses the INNOVISION 2026 website, registers for the fest or attends it.
18+
&ldquo;We&rdquo; means the INNOVISION 2026 organising team at the National Institute of Technology Rourkela, Odisha.
19+
By signing in or registering you accept these terms and our <Link href="/privacy">Privacy Policy</Link>.
20+
</p>
21+
22+
<h2>Accounts and registration</h2>
23+
<ul>
24+
<li>You sign in with your own Google account. One account can hold one registration.</li>
25+
<li>Your details must be true and must match your college ID card, which you will be asked to show at the gate.</li>
26+
<li>You are responsible for keeping your account secure and for activity under it.</li>
27+
</ul>
28+
29+
<h2>Fee and payment</h2>
30+
<ul>
31+
<li>The registration fee is <b>₹{REGISTRATION_FEE}</b>, paid by UPI to the account shown on the registration form.</li>
32+
<li>After paying, you upload a screenshot of the payment and enter its UPI transaction ID (UTR).</li>
33+
<li>
34+
Your registration stays <b>pending</b> until the registration team has verified the payment. It is then
35+
confirmed or rejected.
36+
</li>
37+
<li>
38+
A registration is rejected if the payment can&apos;t be verified, for example a wrong amount or an unclear or
39+
edited screenshot. You can then register again with a valid payment.
40+
</li>
41+
<li>A UTR can be used for only one registration. We may block accounts that submit false payment details.</li>
42+
</ul>
43+
44+
<h2>Refunds</h2>
45+
<p>
46+
The registration fee is non-refundable once your registration is confirmed. If you were charged twice, or your
47+
payment reached us but your registration was rejected, contact us with your UTR and we will look into a refund.
48+
If the fest is cancelled, we will announce how fees will be refunded.
49+
</p>
50+
51+
<h2>Entry pass</h2>
52+
<ul>
53+
<li>A confirmed registration gets one QR entry pass, shown under MY PASS on the site.</li>
54+
<li>The pass is personal and non-transferable. Don&apos;t share it: whoever is scanned first is checked in.</li>
55+
<li>Each pass checks in once. Carry your college ID; volunteers may refuse entry if it doesn&apos;t match your registration.</li>
56+
</ul>
57+
58+
<h2>At the fest</h2>
59+
<ul>
60+
<li>Follow the rules of NIT Rourkela and the instructions of the organisers, volunteers and security staff.</li>
61+
<li>Individual events may have their own rules, eligibility and judging, which apply alongside these terms.</li>
62+
<li>
63+
We may refuse entry to or remove anyone who breaks these rules or behaves unsafely or abusively, without a refund.
64+
</li>
65+
<li>You are responsible for your belongings. We are not liable for loss or damage to personal property.</li>
66+
<li>
67+
The fest is photographed and filmed. Photos and videos may appear on this site and on our social media.
68+
</li>
69+
</ul>
70+
71+
<h2>Changes to the fest</h2>
72+
<p>
73+
Schedules, venues, line-ups, prizes and event formats may change. We will post changes on the site. If the fest
74+
has to be postponed or cancelled, we will announce what happens to registrations.
75+
</p>
76+
77+
<h2>Using this website</h2>
78+
<ul>
79+
<li>Don&apos;t try to break, overload or get around the site&apos;s security, registration or payment checks.</li>
80+
<li>Don&apos;t submit someone else&apos;s details, or create accounts or registrations on their behalf without their consent.</li>
81+
<li>The site&apos;s design, text and artwork belong to INNOVISION and its creators. Don&apos;t reuse them without permission.</li>
82+
<li>We may suspend accounts or cancel registrations that break these terms.</li>
83+
</ul>
84+
85+
<h2>Liability</h2>
86+
<p>
87+
We run the site and the fest with reasonable care, but we provide the site &ldquo;as is&rdquo; and can&apos;t promise it
88+
will always be available or error-free. As far as the law allows, our liability for any registration is limited to
89+
the fee you paid for it.
90+
</p>
91+
92+
<h2>Changes to these terms</h2>
93+
<p>
94+
We may update these terms. The date at the top shows the latest version. Continuing to use the site after a change
95+
means you accept the updated terms.
96+
</p>
97+
98+
<h2>Contact us</h2>
99+
<p>For questions about registration, payments or these terms, contact the organising team:</p>
100+
<LegalContacts />
101+
</LegalPage>
102+
);
103+
}

0 commit comments

Comments
 (0)