diff --git a/backend/index.js b/backend/index.js index 7176e57..0b85db2 100644 --- a/backend/index.js +++ b/backend/index.js @@ -8,7 +8,9 @@ connectToMongo(); // Middlewares app.use(cors()); -app.use(express.json()); +app.use(express.json({ + limit: '5.5mb' +})); // Routes app.get('/', (req, res) => { diff --git a/frontend/src/components/NewProj/NewProj.jsx b/frontend/src/components/NewProj/NewProj.jsx index 4e1b62b..6014aad 100644 --- a/frontend/src/components/NewProj/NewProj.jsx +++ b/frontend/src/components/NewProj/NewProj.jsx @@ -2,7 +2,10 @@ import { Suspense, useEffect, useState } from 'react'; import { json, useNavigate } from 'react-router-dom'; import Navbar from '../Navbar/Navbar'; import { Helmet } from "react-helmet"; -import './newproject.css' +import './newproject.css'; +import './newproject.css'; +import { ToastContainer, toast } from 'react-toastify'; +import 'react-toastify/dist/ReactToastify.css'; const NewProj = () => { const [name, setName] = useState(""); @@ -20,7 +23,7 @@ const NewProj = () => { const [repoName, setRepoName] = useState("DevCode"); const [repoLink, setRepoLink] = useState("https://github.com/devarshishimpi/devcode"); const [level, setLevel] = useState(null); - const [image, setImage] = useState(); + const [image, setImage] = useState(null); const navigate = useNavigate(); @@ -32,6 +35,7 @@ const NewProj = () => { const formSubmit = async (e) => { e.preventDefault(); + const langArr = []; if (language1) { langArr.push("Javscript"); @@ -65,17 +69,62 @@ const NewProj = () => { } - const authtoken = localStorage.getItem('auth-token'); - const response = await fetch('http://localhost:8181/api/auth/uploadproject', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - 'auth-token': authtoken - }, - body: JSON.stringify({ name, description, langArr, repoName, repoLink, level, image }) - }); - const json = await response.json(); - console.log(json); + + if (name.trim() === "") { + toast.error('Please enter a valid project name'); + } + else if (description.trim() === "") { + toast.error('Please enter a valid description'); + } + // else if (!(language1 || language2 || language3 || language4 || language5 || language6 || language7 || language8 || language9 || language10)) { + // toast.error('Please select a valid language tag'); + // } + else if (langArr.length === 0) { + toast.error('Please select a valid language tag'); + } + else if (level.trim() === "") { + toast.error('Please select level of the project'); + } + else if (image === null) { + toast.error("Please upload a valid image"); + } + else { + const authtoken = localStorage.getItem('auth-token'); + const response = await fetch('http://localhost:8181/api/auth/uploadproject', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'auth-token': authtoken + }, + body: JSON.stringify({ name, description, langArr, repoName, repoLink, level, image }) + }); + const json = await response.json(); + if (json.success) { + setName(""); + setDescription(""); + setLanguage1(false); + setLanguage2(false); + setLanguage3(false); + setLanguage4(false); + setLanguage5(false); + setLanguage6(false); + setLanguage7(false); + setLanguage8(false); + setLanguage9(false); + setLanguage10(false); + setRepoName(""); + setRepoLink(""); + setLevel(""); + setImage(null); + + toast.success('Success! Your project has been submitted successfully'); + + setTimeout(() => { + navigate('/projects') + }, 1500); + } + console.log(json); + } } const handleImage = (e) => { @@ -104,7 +153,7 @@ const NewProj = () => {