-
+
);
}
-
export async function getStaticProps() {
const data = loadStaticData("links.json");
let calendarLink = data.find(obj => obj.name === "Calendar")?.href || ""
return { props: { calendarLink } };
-}
\ No newline at end of file
+}
diff --git a/pages/contact.jsx b/pages/contact.jsx
index d87e6cf..0d76846 100644
--- a/pages/contact.jsx
+++ b/pages/contact.jsx
@@ -5,7 +5,7 @@ import Layout from "@/components/layout";
import loadStaticData from "@/shared/static";
import Link from "next/link";
-export default function Join({ data }) {
+export default function Contact({ data }) {
return (
-
- {data.sources.map((source) => (
-
-
-
-
+
+
+ {data.sources.map((source) => (
+
+
+
+
-
{source.name}:
-
{source.link_text}
-
- ))}
-
-
- {data.entries.map((entry, index) => (
-
-
{entry.heading}
-
{entry.text}
-
- ))}
-
+
{source.name}:
+
{source.link_text}
+
+ ))}
+
+
+ {data.entries.map((entry, index) => (
+
+
{entry.heading}
+
{entry.text}
+
+ ))}
+
+
);
}
diff --git a/pages/index.jsx b/pages/index.jsx
index fe4c0e6..93de084 100644
--- a/pages/index.jsx
+++ b/pages/index.jsx
@@ -7,6 +7,9 @@ import SponsorSection from "@/components/sponsorSection";
import CompanySection from "@/components/companySection";
import Timeline from "@/components/timeline";
import CommunityImages from "@/components/communityImages";
+import FadeIn from "@/components/animations/FadeIn";
+import StaggerContainer from "@/components/animations/StaggerContainer";
+import Section from "@/components/Section";
import loadStaticData from "@/shared/static";
import Image from "next/image";
import Link from "next/link";
@@ -33,7 +36,7 @@ export default function Home({
/>
-
+
U-M's Premier Applied Data Science Club
@@ -46,97 +49,106 @@ export default function Home({
-
-
+
+
+
+
-
- {timeline.show_on_homepage && (
-
-
- {timeline.title}
-
-
-
- )}
-
-
-
-
-
- Michigan Data Science Team (MDST)
- {" "}
- is the largest data science club at the University of Michigan,
- dedicated to equipping U-M students with the skills needed for
- future data-driven careers.
-
-
- We believe data science is for everyone. Each semester, MDST
- runs team-based projects, allowing you to learn and practice
- data science skills and their applications in a variety of
- domains.
-
-
- We also host guest talks, workshops, and socials - all
- opportunities to meet and interact with the larger data science
- community at the U-M and beyond.
-
-
-
-
- All U-M students are welcome to join MDST.
-
- Join now
-
-
-
-
-
-
-
-
+
+
+ {timeline.show_on_homepage && (
+
+
+ {timeline.title}
+
+
+
+ )}
+
+
+
+
+
+
+ Michigan Data Science Team (MDST)
+ {" "}
+ is the largest data science club at the University of Michigan,
+ dedicated to equipping U-M students with the skills needed for
+ future data-driven careers.
+
+
+ We believe data science is for everyone. Each semester, MDST
+ runs team-based projects, allowing you to learn and practice
+ data science skills and their applications in a variety of
+ domains.
+
+
+ We also host guest talks, workshops, and socials - all
+ opportunities to meet and interact with the larger data science
+ community at the U-M and beyond.
+
+
+
+
+ All U-M students are welcome to join MDST.
+
+ Join now
+
+
+
diff --git a/pages/projects/[...slug].jsx b/pages/projects/[...slug].jsx
index 964106b..7045586 100644
--- a/pages/projects/[...slug].jsx
+++ b/pages/projects/[...slug].jsx
@@ -7,12 +7,18 @@ import Hero from "@/components/hero";
import Image from "next/image";
import HeadContent from "@/components/headContent";
-// Function to get all projects from JSON files
+// Function to get all projects from JSON files that have writeups
const getAllProjects = () => {
try {
- const pastProjects = JSON.parse(fs.readFileSync(path.join(process.cwd(), 'config', 'pastProjects.json'), 'utf-8'));
+ const pastProjectsData = JSON.parse(fs.readFileSync(path.join(process.cwd(), 'config', 'pastProjects.json'), 'utf-8'));
const currentProjects = JSON.parse(fs.readFileSync(path.join(process.cwd(), 'config', 'currentProjects.json'), 'utf-8'));
- return [...pastProjects, ...currentProjects];
+
+ // pastProjects is an object with semester keys, flatten it
+ const pastProjects = Object.values(pastProjectsData).flat();
+
+ // Only return projects that have subdirectory and innerDir (i.e., have writeups)
+ const allProjects = [...pastProjects, ...currentProjects];
+ return allProjects.filter(proj => proj.subdirectory && proj.innerDir);
} catch (error) {
console.error("Error reading or parsing JSON files:", error);
return [];
@@ -30,11 +36,13 @@ function ProjectPage({ content, title, images }) {
description={`${title} is a project done with The Michigan Data Science Team - MDST, the largest data science club at the University of Michigan.`}
/>
-
+
{content}
- {images.map((img, idx) => (
-
- ))}
+
+ {images.map((img, idx) => (
+
+ ))}
+
);
diff --git a/pages/projects/index.jsx b/pages/projects/index.jsx
index be7d41e..75614c6 100644
--- a/pages/projects/index.jsx
+++ b/pages/projects/index.jsx
@@ -5,6 +5,8 @@ import Hero from "@/components/hero";
import Layout from "@/components/layout";
import CurrentProjectCard from "@/components/currentProjectCard";
import ProjectCard from "@/components/projectCard";
+import FadeIn from "@/components/animations/FadeIn";
+import StaggerContainer from "@/components/animations/StaggerContainer";
import { useRouter } from "next/router";
export default function Projects({ groupedLinks, currentProjects }) {
@@ -21,24 +23,31 @@ export default function Projects({ groupedLinks, currentProjects }) {
/>
-
-
MDST sponsors directly support our data science education efforts and
have direct access to our top data science talent. Reach out to{" "}
diff --git a/pages/team.jsx b/pages/team.jsx
index 07faedc..82fb135 100644
--- a/pages/team.jsx
+++ b/pages/team.jsx
@@ -2,6 +2,8 @@ import HeadContent from "@/components/headContent";
import Hero from "@/components/hero";
import Icon from "@/components/icon";
import Layout from "@/components/layout";
+import FadeIn from "@/components/animations/FadeIn";
+import StaggerContainer from "@/components/animations/StaggerContainer";
import loadStaticData from "@/shared/static";
import Image from "next/image";
import Link from "next/link";
@@ -34,23 +36,30 @@ export async function getStaticProps() {
function GroupSection({ group, basePath }) {
return (
-