Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/api/src/routers/hello.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@ import { createTRPCRouter, publicProcedure } from '../trpc';

export const helloRouter = createTRPCRouter({
sayHello: publicProcedure.mutation(() => {
return { message: 'Hello, world!' };
return { message: 'hello is this thing on hellooooo' };
}),
});
236 changes: 118 additions & 118 deletions sites/mainweb/.firebase/hosting.b3V0.cache

Large diffs are not rendered by default.

279 changes: 123 additions & 156 deletions sites/mainweb/app/bootcamp/page.tsx

Large diffs are not rendered by default.

71 changes: 71 additions & 0 deletions sites/mainweb/app/not-found.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
// src/app/not-found.tsx
"use client";

import { useState, useEffect } from "react";
import Link from "next/link";
import Background from "@/components/Background";
import Navbar from "@/components/Navbar";
import Footer from "@/components/Footer";

export default function NotFound() {
const [windowWidth, setWindowWidth] = useState<number>(1024);

useEffect(() => {
// Sync window width for Navbar responsiveness
setWindowWidth(window.innerWidth);
const handleResize = () => setWindowWidth(window.innerWidth);
window.addEventListener("resize", handleResize);
return () => window.removeEventListener("resize", handleResize);
}, []);

return (
<div className="relative min-h-screen flex flex-col bg-[#050505] text-gray-400 font-sans selection:bg-indigo-500/30">
<Background className="fixed inset-0 z-0 opacity-20" />

<Navbar
screen_width={windowWidth}
className="fixed top-0 left-0 w-full z-30 border-b border-white/5 bg-[#050505]/80 backdrop-blur-md"
page="other"
/>

<main className="relative z-10 flex-grow pt-40 pb-32 flex items-center justify-center px-6">
<div className="text-center p-12 max-w-2xl w-full rounded-2xl bg-[#0a0a0a] border border-white/5 shadow-2xl space-y-8 relative overflow-hidden group">

{/* Visual depth glow */}
<div className="absolute top-0 left-1/2 -translate-x-1/2 w-48 h-48 bg-red-500/5 blur-[80px] pointer-events-none"></div>

<div className="space-y-4">
<div className="inline-flex items-center gap-2 px-3 py-1 rounded-full bg-red-500/10 border border-red-500/20 text-red-400 text-[10px] font-mono uppercase tracking-[0.2em] mb-4">
Error 404 // Lost in Space
</div>
<h1 className="text-white text-5xl md:text-7xl font-bold tracking-tighter italic leading-tight">
You fell <br/>
<span className="text-transparent bg-clip-text bg-gradient-to-r from-gray-200 to-gray-500 not-italic">out of place.</span>
</h1>
</div>

<p className="text-gray-400 max-w-sm mx-auto leading-relaxed text-sm">
The path you followed doesn't exist in our current deployment. Let's get you back to familiar territory.
</p>

<div className="flex flex-col sm:flex-row justify-center gap-4 pt-6">
<Link
href="/"
className="px-10 py-4 bg-white text-black font-bold rounded-md transition-all duration-300 hover:bg-gray-200 active:scale-95 text-xs uppercase tracking-widest"
>
Back to Home
</Link>
<Link
href="/projects"
className="px-10 py-4 border border-white/10 text-gray-300 font-bold rounded-md transition-all duration-300 hover:bg-white/5 active:scale-95 text-xs uppercase tracking-widest"
>
View Projects
</Link>
</div>
</div>
</main>

<Footer screen_width={windowWidth} className="relative z-10 border-t border-white/5" />
</div>
);
}
498 changes: 164 additions & 334 deletions sites/mainweb/app/page.tsx

Large diffs are not rendered by default.

184 changes: 86 additions & 98 deletions sites/mainweb/app/projects/page.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"use client";

import { useState, useEffect } from "react";
import Link from "next/link";
import Background from "@/components/Background";
import Navbar from "@/components/Navbar";
import Footer from "@/components/Footer";
Expand All @@ -12,84 +13,50 @@ interface Project {
lead: string;
description: string;
tech: string[];
category: "Deep Learning" | "Finance" | "Sports" | "General DS";
}

const projects: Project[] = [
{
name: "Deep Learning Playground",
lead: "Noah Iversen",
description:
"Deep Learning Playground is an innovative learning venture focused on making the process of training machine learning and deep learning models understandable and accessible. At its core, our project involves creating a user-friendly web application that teaches people the ropes of effectively training these models. Whether you're a seasoned developer or just starting out, our project provides hands-on experience in the intersection of web development and data science.",
tech: [
"AWS",
"NextJs",
"Docker",
"React/Redux",
"TypeScript",
"Node.js",
"Python",
"PyTorch",
"pandas",
"NumPy",
"scikit-learn",
"Django",
],
category: "Deep Learning",
description: "An interactive web application designed to demystify neural network training. At its core, the project allows users to visualize backpropagation and architecture tweaks in real-time.",
tech: ["AWS", "Docker", "PyTorch", "TypeScript", "NextJs", "Django"],
},
{
name: "AI-Driven Investment Platform",
lead: "Aryan Hazra",
description:
"Using AI to conversationally help investors reach investing goals. The goal of this is to be a conversational tool that can adapt and change strategies based on information that the client provides, as opposed to a static input and output the way many robo investors do.",
tech: [
"Data Analytics",
"Machine Learning",
"Natural Language Processing",
"Python",
],
category: "Finance",
description: "Using NLP to conversationally help investors reach goals. It adapts strategies based on client information rather than static robo-investing inputs.",
tech: ["NLP", "Machine Learning", "Python", "Data Analytics"],
},
{
name: "Furnichanter",
lead: "Jane Ivanova",
description:
"Furnichanter is an innovative project that seamlessly combines technology with interior design. It aims to empower users with a unique experience by enabling them to effortlessly search for furniture through images, generate custom pieces from text descriptions using advanced AI models, visualize furniture within their own spaces, and even explore the possibility of creating intricate 3D models for a truly immersive design journey.",
tech: [
"Python",
"Machine Learning",
"Deep Learning",
"Natural Language Processing",
"3D Modeling Concepts",
],
category: "Deep Learning",
description: "Seamlessly combining computer vision with interior design. Users can search for furniture via images and generate custom 3D models using text descriptions.",
tech: ["Deep Learning", "3D Modeling", "Python", "Computer Vision"],
},
{
name: "Kaggle CLEF",
lead: "Anthony Miyaguchi",
description:
"A seminar-styled introduction to data science competitions, including Kaggle and CLEF 2025. Members will read, present, and discuss research, write an exploratory data analysis (EDA), and compete in an internal competition for prizes. Focused on building machine learning systems on real-world problems.",
tech: [
"Python",
"Machine Learning",
"Data Science",
"Algorithmic Development",
],
category: "General DS",
description: "A seminar-styled introduction to data science competitions. Members build ML systems for real-world problems like the CLEF 2025 competition.",
tech: ["Python", "Machine Learning", "Data Science", "Algorithmic Development"],
},
{
name: "Sports Analysis Project",
lead: "Casper Guo",
description:
"The sports analysis project is a space for student to work on open-ended sports-related research projects. Members will learn data analysis and visualization, statistical modelling, and machine learning by taking a project through the entire data science life cycle. Cool things we have done include projecting NFL running back performances, building the perfect NBA roster, and exploiting odds differences across sport books.",
tech: [
"Python",
"Machine Learning",
"Data Science",
"Algorithmic Development",
],
category: "Sports",
description: "Open-ended sports research. Projects include projecting NFL performance, building 'perfect' NBA rosters, and exploiting betting odds differences.",
tech: ["Python", "Machine Learning", "Data Science", "Statistical Modeling"],
},
];

const ProjectsPage: React.FC = () => {
const [windowWidth, setWindowWidth] = useState<number>(
typeof window !== "undefined" ? window.innerWidth : 1024
);
const [windowWidth, setWindowWidth] = useState<number>(typeof window !== "undefined" ? window.innerWidth : 1024);
const categories: Project["category"][] = ["Deep Learning", "Finance", "Sports", "General DS"];

useEffect(() => {
const handleResize = () => setWindowWidth(window.innerWidth);
Expand All @@ -98,68 +65,89 @@ const ProjectsPage: React.FC = () => {
}, []);

return (
<div className="relative min-h-screen flex flex-col bg-gray-950 text-gray-300">
<Background className="absolute inset-0 z-0 opacity-40" />
<div className="relative min-h-screen bg-[#050505] text-gray-400 font-sans selection:bg-indigo-500/30">
<Background className="fixed inset-0 z-0 opacity-20" />

<Navbar
screen_width={windowWidth}
className="fixed top-0 left-0 w-full z-30 bg-gray-950/90 backdrop-blur-sm shadow-lg shadow-indigo-900/10"
page="other"
className="fixed top-0 z-30 border-b border-white/5 bg-[#050505]/80 backdrop-blur-md"
/>

<main className="relative z-10 pt-[120px] pb-32 px-4 sm:px-8 md:px-16 space-y-16">
<section className="text-center">
<Major type="b" className="text-white text-5xl sm:text-6xl font-extrabold">
DSGT Projects
</Major>
<Mini className="text-gray-300 max-w-2xl mx-auto pt-2 text-lg">
Explore the variety of projects led by DSGT members, spanning machine learning, AI, data analysis, and hands-on real-world applications.
</Mini>
<main className="relative z-10 pt-44 pb-32 max-w-7xl mx-auto px-6 lg:px-12">

{/* BREADCRUMB NAVIGATION */}
<nav className="flex items-center gap-2 mb-8 text-[10px] font-mono tracking-widest uppercase">
<Link href="/" className="hover:text-indigo-400 transition-colors">Home</Link>
<span className="text-gray-700">/</span>
<span className="text-gray-200">Archive</span>
</nav>

{/* HERO SECTION - Fixed the Tag Mismatch */}
<section className="max-w-3xl mb-24 space-y-6">
<h1 className="text-white text-6xl md:text-7xl font-bold tracking-tight leading-none">
Project <br />
<span className="text-transparent bg-clip-text bg-gradient-to-r from-gray-200 to-gray-500 font-black italic">Archive.</span>
</h1>
<p className="text-lg text-gray-400 leading-relaxed max-w-xl font-medium">
A technical directory of past engineering ventures led by DSGT members. Organized by domain expertise and technical stack.
</p>
</section>

<section className="max-w-7xl mx-auto grid grid-cols-1 md:grid-cols-2 gap-8">
{projects.map((project, i) => (
<div
key={i}
className="bg-gray-800/70 p-6 rounded-3xl shadow-xl border border-gray-700 hover:bg-gray-700/80 transition-all duration-300 flex flex-col h-full hover:-translate-y-1"
>
<div className="mb-4">
<Major as="h3" compact className="text-white text-2xl font-bold">
{project.name}
</Major>
{/* ORGANIZED CATEGORIES */}
<div className="space-y-32">
{categories.map((cat) => (
<section key={cat} id={cat.replace(/\s+/g, '-').toLowerCase()} className="scroll-mt-32">
<div className="flex items-center gap-4 mb-12">
<h2 className="text-white text-2xl font-bold tracking-tight shrink-0 italic">{cat}</h2>
<div className="h-px bg-white/5 w-full"></div>
</div>

<div className="mb-4">
<Mini className="text-gray-300 leading-relaxed text-sm sm:text-base">
{project.description}
</Mini>
</div>
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
{projects
.filter((p) => p.category === cat)
.map((project, i) => (
<div key={i} className="group bg-[#0a0a0a] border border-white/5 p-8 rounded-xl hover:border-indigo-500/30 transition-all duration-300">
<div className="flex justify-between items-start mb-6">
<h3 className="text-white text-xl font-bold group-hover:text-indigo-400 transition-colors">
{project.name}
</h3>
<span className="text-[10px] font-mono text-gray-600">Lead: {project.lead}</span>
</div>

<p className="text-sm text-gray-400 leading-relaxed mb-8">
{project.description}
</p>

<div className="mt-auto space-y-4">
{/* Tech Stack Tags */}
<div className="flex flex-wrap gap-2">
{project.tech.map((tech, t) => (
<span
key={t}
className="text-[10px] sm:text-xs bg-gray-900 text-gray-400 px-2 py-1 rounded border border-gray-700"
>
{tech}
</span>
<div className="flex flex-wrap gap-2">
{project.tech.map((t, index) => (
<span key={index} className="text-[10px] font-mono text-gray-500 bg-white/5 border border-white/5 px-2 py-1 rounded">
{t}
</span>
))}
</div>
</div>
))}
</div>

{/* Lead Contact Info */}
<div className="pt-4 border-t border-gray-700 text-sm">
<span className="text-gray-400">
Lead: <span className="text-white font-medium">{project.lead}</span>
</span>
</div>
</div>
</div>
</section>
))}
</div>

{/* NAVIGATION FOOTER */}
<section className="mt-40 border-t border-white/5 pt-20 text-center">
<h2 className="text-white text-2xl font-bold mb-8 italic italic-title">Back to the present?</h2>
<div className="flex justify-center gap-12">
<Link href="/" className="text-[10px] font-mono text-gray-500 hover:text-indigo-400 transition-colors uppercase tracking-[0.2em] flex items-center gap-2">
<span className="text-lg">←</span> Return Home
</Link>
<Link href="/bootcamp" className="text-[10px] font-mono text-gray-500 hover:text-indigo-400 transition-colors uppercase tracking-[0.2em] flex items-center gap-2">
Join Bootcamp <span className="text-lg">→</span>
</Link>
</div>
</section>
</main>

<Footer screen_width={windowWidth} className="relative z-10" />
<Footer screen_width={windowWidth} className="relative z-10 border-t border-white/5" />
</div>
);
};
Expand Down
Loading