-
Research Opportunities
-
- {sampleOpportunities.map((opportunity, index) => (
-
-
{opportunity.name}
-
{opportunity.description}
-
-
-
Location: {opportunity.location}
-
Pay: ${opportunity.pay}/hr
-
Term: {opportunity.semester} {opportunity.year}
-
-
-
-
- ))}
+
+
+
+ {/*
+ | Position |
+ Description |
+ Location |
+ Pay |
+ Term |
+ Action |
+
*/}
+
+
+ {sampleOpportunities.map((opportunity, index) => (
+
+ | {opportunity.name} |
+ {opportunity.description} |
+ {opportunity.location} |
+ ${opportunity.pay}/hr |
+
+ {opportunity.semester} {opportunity.year}
+ |
+
+
+ |
+
+ ))}
+
+
);
From 02d27f6a1ca05bc4f077c8feb01f1529332f29f2 Mon Sep 17 00:00:00 2001
From: Gowrisankar Palanickal <156338043+shankarp05@users.noreply.github.com>
Date: Tue, 28 Jan 2025 17:34:13 -0500
Subject: [PATCH 03/12] added sample data and professor field to opportunities
---
.../components/opportunitiesDetails.tsx | 68 +++++++++++++++++--
1 file changed, 63 insertions(+), 5 deletions(-)
diff --git a/src/opportunities/components/opportunitiesDetails.tsx b/src/opportunities/components/opportunitiesDetails.tsx
index 131b3889..5bf5622b 100644
--- a/src/opportunities/components/opportunitiesDetails.tsx
+++ b/src/opportunities/components/opportunitiesDetails.tsx
@@ -9,6 +9,7 @@ interface Opportunity {
year: number;
application_due: Date;
location: string;
+ professor: string; // Added the professor field
}
const sampleOpportunities: Opportunity[] = [
@@ -20,25 +21,81 @@ const sampleOpportunities: Opportunity[] = [
semester: "Fall",
year: 2024,
application_due: new Date("2024-08-01"),
- location: "DCC"
+ location: "DCC",
+ professor: "Dr. Emily Chen"
+ },
+ {
+ name: "Data Visualization Intern - Data Science Center",
+ description: "Create compelling visualizations for real-world datasets.",
+ recommended_experience: "D3.js, Tableau, or Matplotlib",
+ pay: 12.50,
+ semester: "Spring",
+ year: 2025,
+ application_due: new Date("2025-01-15"),
+ location: "EMPAC",
+ professor: "Dr. Alan Green"
+ },
+ {
+ name: "Undergraduate Researcher - Renewable Energy Lab",
+ description: "Analyze energy efficiency of solar panel setups.",
+ recommended_experience: "R, Excel, or energy systems knowledge",
+ pay: 14.00,
+ semester: "Summer",
+ year: 2025,
+ application_due: new Date("2025-04-30"),
+ location: "Jonsson Engineering Center",
+ professor: "Dr. Maria Santos"
+ },
+ {
+ name: "AI in Healthcare Research Assistant",
+ description: "Develop and test AI models for diagnostic tools.",
+ recommended_experience: "Python, TensorFlow, basic healthcare knowledge",
+ pay: 16.00,
+ semester: "Fall",
+ year: 2024,
+ application_due: new Date("2024-07-20"),
+ location: "Biotech Center",
+ professor: "Dr. Raj Patel"
+ },
+ {
+ name: "Human-Computer Interaction (HCI) Researcher",
+ description: "Study user interfaces to improve accessibility.",
+ recommended_experience: "HTML, CSS, JavaScript, Usability Testing",
+ pay: 13.00,
+ semester: "Spring",
+ year: 2025,
+ application_due: new Date("2025-01-10"),
+ location: "Carnegie Building",
+ professor: "Dr. Susan Miller"
+ },
+ {
+ name: "Climate Modeling Research Intern",
+ description: "Simulate climate patterns using advanced modeling techniques.",
+ recommended_experience: "Python, MATLAB, or climate science coursework",
+ pay: 14.50,
+ semester: "Summer",
+ year: 2025,
+ application_due: new Date("2025-03-15"),
+ location: "Troy Building",
+ professor: "Dr. John Reynolds"
}
];
const OpportunitiesList = () => {
return (
-
- {/*
+
| Position |
Description |
Location |
Pay |
+ Professor |
Term |
Action |
-
*/}
+
{sampleOpportunities.map((opportunity, index) => (
@@ -47,6 +104,7 @@ const OpportunitiesList = () => {
{opportunity.description} |
{opportunity.location} |
${opportunity.pay}/hr |
+ {opportunity.professor} |
{opportunity.semester} {opportunity.year}
|
@@ -64,4 +122,4 @@ const OpportunitiesList = () => {
);
};
-export default OpportunitiesList;
\ No newline at end of file
+export default OpportunitiesList;
From cc8587e3cb5354f3927e7204650a2843ba4b5b5d Mon Sep 17 00:00:00 2001
From: Devan Patel
Date: Tue, 4 Feb 2025 16:41:42 -0500
Subject: [PATCH 04/12] Use opportunity interface in jobs.tsx file
Made it able to use the Opportunity interface in the jobs page
---
src/opportunities/components/opportunitiesDetails.tsx | 2 +-
src/opportunities/pages/{Jobs.js => Jobs.tsx} | 2 ++
2 files changed, 3 insertions(+), 1 deletion(-)
rename src/opportunities/pages/{Jobs.js => Jobs.tsx} (92%)
diff --git a/src/opportunities/components/opportunitiesDetails.tsx b/src/opportunities/components/opportunitiesDetails.tsx
index 5bf5622b..181a054a 100644
--- a/src/opportunities/components/opportunitiesDetails.tsx
+++ b/src/opportunities/components/opportunitiesDetails.tsx
@@ -1,6 +1,6 @@
import React from "react";
-interface Opportunity {
+export interface Opportunity {
name: string;
description: string;
recommended_experience: string;
diff --git a/src/opportunities/pages/Jobs.js b/src/opportunities/pages/Jobs.tsx
similarity index 92%
rename from src/opportunities/pages/Jobs.js
rename to src/opportunities/pages/Jobs.tsx
index c7a6dfb1..dfe20915 100644
--- a/src/opportunities/pages/Jobs.js
+++ b/src/opportunities/pages/Jobs.tsx
@@ -5,6 +5,8 @@ import SavedJobs from "../components/SavedJobs";
import PageNavigation from "../../shared/components/Navigation/PageNavigation";
import usePageNavigation from "../../shared/hooks/page-navigation-hook";
+import Opportunity from "../components/opportunitiesDetails";
+
const Jobs = () => {
var [pages, switchPage] = usePageNavigation(["Search", "Saved"], "Search");
From 0f027164b5c516b501b80be32ced6f33a22b5fd6 Mon Sep 17 00:00:00 2001
From: Gowrisankar Palanickal <156338043+shankarp05@users.noreply.github.com>
Date: Tue, 4 Feb 2025 16:47:26 -0500
Subject: [PATCH 05/12] adding sample data to jobs page and fixing import
statement
---
src/opportunities/pages/Jobs.tsx | 71 +++++++++++++++++++++++++++++++-
1 file changed, 70 insertions(+), 1 deletion(-)
diff --git a/src/opportunities/pages/Jobs.tsx b/src/opportunities/pages/Jobs.tsx
index dfe20915..476d0650 100644
--- a/src/opportunities/pages/Jobs.tsx
+++ b/src/opportunities/pages/Jobs.tsx
@@ -5,7 +5,76 @@ import SavedJobs from "../components/SavedJobs";
import PageNavigation from "../../shared/components/Navigation/PageNavigation";
import usePageNavigation from "../../shared/hooks/page-navigation-hook";
-import Opportunity from "../components/opportunitiesDetails";
+import {Opportunity} from "../components/opportunitiesDetails";
+
+const sampleOpportunities: Opportunity[] = [
+ {
+ name: "Research Assistant - Machine Learning Lab",
+ description: "Work on cutting-edge ML projects",
+ recommended_experience: "Python, Machine Learning basics",
+ pay: 15.00,
+ semester: "Fall",
+ year: 2024,
+ application_due: new Date("2024-08-01"),
+ location: "DCC",
+ professor: "Dr. Emily Chen"
+ },
+ {
+ name: "Data Visualization Intern - Data Science Center",
+ description: "Create compelling visualizations for real-world datasets.",
+ recommended_experience: "D3.js, Tableau, or Matplotlib",
+ pay: 12.50,
+ semester: "Spring",
+ year: 2025,
+ application_due: new Date("2025-01-15"),
+ location: "EMPAC",
+ professor: "Dr. Alan Green"
+ },
+ {
+ name: "Undergraduate Researcher - Renewable Energy Lab",
+ description: "Analyze energy efficiency of solar panel setups.",
+ recommended_experience: "R, Excel, or energy systems knowledge",
+ pay: 14.00,
+ semester: "Summer",
+ year: 2025,
+ application_due: new Date("2025-04-30"),
+ location: "Jonsson Engineering Center",
+ professor: "Dr. Maria Santos"
+ },
+ {
+ name: "AI in Healthcare Research Assistant",
+ description: "Develop and test AI models for diagnostic tools.",
+ recommended_experience: "Python, TensorFlow, basic healthcare knowledge",
+ pay: 16.00,
+ semester: "Fall",
+ year: 2024,
+ application_due: new Date("2024-07-20"),
+ location: "Biotech Center",
+ professor: "Dr. Raj Patel"
+ },
+ {
+ name: "Human-Computer Interaction (HCI) Researcher",
+ description: "Study user interfaces to improve accessibility.",
+ recommended_experience: "HTML, CSS, JavaScript, Usability Testing",
+ pay: 13.00,
+ semester: "Spring",
+ year: 2025,
+ application_due: new Date("2025-01-10"),
+ location: "Carnegie Building",
+ professor: "Dr. Susan Miller"
+ },
+ {
+ name: "Climate Modeling Research Intern",
+ description: "Simulate climate patterns using advanced modeling techniques.",
+ recommended_experience: "Python, MATLAB, or climate science coursework",
+ pay: 14.50,
+ semester: "Summer",
+ year: 2025,
+ application_due: new Date("2025-03-15"),
+ location: "Troy Building",
+ professor: "Dr. John Reynolds"
+ }
+];
const Jobs = () => {
var [pages, switchPage] = usePageNavigation(["Search", "Saved"], "Search");
From 8866b98c0c06bb5d6e860f843b796c418e808815 Mon Sep 17 00:00:00 2001
From: Devan Patel
Date: Tue, 4 Feb 2025 16:50:46 -0500
Subject: [PATCH 06/12] Updated jobs.js code to make it work with typescript
Changes function to conform with typescript
---
src/opportunities/pages/Jobs.tsx | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/src/opportunities/pages/Jobs.tsx b/src/opportunities/pages/Jobs.tsx
index 476d0650..f907c457 100644
--- a/src/opportunities/pages/Jobs.tsx
+++ b/src/opportunities/pages/Jobs.tsx
@@ -76,8 +76,17 @@ const sampleOpportunities: Opportunity[] = [
}
];
-const Jobs = () => {
- var [pages, switchPage] = usePageNavigation(["Search", "Saved"], "Search");
+interface PageNavigationType {
+ activePage: string;
+ pages: string[];
+}
+
+const Jobs: React.FC = () => {
+
+ const [pages, switchPage] = usePageNavigation(["Search", "Saved"], "Search") as [
+ PageNavigationType,
+ (page: string) => void
+ ];
return (
From 9e688d0d72f2ce3b72adf1cb4c0df3a3e1d14f24 Mon Sep 17 00:00:00 2001
From: Gowrisankar Palanickal <156338043+shankarp05@users.noreply.github.com>
Date: Tue, 4 Feb 2025 16:59:38 -0500
Subject: [PATCH 07/12] fixing jobs route in app.tsx and adding opportunity
list component to jobs page
---
src/App.tsx | 2 +-
src/opportunities/pages/Jobs.tsx | 5 +++++
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/App.tsx b/src/App.tsx
index f13862a4..33cc1ff5 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -7,7 +7,7 @@ import Opportunities from "./opportunities/pages/opportunities.tsx";
import Home from "./shared/pages/Home.tsx";
import PageNotFound from "./shared/pages/404.tsx";
import MainNavigation from "./shared/components/Navigation/MainNavigation.tsx";
-import Jobs from "./opportunities/pages/Jobs.js";
+import Jobs from "./opportunities/pages/Jobs.tsx";
import Departments from "./staff/pages/Departments.tsx";
import StaffPage from "./staff/pages/Staff.tsx";
import Department from "./staff/pages/Department.tsx";
diff --git a/src/opportunities/pages/Jobs.tsx b/src/opportunities/pages/Jobs.tsx
index f907c457..b7aef317 100644
--- a/src/opportunities/pages/Jobs.tsx
+++ b/src/opportunities/pages/Jobs.tsx
@@ -6,6 +6,7 @@ import PageNavigation from "../../shared/components/Navigation/PageNavigation";
import usePageNavigation from "../../shared/hooks/page-navigation-hook";
import {Opportunity} from "../components/opportunitiesDetails";
+import OpportunitiesList from "../components/opportunitiesDetails.tsx";
const sampleOpportunities: Opportunity[] = [
{
@@ -95,9 +96,13 @@ const Jobs: React.FC = () => {
{pages.activePage === "Search" && }
+
+
+
+
);
};
From 98bb041ab310461bcf04d362b492b44840f237d3 Mon Sep 17 00:00:00 2001
From: Gowrisankar Palanickal <156338043+shankarp05@users.noreply.github.com>
Date: Fri, 14 Mar 2025 16:27:02 -0400
Subject: [PATCH 08/12] Update Jobs.tsx
---
src/opportunities/pages/Jobs.tsx | 68 --------------------------------
1 file changed, 68 deletions(-)
diff --git a/src/opportunities/pages/Jobs.tsx b/src/opportunities/pages/Jobs.tsx
index b7aef317..049b4e21 100644
--- a/src/opportunities/pages/Jobs.tsx
+++ b/src/opportunities/pages/Jobs.tsx
@@ -8,74 +8,6 @@ import usePageNavigation from "../../shared/hooks/page-navigation-hook";
import {Opportunity} from "../components/opportunitiesDetails";
import OpportunitiesList from "../components/opportunitiesDetails.tsx";
-const sampleOpportunities: Opportunity[] = [
- {
- name: "Research Assistant - Machine Learning Lab",
- description: "Work on cutting-edge ML projects",
- recommended_experience: "Python, Machine Learning basics",
- pay: 15.00,
- semester: "Fall",
- year: 2024,
- application_due: new Date("2024-08-01"),
- location: "DCC",
- professor: "Dr. Emily Chen"
- },
- {
- name: "Data Visualization Intern - Data Science Center",
- description: "Create compelling visualizations for real-world datasets.",
- recommended_experience: "D3.js, Tableau, or Matplotlib",
- pay: 12.50,
- semester: "Spring",
- year: 2025,
- application_due: new Date("2025-01-15"),
- location: "EMPAC",
- professor: "Dr. Alan Green"
- },
- {
- name: "Undergraduate Researcher - Renewable Energy Lab",
- description: "Analyze energy efficiency of solar panel setups.",
- recommended_experience: "R, Excel, or energy systems knowledge",
- pay: 14.00,
- semester: "Summer",
- year: 2025,
- application_due: new Date("2025-04-30"),
- location: "Jonsson Engineering Center",
- professor: "Dr. Maria Santos"
- },
- {
- name: "AI in Healthcare Research Assistant",
- description: "Develop and test AI models for diagnostic tools.",
- recommended_experience: "Python, TensorFlow, basic healthcare knowledge",
- pay: 16.00,
- semester: "Fall",
- year: 2024,
- application_due: new Date("2024-07-20"),
- location: "Biotech Center",
- professor: "Dr. Raj Patel"
- },
- {
- name: "Human-Computer Interaction (HCI) Researcher",
- description: "Study user interfaces to improve accessibility.",
- recommended_experience: "HTML, CSS, JavaScript, Usability Testing",
- pay: 13.00,
- semester: "Spring",
- year: 2025,
- application_due: new Date("2025-01-10"),
- location: "Carnegie Building",
- professor: "Dr. Susan Miller"
- },
- {
- name: "Climate Modeling Research Intern",
- description: "Simulate climate patterns using advanced modeling techniques.",
- recommended_experience: "Python, MATLAB, or climate science coursework",
- pay: 14.50,
- semester: "Summer",
- year: 2025,
- application_due: new Date("2025-03-15"),
- location: "Troy Building",
- professor: "Dr. John Reynolds"
- }
-];
interface PageNavigationType {
activePage: string;
From cee966e80eaed37f8a498473e80d3a3e0e20c2d9 Mon Sep 17 00:00:00 2001
From: Gowrisankar Palanickal <156338043+shankarp05@users.noreply.github.com>
Date: Fri, 14 Mar 2025 16:41:36 -0400
Subject: [PATCH 09/12] adding comments to jobs and opportunities pages
---
src/opportunities/pages/Jobs.tsx | 2 ++
src/opportunities/pages/opportunities.tsx | 2 ++
2 files changed, 4 insertions(+)
diff --git a/src/opportunities/pages/Jobs.tsx b/src/opportunities/pages/Jobs.tsx
index 049b4e21..2bcf8d7e 100644
--- a/src/opportunities/pages/Jobs.tsx
+++ b/src/opportunities/pages/Jobs.tsx
@@ -16,11 +16,13 @@ interface PageNavigationType {
const Jobs: React.FC = () => {
+ // navigation bar
const [pages, switchPage] = usePageNavigation(["Search", "Saved"], "Search") as [
PageNavigationType,
(page: string) => void
];
+ // displaying opportunities list component
return (
diff --git a/src/opportunities/pages/opportunities.tsx b/src/opportunities/pages/opportunities.tsx
index 59765493..6e607b5c 100644
--- a/src/opportunities/pages/opportunities.tsx
+++ b/src/opportunities/pages/opportunities.tsx
@@ -6,6 +6,8 @@ import { useAuth } from "../../context/AuthContext.tsx";
export default function Opportunities() {
+
+ // returning opportunities component on (currently not in use) opportunities page
return (
From bab4e1fbc916d8da3af6aaef5c447de34451373b Mon Sep 17 00:00:00 2001
From: Devan Patel
Date: Fri, 14 Mar 2025 16:42:39 -0400
Subject: [PATCH 10/12] Update opportunitiesDetails.tsx
Added comments to OpportunitiesDetails file
---
.../components/opportunitiesDetails.tsx | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/src/opportunities/components/opportunitiesDetails.tsx b/src/opportunities/components/opportunitiesDetails.tsx
index 181a054a..c2ca633a 100644
--- a/src/opportunities/components/opportunitiesDetails.tsx
+++ b/src/opportunities/components/opportunitiesDetails.tsx
@@ -1,5 +1,8 @@
import React from "react";
+
+//Created a new interface to make displaying an opportunity easier, contains 9 fields
+
export interface Opportunity {
name: string;
description: string;
@@ -9,9 +12,13 @@ export interface Opportunity {
year: number;
application_due: Date;
location: string;
- professor: string; // Added the professor field
+ professor: string
+ // Add any other relevant information about an opportunity
}
+
+// List of sample opportunities of type Opportunity
+
const sampleOpportunities: Opportunity[] = [
{
name: "Research Assistant - Machine Learning Lab",
@@ -81,12 +88,16 @@ const sampleOpportunities: Opportunity[] = [
}
];
+
+// This component returns a 'list' of all the opportunities
+
const OpportunitiesList = () => {
return (
+ {/* Column Headers */}
| Position |
Description |
@@ -98,6 +109,7 @@ const OpportunitiesList = () => {
+ {/* Info about the opportunities */}
{sampleOpportunities.map((opportunity, index) => (
| {opportunity.name} |
From a3962d84c7ba1e756383ce23134304cffa3e8e8d Mon Sep 17 00:00:00 2001
From: Gowrisankar Palanickal <156338043+shankarp05@users.noreply.github.com>
Date: Tue, 18 Mar 2025 16:18:57 -0400
Subject: [PATCH 11/12] fixing up lint issues
removed unused components
---
src/opportunities/pages/opportunities.tsx | 2 --
1 file changed, 2 deletions(-)
diff --git a/src/opportunities/pages/opportunities.tsx b/src/opportunities/pages/opportunities.tsx
index 6e607b5c..cd5c9b10 100644
--- a/src/opportunities/pages/opportunities.tsx
+++ b/src/opportunities/pages/opportunities.tsx
@@ -1,7 +1,5 @@
import React from "react";
import OpportunitiesList from "../components/opportunitiesDetails.tsx";
-import SEO from "../../shared/components/SEO.tsx";
-import { useAuth } from "../../context/AuthContext.tsx";
export default function Opportunities() {
From fac94ac93ab92345452ee56d0b78273549fca805 Mon Sep 17 00:00:00 2001
From: Devan Patel
Date: Tue, 18 Mar 2025 16:19:08 -0400
Subject: [PATCH 12/12] Update Jobs.tsx
Removed unused imports to fix lint issues
---
src/opportunities/pages/Jobs.tsx | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/src/opportunities/pages/Jobs.tsx b/src/opportunities/pages/Jobs.tsx
index 2bcf8d7e..fa582b18 100644
--- a/src/opportunities/pages/Jobs.tsx
+++ b/src/opportunities/pages/Jobs.tsx
@@ -1,14 +1,13 @@
-import React, { useState } from "react";
-import JobsNavigation from "../components/JobsNavigation";
+import React from "react";
+
import Posts from "../components/Posts";
-import SavedJobs from "../components/SavedJobs";
+
import PageNavigation from "../../shared/components/Navigation/PageNavigation";
+
import usePageNavigation from "../../shared/hooks/page-navigation-hook";
-import {Opportunity} from "../components/opportunitiesDetails";
import OpportunitiesList from "../components/opportunitiesDetails.tsx";
-
interface PageNavigationType {
activePage: string;
pages: string[];