Skip to content

Commit 0c5b25a

Browse files
authored
feat: axios connection (#22)
* chore: init axios * feat: projects axios connection * chore: temp cors
1 parent f69b3aa commit 0c5b25a

File tree

7 files changed

+271
-303
lines changed

7 files changed

+271
-303
lines changed

backend/bitmatch/bitmatch/settings.py

+9-3
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,12 @@
6666
MIDDLEWARE = [
6767
'django.middleware.security.SecurityMiddleware',
6868
'django.contrib.sessions.middleware.SessionMiddleware',
69+
'corsheaders.middleware.CorsMiddleware',
6970
'django.middleware.common.CommonMiddleware',
7071
'django.middleware.csrf.CsrfViewMiddleware',
7172
'django.contrib.auth.middleware.AuthenticationMiddleware',
7273
'django.contrib.messages.middleware.MessageMiddleware',
7374
'django.middleware.clickjacking.XFrameOptionsMiddleware',
74-
"corsheaders.middleware.CorsMiddleware",
7575
]
7676

7777
ROOT_URLCONF = 'bitmatch.urls'
@@ -151,5 +151,11 @@
151151

152152
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
153153

154-
CORS_ALLOW_ALL_ORIGINS = True
155-
CORS_ALLOWS_CREDENTIALS = True
154+
CORS_ALLOWED_ORIGINS = [
155+
"http://localhost:5173", # Vite development server URL
156+
"http://localhost:5174",
157+
"http://localhost:5175",
158+
"http://localhost:5176",
159+
]
160+
161+
CORS_ALLOW_CREDENTIALS = True

frontend/bitmatch/package-lock.json

+92-12
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/bitmatch/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
"dependencies": {
1313
"@clerk/clerk-react": "^5.24.0",
1414
"@radix-ui/react-slot": "^1.1.2",
15+
"axios": "^1.8.2",
1516
"class-variance-authority": "^0.7.1",
1617
"clsx": "^2.1.1",
1718
"lucide-react": "^0.475.0",

frontend/bitmatch/src/components/project/ProjectCardLarge.jsx

+25-15
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ export default function ProjectCardLarge({ project, highlighted = false }) {
1616
: "border border-gray-200";
1717

1818
return (
19-
<div className={`flex flex-col h-full ${borderClass} rounded-lg overflow-hidden transition-all duration-300 hover:border-blue-500 hover:shadow-lg`}>
19+
<div
20+
className={`flex flex-col h-full ${borderClass} rounded-lg overflow-hidden transition-all duration-300 hover:border-blue-500 hover:shadow-lg`}
21+
>
2022
{/* Header */}
2123
<div className="bg-gray-800 text-white p-2 flex justify-between">
2224
<span>{project.group}</span>
@@ -27,25 +29,33 @@ export default function ProjectCardLarge({ project, highlighted = false }) {
2729
{/* Match Percentage */}
2830
<div
2931
className={`absolute top-2 left-2 text-xs px-2 py-1 rounded font-bold ${
30-
project.matchPercentage >= 90 ? "bg-green-700 text-white"
31-
: project.matchPercentage >= 80 ? "bg-green-600 text-white"
32-
: project.matchPercentage >= 70 ? "bg-yellow-600 text-white"
33-
: project.matchPercentage >= 60 ? "bg-yellow-500 text-white"
34-
: project.matchPercentage >= 50 ? "bg-yellow-400 text-white"
35-
: project.matchPercentage >= 40 ? "bg-orange-600 text-white"
36-
: project.matchPercentage >= 30 ? "bg-orange-500 text-white"
37-
: project.matchPercentage >= 20 ? "bg-red-600 text-white"
38-
: "bg-red-700 text-white"
32+
project.match_percentage >= 90
33+
? "bg-green-700 text-white"
34+
: project.match_percentage >= 80
35+
? "bg-green-600 text-white"
36+
: project.match_percentage >= 70
37+
? "bg-yellow-600 text-white"
38+
: project.match_percentage >= 60
39+
? "bg-yellow-500 text-white"
40+
: project.match_percentage >= 50
41+
? "bg-yellow-400 text-white"
42+
: project.match_percentage >= 40
43+
? "bg-orange-600 text-white"
44+
: project.match_percentage >= 30
45+
? "bg-orange-500 text-white"
46+
: project.match_percentage >= 20
47+
? "bg-red-600 text-white"
48+
: "bg-red-700 text-white"
3949
}`}
4050
>
41-
{project.matchPercentage}% Match
51+
{project.match_percentage}% Match
4252
</div>
4353

4454
{/* Image */}
4555
<div className="bg-gray-200 h-48 flex items-center justify-center text-gray-500 text-sm">
46-
{project.imageUrl ? (
56+
{project.image_url ? (
4757
<img
48-
src={project.imageUrl}
58+
src={project.image_url}
4959
alt={`${project.title} Cover`}
5060
className="w-full h-full object-cover"
5161
/>
@@ -108,7 +118,7 @@ export default function ProjectCardLarge({ project, highlighted = false }) {
108118
ProjectCardLarge.propTypes = {
109119
project: PropTypes.shape({
110120
group: PropTypes.string.isRequired,
111-
matchPercentage: PropTypes.number.isRequired,
121+
match_percentage: PropTypes.number.isRequired,
112122
title: PropTypes.string.isRequired,
113123
institution: PropTypes.string.isRequired,
114124
description: PropTypes.string.isRequired,
@@ -119,7 +129,7 @@ ProjectCardLarge.propTypes = {
119129
title: PropTypes.string.isRequired,
120130
})
121131
).isRequired,
122-
imageUrl: PropTypes.string,
132+
image_url: PropTypes.string,
123133
}).isRequired,
124134
highlighted: PropTypes.bool,
125135
};

0 commit comments

Comments
 (0)