diff --git a/.env b/.env index 0583bfc..e69de29 100644 --- a/.env +++ b/.env @@ -1 +0,0 @@ -VITE_API_BASE_URL=http://localhost:8080 \ No newline at end of file diff --git a/src/api/codingService.js b/src/api/codingService.js index 4d3f2a2..0886d31 100644 --- a/src/api/codingService.js +++ b/src/api/codingService.js @@ -4,7 +4,7 @@ * Vite 프록시 설정을 통해 백엔드(Spring) API 서버와 통신합니다. * vite.config.js에서 '/api' → http://localhost:8080 같은 식으로 프록시된다고 가정합니다. */ -const BASE_URL = "/api"; +const BASE_URL = "http://52.79.181.115:30000/api"; /** * 난이도에 따라 랜덤 코딩 문제를 가져옵니다. diff --git a/src/api/interviewService.js b/src/api/interviewService.js index c8b1c62..2376769 100644 --- a/src/api/interviewService.js +++ b/src/api/interviewService.js @@ -1,6 +1,6 @@ // src/api/interviewService.js -const BASE_URL = "/api"; +const BASE_URL = "http://52.79.181.115:30000/api"; /** * 새 AI 면접 세션 시작 (레포 URL 기반 질문 생성) diff --git a/src/api/reviewService.js b/src/api/reviewService.js index 3f73cd1..06336c5 100644 --- a/src/api/reviewService.js +++ b/src/api/reviewService.js @@ -1,5 +1,5 @@ // src/api/reviewService.js -const BASE_URL = "http://localhost:8080/api"; +const BASE_URL = "http://52.79.181.115:30000/api"; export const fetchCodeReview = async (code, comment, repoUrl) => { const payload = { diff --git a/src/features/auth/GithubLoginButton.jsx b/src/features/auth/GithubLoginButton.jsx index 7a77fa7..e878e27 100644 --- a/src/features/auth/GithubLoginButton.jsx +++ b/src/features/auth/GithubLoginButton.jsx @@ -1,18 +1,28 @@ // src/features/auth/GithubLoginButton.jsx -const API_BASE_URL = import.meta.env.VITE_API_BASE_URL; +import { IconBrandGithub } from "@tabler/icons-react"; + +const API_BASE_URL = "http://52.79.181.115:30000/api"; export default function GithubLoginButton() { const handleGithubLogin = () => { - // 백엔드 OAuth 진입점 (나중에 실제 엔드포인트로만 바꿔주면 됨) + // 백엔드 OAuth 진입점 (실제 GitHub 로그인 시작) window.location.href = `${API_BASE_URL}/oauth2/authorization/github`; }; return ( ); } diff --git a/src/features/auth/Login.jsx b/src/features/auth/Login.jsx index 2f40349..5c54fe5 100644 --- a/src/features/auth/Login.jsx +++ b/src/features/auth/Login.jsx @@ -3,16 +3,55 @@ import GithubLoginButton from "./GithubLoginButton"; export default function Login() { return ( -
-
-
-
Sign in
+
+
- {/* 나중에 이메일 로그인 넣고 싶으면 여기 */} - - +
+
+
+ + +
+

+ Master Your Code +

+

+ AI-powered code reviews, mock interviews,
and technical testing. +

+
+
+ +
+ +
+ +
+ +
+ + Developer Focused + +
+
+ + {/* 링크 제거 및 단순 카피라이트 텍스트 */} +

+ © 2025 SkillBoost. All rights reserved. +

+
); -} +} \ No newline at end of file diff --git a/src/features/codingTest/CodingTest.jsx b/src/features/codingTest/CodingTest.jsx index 393bf32..88d4aa1 100644 --- a/src/features/codingTest/CodingTest.jsx +++ b/src/features/codingTest/CodingTest.jsx @@ -20,7 +20,7 @@ import { // [오류 수정] codingService.js 파일을 직접 통합하여 경로 오류 해결 // ----------------------------------------------------------- -const BASE_URL = "/api"; +const BASE_URL = "http://52.79.181.115:30000/api"; const fetchRandomProblem = async (difficulty) => { const query = difficulty ? `?difficulty=${difficulty}` : ""; diff --git a/src/features/home/Home.jsx b/src/features/home/Home.jsx index b336b03..e2f4bcd 100644 --- a/src/features/home/Home.jsx +++ b/src/features/home/Home.jsx @@ -1,3 +1,4 @@ +// src/features/home/Home.jsx import { Link } from "react-router-dom"; import { IconCode, IconChecklist, IconUserScan } from "@tabler/icons-react"; import Particles from "@tsparticles/react"; @@ -22,7 +23,6 @@ export default function Home() { return (
- {/* --- 상단 헤더 (로그인 / 사용자명 / 로그아웃) --- */}
{hasToken ? ( diff --git a/src/features/review/CodeReview.jsx b/src/features/review/CodeReview.jsx index bbefe9d..64ae77b 100644 --- a/src/features/review/CodeReview.jsx +++ b/src/features/review/CodeReview.jsx @@ -26,7 +26,7 @@ const particlesOptions = { }, }; -const API_BASE_URL = import.meta.env.VITE_API_BASE_URL || ""; +const API_BASE_URL = "http://52.79.181.115:30000/api"; function formatReviewText(review) { if (!review) return ""; @@ -91,7 +91,7 @@ export default function Review() { try { const accessToken = localStorage.getItem("accessToken"); - const response = await fetch(`${API_BASE_URL}/api/review`, { + const response = await fetch(`${API_BASE_URL}/review`, { method: "POST", headers: { "Content-Type": "application/json", diff --git a/tailwind.config.cjs b/tailwind.config.js similarity index 58% rename from tailwind.config.cjs rename to tailwind.config.js index 28addd7..16b3e54 100644 --- a/tailwind.config.cjs +++ b/tailwind.config.js @@ -1,30 +1,31 @@ +/** @type {import('tailwindcss').Config} */ module.exports = { content: [ "./index.html", - "./src/**/*.{js,ts,jsx,tsx}", + "./src/**/*.{js,jsx,ts,tsx}", ], theme: { extend: { keyframes: { fadeIn: { "0%": { opacity: 0, transform: "translateY(10px)" }, - "100%": { opacity: 1, transform: "translateY(0)" } + "100%": { opacity: 1, transform: "translateY(0)" }, }, fadeInUp: { "0%": { opacity: 0, transform: "translateY(20px)" }, - "100%": { opacity: 1, transform: "translateY(0)" } + "100%": { opacity: 1, transform: "translateY(0)" }, }, fadeOut: { "0%": { opacity: 1, transform: "translateY(0)" }, - "100%": { opacity: 0, transform: "translateY(10px)" } + "100%": { opacity: 0, transform: "translateY(10px)" }, }, }, animation: { fadeIn: "fadeIn 0.5s ease-out forwards", fadeInUp: "fadeInUp 0.8s ease-out forwards", - fadeInOut: "fadeIn 0.3s ease-out, fadeOut 0.3s ease-in 2.7s forwards", + fadeInOut: + "fadeIn 0.3s ease-out, fadeOut 0.3s ease-in 2.7s forwards", }, }, }, - // plugins: [] // v4에서는 CSS에서 @plugin으로 불러옵니다 }; \ No newline at end of file