diff --git a/backend/.env b/backend/.env index 360866b0c..e9812049e 100644 --- a/backend/.env +++ b/backend/.env @@ -1,4 +1,4 @@ -#DATABASE = "mongodb://localhost:27017" +DATABASE = "mongodb+srv://sribabu:63037sribabu@atlascluster.k6u2oy9.mongodb.net/?retryWrites=true&w=majority" #RESEND_API = "your resend_api" #OPENAI_API_KEY = "your open_ai api key" JWT_SECRET= "your_private_jwt_secret_key" diff --git a/backend/package-lock.json b/backend/package-lock.json index 268204e70..3635c8039 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -1,12 +1,12 @@ { "name": "idurar-erp-crm", - "version": "4.0.0-beta.3", + "version": "4.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "idurar-erp-crm", - "version": "4.0.0-beta.3", + "version": "4.0.0", "license": "Fair-code License", "dependencies": { "@aws-sdk/client-s3": "^3.509.0", diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 806b68ce3..3a9e7fb79 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "idurar-erp-crm", - "version": "4.0.0-beta.3", + "version": "4.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "idurar-erp-crm", - "version": "4.0.0-beta.3", + "version": "4.0.0", "dependencies": { "@ant-design/icons": "^5.3.0", "@ant-design/pro-layout": "^7.17.19", @@ -1432,7 +1432,7 @@ "version": "15.7.10", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.10.tgz", "integrity": "sha512-mxSnDQxPqsZxmeShFH+uwQ4kO4gcJcGahjjMFeLbKE95IAZiiZyiEepGZjtXJ7hN/yfu0bu9xN2ajcU0JcxX6A==", - "devOptional": true + "dev": true }, "node_modules/@types/quill": { "version": "1.3.10", @@ -1446,7 +1446,7 @@ "version": "18.2.41", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.41.tgz", "integrity": "sha512-CwOGr/PiLiNBxEBqpJ7fO3kocP/2SSuC9fpH5K7tusrg4xPSRT/193rzolYwQnTN02We/ATXKnb6GqA5w4fRxw==", - "devOptional": true, + "dev": true, "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -1466,7 +1466,7 @@ "version": "0.16.6", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.6.tgz", "integrity": "sha512-Vlktnchmkylvc9SnwwwozTv04L/e1NykF5vgoQ0XTmI8DD+wxfjQuHuvHS3p0r2jz2x2ghPs2h1FVeDirIteWA==", - "devOptional": true + "dev": true }, "node_modules/@types/use-sync-external-store": { "version": "0.0.3", diff --git a/frontend/src/pages/Login.jsx b/frontend/src/pages/Login.jsx index c1f8a1f5d..bc32854d9 100644 --- a/frontend/src/pages/Login.jsx +++ b/frontend/src/pages/Login.jsx @@ -12,6 +12,11 @@ import { selectAuth } from '@/redux/auth/selectors'; import LoginForm from '@/forms/LoginForm'; import Loading from '@/components/Loading'; import AuthModule from '@/modules/AuthModule'; +import RegisterForm from '@/forms/RegisterForm'; + +import { Typography } from 'antd'; + +const { Text } = Typography; const LoginPage = () => { const translate = useLanguage(); @@ -51,6 +56,11 @@ const LoginPage = () => { > {translate('Log in')} + + Don't have an account? { + navigate("/register") + }} className="hover-underline">Register + diff --git a/frontend/src/pages/Register.jsx b/frontend/src/pages/Register.jsx new file mode 100644 index 000000000..5005d90b3 --- /dev/null +++ b/frontend/src/pages/Register.jsx @@ -0,0 +1,73 @@ +import { useEffect } from 'react'; + +import { useDispatch, useSelector } from 'react-redux'; +import { useNavigate } from 'react-router-dom'; + +import useLanguage from '@/locale/useLanguage'; + +import { Form, Button } from 'antd'; + +import { login } from '@/redux/auth/actions'; +import { selectAuth } from '@/redux/auth/selectors'; +// import LoginForm from '@/forms/LoginForm'; +import RegisterForm from '@/forms/RegisterForm'; +import Loading from '@/components/Loading'; +import AuthModule from '@/modules/AuthModule'; +import { Typography } from 'antd'; + +const { Text } = Typography; + + +const RegisterPage = () => { + const translate = useLanguage(); + const { isLoading, isSuccess } = useSelector(selectAuth); + const navigate = useNavigate(); +// const size = useSize(); + + const dispatch = useDispatch(); + const onFinish = (values) => { + dispatch(login({ loginData: values })); + }; + + useEffect(() => { + if (isSuccess) navigate('/'); + }, [isSuccess]); + + const FormContainer = () => { + return ( + +
+ + + + + Already have an account? { + navigate("/") + }} className="hover-underline">Login + + + +
+ ); + }; + + return } AUTH_TITLE="Sign in" />; +}; + +export default RegisterPage; diff --git a/frontend/src/router/AuthRouter.jsx b/frontend/src/router/AuthRouter.jsx index 2416dd984..463a02e9e 100644 --- a/frontend/src/router/AuthRouter.jsx +++ b/frontend/src/router/AuthRouter.jsx @@ -5,6 +5,7 @@ import NotFound from '@/pages/NotFound'; import ForgetPassword from '@/pages/ForgetPassword'; import ResetPassword from '@/pages/ResetPassword'; +import RegisterPage from '@/pages/Register'; import { useDispatch } from 'react-redux'; @@ -15,6 +16,7 @@ export default function AuthRouter() { } path="/" /> } path="/login" /> + } path="/register" /> } path="/logout" /> } path="/forgetpassword" /> } path="/resetpassword/:userId/:resetToken" />