Skip to content

Commit 88b4fbd

Browse files
Tony QiuTony Qiu
authored andcommitted
created about page
1 parent 18c811e commit 88b4fbd

File tree

8 files changed

+275
-8
lines changed

8 files changed

+275
-8
lines changed

backend/example/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ def get_events(request):
9797
if search_term:
9898
search_embedding = generate_embedding(search_term)
9999
similar_events = find_similar_events(
100-
embedding=search_embedding, threshold=0.275
100+
embedding=search_embedding, threshold=0.35
101101
)
102102
similar_event_ids = [event["id"] for event in similar_events]
103103
filtered_queryset = filtered_queryset.filter(id__in=similar_event_ids)

frontend/src/App.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'
22
import { Analytics } from '@vercel/analytics/react'
33
import EventsPage from '@/pages/EventsPage'
44
import ClubsPage from '@/pages/ClubsPage'
5+
import AboutPage from '@/pages/AboutPage'
56
import Footer from '@/components/Footer'
67
import Navbar from '@/components/Navbar'
78

@@ -15,6 +16,7 @@ function App() {
1516
<Route path="/" element={<EventsPage />} />
1617
<Route path="/events" element={<EventsPage />} />
1718
<Route path="/clubs" element={<ClubsPage />} />
19+
<Route path="/about" element={<AboutPage />} />
1820
</Routes>
1921
</main>
2022

frontend/src/components/EventsCalendar.tsx

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,10 @@ const EventPopup: React.FC<{
7272
<div
7373
className="event-popup absolute bg-white dark:bg-gray-800 rounded-md shadow-lg p-4 w-80 z-50 border border-gray-200 dark:border-gray-700"
7474
style={style}
75-
onClick={(e) => e.stopPropagation()}
75+
onMouseDown={(e) => e.stopPropagation()}
7676
>
7777
<button
78-
onClick={onClose}
78+
onMouseDown={onClose}
7979
className="absolute top-2 right-2 text-gray-800 dark:text-gray-300 w-6 h-6 flex items-center justify-center rounded-full bg-gray-100 dark:bg-gray-700"
8080
>
8181
@@ -141,6 +141,7 @@ const EventPopup: React.FC<{
141141
</span>
142142
</div>
143143
)}
144+
144145

145146
{event.registration && (
146147
<div className="italic">Registration required</div>
@@ -172,12 +173,13 @@ const CustomToolbar: React.FC<ToolbarProps<any, object>> = ({
172173
}) => {
173174
return (
174175
<div className="relative mb-4 flex items-center justify-end gap-12">
175-
<div className="absolute left-0 sm:left-1/2 sm:-translate-x-1/2 flex items-center ">
176+
<div className="absolute left-0 sm:left-1/2 gap-3 sm:-translate-x-1/2 flex items-center ">
176177
{/* Back button < */}
177178
<IconButton
178179
onMouseDown={() => onNavigate("PREV")}
179180
icon={ChevronLeft}
180181
aria-label="Previous Month"
182+
size="sm"
181183
/>
182184

183185
{/* Month Year title */}
@@ -190,6 +192,7 @@ const CustomToolbar: React.FC<ToolbarProps<any, object>> = ({
190192
onMouseDown={() => onNavigate("NEXT")}
191193
icon={ChevronRight}
192194
aria-label="Next Month"
195+
size="sm"
193196
/>
194197
</div>
195198

@@ -356,7 +359,7 @@ const EventsCalendar: React.FC<{ events: Event[] }> = ({ events }) => {
356359
return (
357360
<div
358361
className="events-calendar-container relative"
359-
onClick={closePopup}
362+
onMouseDown={closePopup}
360363
ref={calendarContainerRef}
361364
>
362365
<Calendar

frontend/src/components/Navbar.tsx

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ function Navbar() {
3333
</div>
3434
<div className="flex gap-2">
3535
<Button
36+
variant="link"
3637
onMouseDown={() => navigate("/events")}
3738
className={`text-sm font-medium ${
3839
isActive("/events")
@@ -43,6 +44,7 @@ function Navbar() {
4344
Events
4445
</Button>
4546
<Button
47+
variant="link"
4648
onMouseDown={() => navigate("/clubs")}
4749
className={`text-sm font-medium ${
4850
isActive("/clubs")
@@ -52,10 +54,34 @@ function Navbar() {
5254
>
5355
Clubs
5456
</Button>
57+
<Button
58+
variant="link"
59+
onMouseDown={() => navigate("/about")}
60+
className={`text-sm font-medium ${
61+
isActive("/about")
62+
? "text-gray-900 dark:text-white"
63+
: "text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-white"
64+
}`}
65+
>
66+
About
67+
</Button>
5568
</div>
5669
</div>
5770

5871
<div className="flex items-center gap-2">
72+
<Button
73+
variant="link"
74+
asChild
75+
className="text-sm font-medium text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-white"
76+
>
77+
<a
78+
href="https://github.com/ericahan22/bug-free-octo-spork/issues"
79+
target="_blank"
80+
rel="noopener noreferrer"
81+
>
82+
Feedback
83+
</a>
84+
</Button>
5985
<GitHubLink />
6086
<Button
6187
variant="ghost"

frontend/src/hooks/useQuickFilters.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ const filterOptions = [
1111
"Engineering",
1212
"Business",
1313
"Math",
14-
"Pizza",
1514
"Coffee",
1615
"Workshop",
1716
"Career Fair",

frontend/src/pages/AboutPage.tsx

Lines changed: 237 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,237 @@
1+
import React from "react";
2+
import { Button } from "@/components/ui/button";
3+
4+
const AboutPage: React.FC = () => {
5+
return (
6+
<div className="min-h-screen bg-gradient-to-br from-blue-50 to-indigo-100 dark:from-gray-900 dark:to-gray-800">
7+
<div className="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-12">
8+
<h1 className="text-4xl font-bold text-gray-900 dark:text-white mb-8">
9+
About Wat2Do
10+
</h1>
11+
12+
<p className="text-lg text-gray-600 dark:text-gray-300 mb-4">
13+
Welcome to Wat2Do! We created this platform after stumbling upon way
14+
too many underrated events by sheer coincidence. We found ourselves at{" "}
15+
<img
16+
src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Telegram-Animated-Emojis/main/People/Man%20Dancing.webp"
17+
alt="Man Dancing"
18+
width="25"
19+
height="25"
20+
className="inline mx-1"
21+
/>{" "}
22+
hip-hop dance tutorials, a{" "}
23+
<img
24+
src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Telegram-Animated-Emojis/main/Activity/Video%20Game.webp"
25+
alt="Video Game"
26+
width="25"
27+
height="25"
28+
className="inline mx-1"
29+
/>{" "}
30+
remote controlled car hackathon,{" "}
31+
<img
32+
src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Telegram-Animated-Emojis/main/Food%20and%20Drink/Fork%20And%20Knife%20With%20Plate.webp"
33+
alt="Fork And Knife With Plate"
34+
width="25"
35+
height="25"
36+
className="inline mx-1"
37+
/>{" "}
38+
italian cooking lessons in a studio kitchen, a free 2-hr{" "}
39+
<img
40+
src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Telegram-Animated-Emojis/main/People/Mechanical%20Arm.webp"
41+
alt="Mechanical Arm"
42+
width="25"
43+
height="25"
44+
className="inline mx-1"
45+
/>{" "}
46+
curling lesson, a $20{" "}
47+
<img
48+
src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Telegram-Animated-Emojis/main/Travel%20and%20Places/Motor%20Boat.webp"
49+
alt="Motor Boat"
50+
width="25"
51+
height="25"
52+
className="inline mx-1"
53+
/>{" "}
54+
harbour boat cruise, a $30 trip to the Stratford Festival to
55+
watch{" "}
56+
<img
57+
src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Telegram-Animated-Emojis/main/Activity/Performing%20Arts.webp"
58+
alt="Performing Arts"
59+
width="25"
60+
height="25"
61+
className="inline mx-1"
62+
/>{" "}
63+
Annie,{" "}
64+
<img
65+
src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Telegram-Animated-Emojis/main/Travel%20and%20Places/Roller%20Coaster.webp"
66+
alt="Roller Coaster"
67+
width="25"
68+
height="25"
69+
className="inline mx-1"
70+
/>{" "}
71+
Canada's Wonderland for $40, and tons of great company{" "}
72+
<img
73+
src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Telegram-Animated-Emojis/main/People/Handshake.webp"
74+
alt="Handshake"
75+
width="25"
76+
height="25"
77+
className="inline mx-1"
78+
/>{" "}
79+
networking events (
80+
<a
81+
href="/events?view=calendar&search=Atlassian"
82+
className="underline hover:text-gray-500 dark:hover:text-gray-200"
83+
>
84+
Atlassian
85+
</a>
86+
, Patreon,{" "}
87+
<a
88+
href="/events?view=calendar&search=Point72"
89+
className="underline hover:text-gray-500 dark:hover:text-gray-200"
90+
>
91+
Point72
92+
</a>
93+
). We realized we were missing out on so much happening around campus
94+
and built this for ourselves in August 2025. After 2 months we're
95+
extroardinarily excited to be sharing it with the rest of you! P.S. We
96+
don't run ads or sponsors, everything runs out of our own pockets.
97+
</p>
98+
99+
<p className="text-lg font-bold text-gray-600 dark:text-gray-300 mb-12">
100+
— Tony & Erica
101+
</p>
102+
103+
<p className="text-lg text-gray-600 dark:text-gray-300 mb-12">
104+
We believe there are helpful tips to making the most out of this site,
105+
so we went ahead and created a little guide for you, depending on your
106+
goals.
107+
</p>
108+
109+
<h2 className="text-2xl font-bold text-gray-900 dark:text-white mb-6">
110+
Networking
111+
</h2>
112+
<p className="text-gray-600 dark:text-gray-300 mb-4">
113+
Skip the generic LinkedIn messages. The best networking happens at
114+
events where people are in-person, sharing the present with you.
115+
</p>
116+
<p className="text-gray-600 dark:text-gray-300 mb-8">
117+
Check out events like{" "}
118+
<a
119+
href="/events?view=calendar&search=All Things Legal Panel"
120+
className="underline hover:text-gray-500 dark:hover:text-gray-200"
121+
>
122+
All Things Legal Panel
123+
</a>
124+
,
125+
<a
126+
href="/events?view=calendar&search=Innovation Open House"
127+
className="underline hover:text-gray-500 dark:hover:text-gray-200"
128+
>
129+
{" "}
130+
Innovation Open House
131+
</a>
132+
, and
133+
<a
134+
href="/events?view=calendar&search=WiE x Bloomberg"
135+
className="underline hover:text-gray-500 dark:hover:text-gray-200"
136+
>
137+
{" "}
138+
WiE x Bloomberg Fall Kick Off
139+
</a>{" "}
140+
for industry connections.
141+
</p>
142+
143+
<h2 className="text-2xl font-bold text-gray-900 dark:text-white mb-6">
144+
Finding Your Crowd
145+
</h2>
146+
<p className="text-gray-600 dark:text-gray-300 mb-4">
147+
Don't just join clubs that match your major. The most interesting
148+
people often come from completely different fields. Use our filters to
149+
discover niche communities you never knew existed.
150+
</p>
151+
<p className="text-gray-600 dark:text-gray-300 mb-8">
152+
Try events like{" "}
153+
<a
154+
href="/events?view=calendar&search=Gatka Classes"
155+
className="underline hover:text-gray-500 dark:hover:text-gray-200"
156+
>
157+
Gatka Classes
158+
</a>
159+
,
160+
<a
161+
href="/events?view=calendar&search=Retro Rollers"
162+
className="underline hover:text-gray-500 dark:hover:text-gray-200"
163+
>
164+
{" "}
165+
Retro Rollers
166+
</a>
167+
, and
168+
<a
169+
href="/events?view=calendar&search=Repair Club"
170+
className="underline hover:text-gray-500 dark:hover:text-gray-200"
171+
>
172+
{" "}
173+
Repair Club First Meeting
174+
</a>{" "}
175+
to find unexpected communities.
176+
</p>
177+
178+
<h2 className="text-2xl font-bold text-gray-900 dark:text-white mb-6">
179+
Making Memories With Yourself or Your Friends
180+
</h2>
181+
<p className="text-gray-600 dark:text-gray-300 mb-4">
182+
The best events for groups are the ones that don't require
183+
registration. You can show up with friends, leave early if it's not
184+
fun, or split up and meet different people. Pro tip: check the "food"
185+
filter for events with free meals, we experience them to be more
186+
social and less formal.
187+
</p>
188+
<p className="text-gray-600 dark:text-gray-300 mb-8">
189+
Great for groups:{" "}
190+
<a
191+
href="/events?view=calendar&search=Nature Hike"
192+
className="underline hover:text-gray-500 dark:hover:text-gray-200"
193+
>
194+
Nature Hike
195+
</a>
196+
,
197+
<a
198+
href="/events?view=calendar&search=Fall BBQ"
199+
className="underline hover:text-gray-500 dark:hover:text-gray-200"
200+
>
201+
{" "}
202+
Fall BBQ Smash
203+
</a>
204+
, and
205+
<a
206+
href="/events?view=calendar&search=Trivia Night"
207+
className="underline hover:text-gray-500 dark:hover:text-gray-200"
208+
>
209+
{" "}
210+
Trivia Night
211+
</a>
212+
.
213+
</p>
214+
215+
<h2 className="text-2xl font-bold text-gray-900 dark:text-white mb-6">
216+
Start Exploring
217+
</h2>
218+
<p className="text-gray-600 dark:text-gray-300 mb-8">
219+
Check Wat2Do regularly for new events. Subscribe to our newsletter for
220+
weekly updates. Don't be afraid to attend events alone! The best
221+
connections happen when you show up.
222+
</p>
223+
224+
<div className="flex gap-4">
225+
<Button variant="link">
226+
<a href="/events">Browse Events</a>
227+
</Button>
228+
<Button variant="link">
229+
<a href="/clubs">Explore Clubs</a>
230+
</Button>
231+
</div>
232+
</div>
233+
</div>
234+
);
235+
};
236+
237+
export default AboutPage;

frontend/src/pages/EventsPage.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ function EventsPage() {
4949
{/* Filters */}
5050
<div className="flex flex-col gap-4">
5151
<div className="flex flex-col sm:flex-row gap-4">
52-
<SearchInput placeholder="Search events..." className="flex-1" />
52+
<SearchInput placeholder="Filter events by..." className="flex-1" />
5353

5454
{/* View toggle tabs */}
5555
<div className="flex justify-end ml-auto gap-2">

frontend/tsconfig.tsbuildinfo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"root":["./src/app.tsx","./src/main.tsx","./src/vite-env.d.ts","./src/components/clubsgrid.tsx","./src/components/eventlegend.tsx","./src/components/eventscalendar.tsx","./src/components/eventsgrid.tsx","./src/components/floatingeventexportbar.tsx","./src/components/footer.tsx","./src/components/githublink.tsx","./src/components/navbar.tsx","./src/components/quickfilters.tsx","./src/components/searchinput.tsx","./src/components/ui/badge.tsx","./src/components/ui/button.tsx","./src/components/ui/card.tsx","./src/components/ui/icon-button.tsx","./src/components/ui/input.tsx","./src/components/ui/select.tsx","./src/components/ui/tabs.tsx","./src/components/ui/tooltip.tsx","./src/data/staticevents.ts","./src/hooks/index.ts","./src/hooks/usecategoryparam.ts","./src/hooks/useclubs.ts","./src/hooks/usedocumenttitle.ts","./src/hooks/useeventselection.ts","./src/hooks/useevents.ts","./src/hooks/usenewslettersubscribe.ts","./src/hooks/usequickfilters.ts","./src/hooks/usesearchstate.ts","./src/hooks/usetheme.ts","./src/lib/clubtypecolors.ts","./src/lib/dateutils.ts","./src/lib/eventutils.ts","./src/lib/theme.tsx","./src/lib/utils.ts","./src/pages/clubspage.tsx","./src/pages/eventspage.tsx"],"version":"5.8.3"}
1+
{"root":["./src/app.tsx","./src/main.tsx","./src/vite-env.d.ts","./src/components/clubsgrid.tsx","./src/components/eventlegend.tsx","./src/components/eventscalendar.tsx","./src/components/eventsgrid.tsx","./src/components/floatingeventexportbar.tsx","./src/components/footer.tsx","./src/components/githublink.tsx","./src/components/navbar.tsx","./src/components/quickfilters.tsx","./src/components/searchinput.tsx","./src/components/ui/badge.tsx","./src/components/ui/button.tsx","./src/components/ui/card.tsx","./src/components/ui/icon-button.tsx","./src/components/ui/input.tsx","./src/components/ui/select.tsx","./src/components/ui/tabs.tsx","./src/components/ui/tooltip.tsx","./src/data/staticevents.ts","./src/hooks/index.ts","./src/hooks/usecategoryparam.ts","./src/hooks/useclubs.ts","./src/hooks/usedocumenttitle.ts","./src/hooks/useeventselection.ts","./src/hooks/useevents.ts","./src/hooks/usenewslettersubscribe.ts","./src/hooks/usequickfilters.ts","./src/hooks/usesearchstate.ts","./src/hooks/usetheme.ts","./src/lib/clubtypecolors.ts","./src/lib/dateutils.ts","./src/lib/eventutils.ts","./src/lib/theme.tsx","./src/lib/utils.ts","./src/pages/aboutpage.tsx","./src/pages/clubspage.tsx","./src/pages/eventspage.tsx"],"version":"5.8.3"}

0 commit comments

Comments
 (0)