Skip to content
Permalink
main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
document.addEventListener("DOMContentLoaded", function() {
const studyGroupData = {
"studyGroups": [
{
"id": 1,
"major": "Computer Science",
"courses": ["Introduction to C Programming", "Data Structures"],
"studyTimes": ["Wednesday 3pm-5pm", "Friday 2pm-4pm"],
"groupSize": 4
},
{
"id": 2,
"major": "Electrical Engineering",
"courses": ["Digital Signal Processing", "Computer Networks"],
"studyTimes": ["Tuesday 4pm-6pm", "Thursday 1pm-3pm"],
"groupSize": 3
},
{
"id": 3,
"major": "Environmental Science",
"courses": ["Environmental Policy", "Conservation Biology"],
"studyTimes": ["Monday 5pm-7pm", "Wednesday 2pm-4pm"],
"groupSize": 5
},
{
"id": 4,
"major": "Mathematics",
"courses": ["Calculus II", "Linear Algebra"],
"studyTimes": ["Tuesday 10am-12pm", "Thursday 10am-12pm"],
"groupSize": 2
},
{
"id": 5,
"major": "CNIT",
"courses": ["Cybersecurity Fundamentals", "Network Security"],
"studyTimes": ["Monday 3pm-5pm", "Friday 9am-11am"],
"groupSize": 3
},
{
"id": 6,
"major": "Chemical Engineering",
"courses": ["Chemical Process Principles", "Organic Chemistry"],
"studyTimes": ["Wednesday 1pm-3pm", "Friday 3pm-5pm"],
"groupSize": 4
},
{
"id": 7,
"major": "Software Engineering",
"courses": ["Introduction to Artificial Intelligence", "Software Project Management"],
"studyTimes": ["Thursday 4pm-6pm", "Saturday 10am-12pm"],
"groupSize": 5
},
{
"id": 8,
"major": "Political Science",
"courses": ["International Relations", "Comparative Politics"],
"studyTimes": ["Monday 4pm-6pm", "Wednesday 3pm-5pm"],
"groupSize": 6
},
{
"id": 9,
"major": "Physics",
"courses": ["Quantum Mechanics", "Electromagnetism"],
"studyTimes": ["Tuesday 2pm-4pm", "Thursday 2pm-4pm"],
"groupSize": 4
},
{
"id": 10,
"major": "Biology",
"courses": ["Genetics", "Cell Biology"],
"studyTimes": ["Wednesday 9am-11am", "Friday 9am-11am"],
"groupSize": 3
}
]
};
document.getElementById("preferencesForm").addEventListener("submit", function(event) {
event.preventDefault();
const majorChoice = document.getElementById("major").value;
const courseChoice = document.getElementById("course").value;
const timeChoice = document.getElementById("time").value;
const sizePreference = document.getElementById("size").value;
const matchingGroups = studyGroupData.studyGroups.filter(group =>
group.major === majorChoice &&
group.courses.includes(courseChoice) &&
group.studyTimes.includes(timeChoice) &&
group.groupSize >= sizePreference
);
const resultsContainer = document.getElementById("results");
resultsContainer.innerHTML = "";
if(!majorChoice){alert("Please choose a major.");return;}
if(!courseChoice){alert("Please choose a course.");return;}
if(!timeChoice){alert("Please choose a time.");return;}
if(!sizePreference){alert("Please choose a size preference.");return;}
if (matchingGroups.length > 0)
{
const title = document.createElement("h1");
title.textContent = "Valid Study Groups";
resultsContainer.appendChild(title);
for (let i = 0; i < matchingGroups.length; i++)
{
const group = matchingGroups[i];
const groupDivider = document.createElement("div");
groupDivider.classList.add("group");
const majorText = document.createElement("p");
majorText.textContent = `Major: ${group.major}`;
const courseText = document.createElement("p");
courseText.textContent = `Course: ${courseChoice}`;
const timesText = document.createElement("p");
timesText.textContent = `Study Times: ${group.studyTimes.join(", ")}`;
const sizeText = document.createElement("p");
sizeText.textContent = `Group Size: ${group.groupSize}`;
const joinButton = document.createElement("button");
joinButton.textContent = "Join";
joinButton.addEventListener("click", function()
{
alert(`You are apart of the ${courseChoice} study group!`);
});
groupDivider.appendChild(majorText);
groupDivider.appendChild(courseText);
groupDivider.appendChild(timesText);
groupDivider.appendChild(sizeText);
groupDivider.appendChild(joinButton);
resultsContainer.appendChild(groupDivider);
}
}
else
{
const errorDiv = document.createElement("div");
const title = document.createElement("h1");
title.textContent = "No Results Found.";
const noResults = document.createElement("p");
noResults.textContent = "No groups have met this criteria.";
errorDiv.appendChild(title);
errorDiv.appendChild(noResults);
resultsContainer.appendChild(errorDiv);
}
});
});