Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
129 commits
Select commit Hold shift + click to select a range
be6839c
Create README.md (#5) (#6)
edwnl Jan 22, 2025
0352109
shared/edwn/clean up (#7)
edwnl Jan 22, 2025
35ab425
ci: add Azure Static Web Apps workflow file
monash-coding Jan 22, 2025
37dbc1d
frontend/edwin/add mock data (#10)
edwnl Jan 23, 2025
f35ced3
use npm clean install instead (#11)
edwnl Jan 25, 2025
2ba67cf
Job Details Component (#12)
oliverhuangcode Jan 25, 2025
60af494
Frontend/oliver/job details component (#13)
oliverhuangcode Jan 25, 2025
e46190b
make the search bar / filters update the URL, simplify hooks and prov…
jason301c Jan 25, 2025
7e9bbb8
Add basic api endpoint to get all jobs (#15)
je-zhou Jan 25, 2025
7d5b217
Adding Search Params and Querying to the backend endpoint (#17)
je-zhou Jan 25, 2025
bd17c60
Implemented theme system (#16)
kyranaus Jan 25, 2025
6815b12
Added hot-reload for backend (#18)
kyranaus Jan 26, 2025
7959466
prevent duplicate lint runs in prs, disable azure preview for prs (#22)
edwnl Jan 26, 2025
9335a1b
improve overall typing, add industry fields, migrate to server action…
jason301c Jan 26, 2025
f59a355
Modified the navbar, search and theme (#20)
kyranaus Jan 26, 2025
23461be
Bump next from 15.1.5 to 15.1.6 in /frontend in the nextjs group (#24)
dependabot[bot] Jan 28, 2025
d73c157
Bump eslint from 9.18.0 to 9.19.0 in /frontend (#25)
dependabot[bot] Jan 28, 2025
2308743
Bump @types/node from 20.17.14 to 22.12.0 in /frontend (#28)
dependabot[bot] Jan 28, 2025
a28c4bf
frontend overhaul (#23)
edwnl Jan 28, 2025
f0bc395
Quick fix of react hydration errors, filtering errors (#29)
jason301c Jan 29, 2025
c993814
Added loader component (#30)
je-zhou Jan 29, 2025
6aace37
Fix card html tag rendering (#34)
oliverhuangcode Jan 30, 2025
b9619f5
Fix pagination styling (#33)
oliverhuangcode Jan 30, 2025
087a9e9
Fix html rendering and adjust colours (#32)
oliverhuangcode Jan 30, 2025
cdd3151
Update .gitignore to exclude tsbuildinfo (#35)
jason301c Jan 30, 2025
4cc223f
feat: Integrate job industry into job card and job details (#36)
jason301c Jan 31, 2025
62226f6
Filtering (#37)
AdityaZDesai Jan 31, 2025
50e1e50
add job type filter (#38)
edwnl Feb 1, 2025
31fc2a2
add clearing filters & no results page (#39)
edwnl Feb 1, 2025
0040690
Added more industries (#42)
Brian-w-m Feb 8, 2025
681fc4c
Squashed work right types (#43)
Brian-w-m Feb 8, 2025
57d9f63
Update job type name (#44)
Brian-w-m Feb 8, 2025
3f2c506
Bump isomorphic-dompurify from 2.20.0 to 2.21.0 in /frontend (#45)
dependabot[bot] Feb 8, 2025
68a5045
Bump @types/node from 22.12.0 to 22.13.0 in /frontend (#46)
dependabot[bot] Feb 8, 2025
2c6f66f
Bump dompurify from 3.2.3 to 3.2.4 in /frontend (#47)
dependabot[bot] Feb 8, 2025
f0a26d7
Bump actions/checkout from 3 to 4 (#41)
dependabot[bot] Feb 8, 2025
b63eebc
Bump mongodb from 6.12.0 to 6.13.0 in /frontend (#48)
dependabot[bot] Feb 8, 2025
f38c4ff
Fix css of title to logo being too close (#50)
oliverhuangcode Feb 8, 2025
2b408ec
Create unscrollable home page that reroutes to according pages (#49)
oliverhuangcode Feb 8, 2025
4f86005
Frontend/edwin/mobile UI fix (#40)
edwnl Feb 8, 2025
20a4142
Added one liner description (#54)
Brian-w-m Feb 10, 2025
6ceae03
CompanyLogo renders a placeholder image if url is null (#53)
edwnl Feb 11, 2025
834808c
Frontend/kyran/quickfixes (#51)
kyranaus Feb 12, 2025
e3689ea
Frontend/edwin/filter search fixes (#62)
edwnl Feb 12, 2025
d16d9ce
Bump @tabler/icons-react from 3.29.0 to 3.30.0 in /frontend (#58)
dependabot[bot] Feb 17, 2025
c39563f
Bump prettier from 3.4.2 to 3.5.0 in /frontend (#60)
dependabot[bot] Feb 17, 2025
ef9368b
Bump @mantine/core from 7.16.2 to 7.16.3 in /frontend (#57)
dependabot[bot] Feb 17, 2025
b149c1d
Bump eslint from 9.19.0 to 9.20.0 in /frontend (#59)
dependabot[bot] Feb 17, 2025
c58552e
Bump postcss from 8.5.1 to 8.5.2 in /frontend (#55)
dependabot[bot] Feb 17, 2025
4b3072e
Frontend/edwin/test redesign UI (#63)
edwnl Feb 17, 2025
f0263bb
Bump the nextjs group in /frontend with 2 updates (#64)
dependabot[bot] Feb 17, 2025
2ec427e
Bump @mantine/core from 7.16.3 to 7.17.0 in /frontend (#65)
dependabot[bot] Feb 17, 2025
1286026
Bump eslint-config-next from 15.1.5 to 15.1.7 in /frontend (#69)
dependabot[bot] Feb 17, 2025
448d92f
Bump prettier from 3.5.0 to 3.5.1 in /frontend (#68)
dependabot[bot] Feb 17, 2025
b080cc7
Bump eslint from 9.20.0 to 9.20.1 in /frontend (#66)
dependabot[bot] Feb 17, 2025
f00e54f
changed setSelectedJob to null within useEffect in the filters page (…
AdityaZDesai Feb 18, 2025
0a4f42e
Scrolls to top when new job is selected (#71)
AdityaZDesai Feb 19, 2025
568ac32
Favicon and title (#72)
AdityaZDesai Feb 19, 2025
820094a
Minor UI fixes (4 tickets) (#73)
jason301c Feb 22, 2025
8b64864
Fix: Pagination for current page could be clicked and would retrigger…
oliverhuangcode Feb 22, 2025
6230b57
Fix: Bug where pagination still displayed when loading was commencing…
oliverhuangcode Feb 22, 2025
62e27a1
Fix: No result clear filter not correctly displaying loading (#74)
oliverhuangcode Feb 22, 2025
a333018
fix job list scroll (#77)
edwnl Feb 22, 2025
b63b7ec
Frontend/edwin/homepage (#79)
edwnl Feb 23, 2025
c5c7d92
Frontend/edwin/fix job descriptions (#78)
edwnl Feb 23, 2025
eee8ebe
frontend/jason/fix-readme (#81)
jason301c Feb 23, 2025
505631b
Frontend/jason/fix type error important (#82)
jason301c Feb 23, 2025
333297b
Add or update the Azure App Service build and deployment workflow config
monash-coding Feb 24, 2025
8d43f70
change working directory
edwnl Feb 24, 2025
0fb3785
fix release zip not found issue
edwnl Feb 24, 2025
194ac4c
fix minor tiny weeny bugs (#83)
jason301c Feb 24, 2025
cdee582
Add or update the Azure App Service build and deployment workflow config
monash-coding Feb 24, 2025
d99d15c
Frontend/jason/ssr optimizations (#94)
jason301c Feb 27, 2025
54ab120
Bump mongodb from 6.13.0 to 6.13.1 in /frontend (#93)
dependabot[bot] Feb 27, 2025
ab874c3
Bump postcss from 8.5.2 to 8.5.3 in /frontend (#92)
dependabot[bot] Feb 27, 2025
d5eac0f
Bump prettier from 3.5.1 to 3.5.2 in /frontend (#89)
dependabot[bot] Feb 27, 2025
6051b17
Bump @eslint/eslintrc from 3.2.0 to 3.3.0 in /frontend (#87)
dependabot[bot] Feb 27, 2025
5be04e6
Bump isomorphic-dompurify from 2.21.0 to 2.22.0 in /frontend (#88)
dependabot[bot] Feb 27, 2025
59cce84
Bump eslint from 9.20.1 to 9.21.0 in /frontend (#90)
dependabot[bot] Feb 27, 2025
ca08368
Enable user to copy direct links to job detail components (#86)
oliverhuangcode Feb 27, 2025
c872f52
use svh so mobile respects borders (#96)
edwnl Feb 28, 2025
3d6fee0
remove azure deployment for vercel (#98)
edwnl Mar 1, 2025
928416c
add vercel analytics (#99)
monash-coding Mar 1, 2025
21ce947
Update job-card.tsx (#100)
edwnl Mar 1, 2025
08da252
fix results text wrapping (#101)
edwnl Mar 1, 2025
a534775
add speed insights (#102)
monash-coding Mar 1, 2025
cfaa9bd
Frontend/edwin/minor optimisations (#103)
edwnl Mar 1, 2025
db52d83
minor ui fixes (#104)
edwnl Mar 2, 2025
89c5dcf
add google analytics (#105)
monash-coding Mar 2, 2025
8a43556
Sponsor section (#106)
oliverhuangcode Mar 5, 2025
853cf78
fix company name not truncated properly in job-card (#116)
jason301c Mar 7, 2025
e889ce8
Optimized sponsor selection and presentation (#117)
kyranaus Mar 9, 2025
02d4f42
Fixed filter url mismatch (#118)
kyranaus Mar 9, 2025
1a5f69f
Fixed prose overflow (#119)
kyranaus Mar 9, 2025
a1fd258
Frontend/edwin/feedback (#121)
edwnl Mar 9, 2025
3107ea2
add opengraph image and dynamic metadata (#122)
edwnl Mar 9, 2025
afbd166
Frontend/edwin/update og and readme (#123)
edwnl Mar 9, 2025
ae9d352
Frontend/edwin/minor fixes (#124)
edwnl Mar 10, 2025
38b81cc
Update actions.ts (#137)
edwnl Mar 18, 2025
2ef4f56
Bump eslint from 9.21.0 to 9.22.0 in /frontend (#136)
dependabot[bot] Mar 18, 2025
4f16e1e
Bump mongodb from 6.13.1 to 6.14.2 in /frontend (#134)
dependabot[bot] Mar 18, 2025
6bec6a9
Bump prettier from 3.5.2 to 3.5.3 in /frontend (#111)
dependabot[bot] Mar 18, 2025
41eb605
Merge remote-tracking branch 'origin/production' into development
edwnl Apr 15, 2025
e6eb5f2
create dockerfile for dev environment
edwnl Apr 28, 2025
a2b3ed4
remove public folder as its not used
edwnl Apr 28, 2025
c93b61f
include env variables
edwnl Apr 28, 2025
cfcce3f
Update working right display logic (#159)
Brian-w-m May 6, 2025
b3bc6f1
Update workflow to use Azure Container Registry
jason301c Sep 25, 2025
409e611
Create two workflows for dev and prod
jason301c Sep 25, 2025
e9ed54e
Delete legacy backend
jason301c Sep 25, 2025
cf8132f
Add Pino for structured logging
jason301c Sep 25, 2025
24b3499
Consolidate README
jason301c Sep 25, 2025
e51e6a3
Fix build errors
jason301c Sep 25, 2025
1f12124
Fix build issues with pino-pretty unavailability
jason301c Sep 25, 2025
ad75be7
Fix pino pretty error, resort to piping
jason301c Sep 25, 2025
52ed9a2
Fix dev dockerfile
jason301c Sep 25, 2025
3460bbb
Minor fix to dev dockerfile
jason301c Sep 25, 2025
77cccd4
Update workflows to format keys properly
jason301c Sep 25, 2025
3bdf5a2
Improve workflows with caching
jason301c Sep 25, 2025
fa947c1
Implement caching properly for both dev and prod workflows and docker…
jason301c Sep 25, 2025
38611a0
Fix copying package.json
jason301c Sep 25, 2025
901b139
Fix MAC logo taking up whole screen
jason301c Sep 25, 2025
2e6535f
Unify dockerfile and fix env parsing
jason301c Sep 25, 2025
134a986
fix environment variable parsing
jason301c Sep 25, 2025
758bdd2
fix environment variable parsing (2)
jason301c Sep 25, 2025
202d32f
Refactor server actions to server-side rendering
jason301c Sep 26, 2025
7b9091a
Add caching to jobs page and fetching function
jason301c Sep 26, 2025
4410ca3
Implement lru-cache for jobs
jason301c Sep 26, 2025
1ba6f09
Merge branch 'production' into development
jason301c Sep 26, 2025
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
37 changes: 33 additions & 4 deletions frontend/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
"dompurify": "^3.2.3",
"isomorphic-dompurify": "^2.22.0",
"jsdom": "^26.0.0",
"lru-cache": "^11.2.2",
"mongodb": "^6.14.2",
"next": "15.1.7",
"pino": "^9.11.0",
Expand Down
92 changes: 92 additions & 0 deletions frontend/src/actions/feedback.actions.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
"use server";

import logger from "@/lib/logger";

// Type for our form data
export interface FeedbackFormData {
email?: string;
message: string;
}

export async function submitFeedback(data: FeedbackFormData) {
const databaseId = process.env.NOTION_DATABASE_ID;
const notionApiKey = process.env.NOTION_API_KEY;

if (!databaseId) {
logger.error("NOTION_DATABASE_ID environment variable is not set");
throw new Error("NOTION_DATABASE_ID environment variable is not set");
}

if (!notionApiKey) {
logger.error("NOTION_API_KEY environment variable is not set");
throw new Error("NOTION_API_KEY environment variable is not set");
}

try {
const response = await fetch("https://api.notion.com/v1/pages", {
method: "POST",
headers: {
Authorization: `Bearer ${notionApiKey}`,
"Content-Type": "application/json",
"Notion-Version": "2022-06-28",
},
body: JSON.stringify({
parent: {
database_id: databaseId,
},
properties: {
Email: {
title: [
{
text: {
content: data.email || "Anonymous",
},
},
],
},
Feedback: {
rich_text: [
{
text: {
content: data.message,
},
},
],
},
Date: {
date: {
start: new Date().toISOString(),
},
},
},
}),
});

if (!response.ok) {
const errorData = await response.json();
logger.error(
{ error: errorData, status: response.status },
"Notion API error during feedback submission",
);
return {
success: false,
message: `We're sorry, but there was an issue submitting your feedback. Please try again later.`,
};
}

logger.info(
{ email: data.email || "Anonymous" },
"Feedback submitted successfully",
);
return {
success: true,
message: "Thank you! Your feedback has been submitted successfully.",
};
} catch (error) {
logger.error(error, "Unexpected error during feedback submission");
return {
success: false,
message: `An unexpected error occurred while submitting your feedback. Please try again.`,
};
}
}
Loading
Loading