Skip to content

Exam Schedule widget added - #197

Merged
ajcoder13 merged 1 commit into
prodfrom
feat/exam-schedule-widget
Sep 3, 2026
Merged

Exam Schedule widget added#197
ajcoder13 merged 1 commit into
prodfrom
feat/exam-schedule-widget

Conversation

@ajcoder13

Copy link
Copy Markdown
Contributor

…ard (excluded for B.Tech 1st year due to vague data)

…ard (excluded for B.Tech 1st year due to vague data)
Copilot AI lite review requested due to automatic review settings September 3, 2026 20:48

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

It introduces a likely data typo, an accessibility gap in the toggle UI, and includes an unrelated dashboard regression (favourites removal) plus an unused import.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Adds an Exam Schedule widget to the dashboard that cross-references a user’s registered courses against a bundled slot/date mapping (with an exclusion rule for B.Tech Sem 1–2).

Changes:

  • Added exam schedule utilities to normalize course codes, apply the exclusion rule, and build a chronologically sorted exam list.
  • Added the ExamScheduleWidget component (+ SCSS) and mounted it on the dashboard with Mid-Sem / End-Sem toggling.
  • Added a large static examScheduleData mapping used as the default schedule source.
File summaries
File Description
client/src/utils/examSchedule.js Adds parsing, exclusion, and schedule cross-referencing helpers.
client/src/screens/dashboard/index.jsx Mounts the new widget on the dashboard (and removes the favourites UI block).
client/src/screens/dashboard/components/examschedule/index.jsx Implements the Exam Schedule widget UI and state handling.
client/src/screens/dashboard/components/examschedule/styles.scss Styles for the widget and its empty/error/loading states.
client/src/data/examScheduleData.js Adds the slot schedule + course-to-slot mapping dataset.
Review details
  • Files reviewed: 5/5 changed files
  • Comments generated: 5
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +465 to +474
"HS2008": "G",
"HS2011": "G",
"HS2018": "G",
"HS2022.": "G",
"HS2027": "G",
"HS2031": "G",
"HS2040": "G",
"HS2013": "G1",
"HS2022": "G1",
"HS2034": "G1",
Comment on lines +73 to +86
<div className="schedule-toggle-group">
<div
className={`toggle-tab ${activeTab === "midSem" ? "active" : ""}`}
onClick={() => setActiveTab("midSem")}
>
Mid-Sem
</div>
<div
className={`toggle-tab ${activeTab === "endSem" ? "active" : ""}`}
onClick={() => setActiveTab("endSem")}
>
End-Sem
</div>
</div>
Comment on lines 8 to +12
import CourseCard from "./components/coursecard";
import ContributionBanner from "./components/contributionbanner";
import Footer from "../../components/footer";
import FavouriteCard from "./components/favouritecard";
import ExamScheduleWidget from "./components/examschedule";
Comment on lines 243 to +246
<Space amount={50} />
<Container>
<SubHeading text={"MY FAVOURITES"} type={"bold"} algn={"center"} />
<div className="fav-container">
{user?.favourites?.length > 0 ? (
user.favourites.map((favourite) => (
<FavouriteCard
name={favourite.name}
path={favourite.path}
key={favourite.id}
code={favourite.code}
id={favourite.id}
_id={favourite._id}
/>
))
) : (
<>
<div className="favorites-coming-soon">Coming Soon!</div>
<div className="no-fav-graphic"></div>
</>
)}
</div>
</Container>
<ExamScheduleWidget />
<Space amount={50} />
<ContributionBanner contributionHandler={contributionHandler} />
Comment on lines +46 to +52
try {
setIsLoading(false);
setHasError(false);
} catch (err) {
setHasError(true);
setIsLoading(false);
}
@ajcoder13
ajcoder13 merged commit a01ab43 into prod Sep 3, 2026
1 check passed
@ajcoder13
ajcoder13 deleted the feat/exam-schedule-widget branch September 3, 2026 21:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants