Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
2cc6317
PM-5370 - campus app setup
vas3a Aug 17, 2026
e39b1e6
PM-5370 - campus leaderboard page
vas3a Aug 18, 2026
115599f
PM-5370 - campus data loading
vas3a Aug 18, 2026
824dd18
PM-5370 - clear out old code
vas3a Aug 18, 2026
e2f296d
PM-5370 - clickable row
vas3a Aug 18, 2026
6340c2c
lint
vas3a Aug 18, 2026
f3f862c
lint
vas3a Aug 18, 2026
fdf3584
Merge pull request #2163 from topcoder-platform/PM-5370_campus-leader…
vas3a Aug 19, 2026
f007512
PM-5370 - Minor UI updates for campus leaderboard
vas3a Aug 20, 2026
2b80a27
lint
vas3a Aug 20, 2026
963d65e
Merge pull request #2167 from topcoder-platform/PM-5370_campus-leader…
vas3a Aug 20, 2026
cdd3e54
Fixes for general statistics tooltip
vas3a Aug 20, 2026
d70414b
PM-5896: keep empty tags array in challenge update payload
jmgasper Aug 20, 2026
14d4b7b
lint
vas3a Aug 20, 2026
c509f1d
PM-5165: show budget approve/reject actions right after saving a New …
jmgasper Aug 20, 2026
6251deb
PM-5562: Count rating-only history subtrack wins in track totals
jmgasper Aug 20, 2026
ca8c8f8
litn
vas3a Aug 20, 2026
5742637
Merge pull request #2170 from topcoder-platform/PM-5370_campus-leader…
vas3a Aug 20, 2026
7b0e52e
Merge pull request #2168 from topcoder-platform/PM-4620_gen-statistic…
vas3a Aug 20, 2026
76af27f
PM-5758: show and lock the design submission limit in Work Manager
jmgasper Aug 20, 2026
4340c6a
PM-5913: Drop the required marker from Design review member fields
jmgasper Aug 20, 2026
2e788dd
PM-5370 - show placement for 2nd and 3rd place
vas3a Aug 20, 2026
8ba5f0e
PM-5370 - lint
vas3a Aug 20, 2026
119073f
Merge pull request #2175 from topcoder-platform/PM-5370_campus-leader…
vas3a Aug 20, 2026
374d05c
Merge pull request #2173 from topcoder-platform/PM-5758-2
jmgasper Aug 21, 2026
337dea3
Merge pull request #2172 from topcoder-platform/PM-5562
jmgasper Aug 21, 2026
077051c
Merge pull request #2171 from topcoder-platform/PM-5165
jmgasper Aug 21, 2026
f896f87
Merge pull request #2169 from topcoder-platform/PM-5896
jmgasper Aug 21, 2026
a362027
Merge pull request #2174 from topcoder-platform/PM-5913
jmgasper Aug 21, 2026
6f43cea
PM-4699 Add bubble skill statistics UI with mock data
himaniraghav3 Aug 21, 2026
171df04
Fixes to campus leaderboard
vas3a Aug 21, 2026
e6a1dbb
Merge pull request #2177 from topcoder-platform/PM-5370_campus-leader…
vas3a Aug 21, 2026
a563fc2
PM-5954 - show actions in review tab for copilots & reviewers
vas3a Aug 21, 2026
ab65f78
restore check
vas3a Aug 21, 2026
3298753
Merge pull request #2178 from topcoder-platform/PM-5954_actions-for-c…
vas3a Aug 21, 2026
34f59eb
PM-5562: Preserve aggregate Marathon Match wins
jmgasper Aug 23, 2026
7d71cb8
Mirror code to AWS code commit for backup purposes
jmgasper Aug 24, 2026
dba07f9
Merge pull request #2176 from topcoder-platform/PM-4699
himaniraghav3 Aug 24, 2026
2a3cf06
Integrate UI with skill statistics api
himaniraghav3 Aug 24, 2026
bea7f31
Merge pull request #2179 from topcoder-platform/PM-5562-1
jmgasper Aug 24, 2026
18129fc
Revert "Mirror code to AWS code commit for backup purposes"
jmgasper Aug 24, 2026
5660b53
Merge pull request #2181 from topcoder-platform/revert/codecommit-mirror
jmgasper Aug 24, 2026
ea203ff
Fix css
himaniraghav3 Aug 24, 2026
12e21c9
Merge pull request #2180 from topcoder-platform/PM-4699
himaniraghav3 Aug 24, 2026
1d567d8
PM-5939 - campus leaderboard UI
vas3a Aug 24, 2026
297c124
Merge pull request #2182 from topcoder-platform/PM-5370_campus-leader…
vas3a Aug 24, 2026
18b5b00
PM-5964 Alignment issue in profile section
himaniraghav3 Aug 25, 2026
febf375
Merge pull request #2183 from topcoder-platform/PM-5964
himaniraghav3 Aug 25, 2026
6097856
PM-5758: require a count when design submissions are limited
jmgasper Aug 25, 2026
9d918a6
PM-5727 - UI for duplicate submisisons in work app & review app
vas3a Aug 25, 2026
bcb10f6
Merge pull request #2186 from topcoder-platform/PM-5727_UI-for-duplic…
vas3a Aug 25, 2026
584e365
Merge pull request #2185 from topcoder-platform/PM-5758-3
jmgasper Aug 25, 2026
e005191
Campus leaderboard mobile UI Fixes
vas3a Aug 25, 2026
45c532b
Merge pull request #2188 from topcoder-platform/campus-leaderboard-mo…
vas3a Aug 25, 2026
0997f3a
PM-5886 - campus leaderboard UI updates
vas3a Aug 25, 2026
250a053
Merge pull request #2189 from topcoder-platform/campus-leaderboard-mo…
vas3a Aug 25, 2026
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
1 change: 1 addition & 0 deletions src/apps/campus/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { campusRoutes } from './src'
21 changes: 21 additions & 0 deletions src/apps/campus/src/CampusApp.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { FC, useContext, useMemo } from 'react'
import { Outlet, Routes } from 'react-router-dom'

import { routerContext, RouterContextData } from '~/libs/core'

import { toolTitle } from './campus.routes'
import './lib/styles/index.scss'

const CampusApp: FC = () => {
const { getChildRoutes }: RouterContextData = useContext(routerContext)
const childRoutes = useMemo(() => getChildRoutes(toolTitle), [getChildRoutes])

return (
<>
<Outlet />
<Routes>{childRoutes}</Routes>
</>
)
}

export default CampusApp
56 changes: 56 additions & 0 deletions src/apps/campus/src/campus.routes.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
/* eslint-disable import/no-extraneous-dependencies, ordered-imports/ordered-imports */
import { render, screen } from '@testing-library/react'
import { MemoryRouter, Route, Routes, useLocation } from 'react-router-dom'

import { campusRoutes, rootRoute } from './campus.routes'

jest.mock('~/config', () => ({
EnvironmentConfig: {
SUBDOMAIN: 'campus',
},
}), {
virtual: true,
})

jest.mock('~/config/constants', () => ({
AppSubdomain: {
campus: 'campus',
},
ToolTitle: {
campus: 'Campus',
},
}), {
virtual: true,
})

jest.mock('~/libs/core', () => ({
lazyLoad: () => (): undefined => undefined,
}), {
virtual: true,
})

const LocationViewer = (): JSX.Element => {
const location = useLocation()

return <div data-testid='location-pathname'>{location.pathname}</div>
}

describe('campus routes', () => {
it('redirects the campus root to /mecw when groupName is missing', async () => {
const campusAppRoute = campusRoutes[0]
const campusChildRoutes = campusAppRoute.children || []
const fallbackRoute = campusChildRoutes.find(route => route.route === '')

render(
<MemoryRouter initialEntries={[rootRoute || '/']}>
<Routes>
<Route element={<LocationViewer />} path={`${rootRoute}/mecw`} />
<Route element={fallbackRoute?.element} path={rootRoute || '/'} />
</Routes>
</MemoryRouter>,
)

expect((await screen.findByTestId('location-pathname')).textContent)
.toBe('/mecw')
})
})
40 changes: 40 additions & 0 deletions src/apps/campus/src/campus.routes.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import { Navigate } from 'react-router-dom'

import { lazyLoad, LazyLoadedComponent, PlatformRoute } from '~/libs/core'
import { AppSubdomain, EnvironmentConfig, ToolTitle } from '~/config'

const CampusApp: LazyLoadedComponent = lazyLoad(() => import('./CampusApp'))
const CampusLeaderboardPage: LazyLoadedComponent = lazyLoad(
() => import('./pages/leaderboard'),
'CampusLeaderboardPage',
)

export const rootRoute: string = (
EnvironmentConfig.SUBDOMAIN === AppSubdomain.campus ? '' : `/${AppSubdomain.campus}`
)

export const toolTitle: string = ToolTitle.campus

export const campusRoutes: ReadonlyArray<PlatformRoute> = [
{
authRequired: true,
children: [
{
element: <Navigate replace to={`${rootRoute}/mecw`} />,
route: '',
},
{
// Campus program leaderboard, eg. https://campus.topcoder-dev.com/mecw
children: [],
element: <CampusLeaderboardPage />,
id: 'Campus Leaderboard',
route: ':groupName',
},
],
domain: AppSubdomain.campus,
element: <CampusApp />,
id: toolTitle,
route: rootRoute,
title: toolTitle,
},
]
1 change: 1 addition & 0 deletions src/apps/campus/src/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { campusRoutes } from './campus.routes'
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions src/apps/campus/src/lib/assets/ic-user-placeholder.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions src/apps/campus/src/lib/assets/icons/icon-help.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions src/apps/campus/src/lib/assets/icons/icon-info.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions src/apps/campus/src/lib/assets/icons/icon-medal-1st.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions src/apps/campus/src/lib/assets/icons/icon-medal-2nd.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions src/apps/campus/src/lib/assets/icons/icon-medal-3rd.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions src/apps/campus/src/lib/assets/icons/icon-result-failed.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions src/apps/campus/src/lib/assets/icons/icon-result-passed.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions src/apps/campus/src/lib/assets/icons/icon-stat-members.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading