feat: Add CI/CD pipeline and code quality improvements

- Add GitHub Actions workflow for automated CI/CD
- Configure Node.js 18.x and 20.x matrix testing
- Add TypeScript type checking step
- Add ESLint code quality checks with enhanced rules
- Add Prettier formatting verification
- Add production build validation
- Upload build artifacts for deployment
- Set up automated testing on push/PR
- Replace console.log with environment-aware logger
- Add pre-commit hooks for code quality
- Exclude archive folder from linting

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
hansoo
2025-07-12 15:27:54 +09:00
parent 6a208d6b06
commit 9851627ff1
411 changed files with 14458 additions and 8680 deletions

View File

@@ -15,12 +15,10 @@ const Login = () => {
isSettingUpTables,
loginError,
setLoginError,
handleLogin
handleLogin,
} = useLogin();
const navigate = useNavigate();
const {
user
} = useAuth();
const { user } = useAuth();
// 이미 로그인된 경우 메인 페이지로 리다이렉트
useEffect(() => {
@@ -28,24 +26,44 @@ const Login = () => {
navigate("/");
}
}, [user, navigate]);
return <div className="min-h-screen flex flex-col items-center justify-center p-6 bg-neuro-background">
return (
<div className="min-h-screen flex flex-col items-center justify-center p-6 bg-neuro-background">
<div className="w-full max-w-md">
<div className="text-center mb-8">
<h1 className="text-3xl font-bold text-neuro-income mb-2"> </h1>
<p className="text-gray-500"> </p>
<h1 className="text-3xl font-bold text-neuro-income mb-2">
</h1>
<p className="text-gray-500">
</p>
</div>
<LoginForm email={email} setEmail={setEmail} password={password} setPassword={setPassword} showPassword={showPassword} setShowPassword={setShowPassword} isLoading={isLoading} isSettingUpTables={isSettingUpTables} loginError={loginError} handleLogin={handleLogin} />
<LoginForm
email={email}
setEmail={setEmail}
password={password}
setPassword={setPassword}
showPassword={showPassword}
setShowPassword={setShowPassword}
isLoading={isLoading}
isSettingUpTables={isSettingUpTables}
loginError={loginError}
handleLogin={handleLogin}
/>
<div className="text-center mb-4">
<p className="text-gray-500">
?{" "}
<Link to="/register" className="text-neuro-income font-medium hover:underline">
<Link
to="/register"
className="text-neuro-income font-medium hover:underline"
>
</Link>
</p>
</div>
</div>
</div>;
</div>
);
};
export default Login;
export default Login;