diff --git a/.env.sample b/.env.sample index 722b5fd..becb340 100644 --- a/.env.sample +++ b/.env.sample @@ -1,4 +1,6 @@ -NEXT_PUBLIC_SUPABASE_URL=your-supabase-url +GEMINI_API_KEY='Add your Gemini API Key' + +# Also rename this file as .envNEXT_PUBLIC_SUPABASE_URL=your-supabase-url NEXT_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=your-cloudinary-name NEXT_PUBLIC_CLOUDINARY_API_KEY=your-cloudinary-api-key \ No newline at end of file diff --git a/PROJECT_STRUCTURE.md b/PROJECT_STRUCTURE.md index 36e437a..a18dcaa 100644 --- a/PROJECT_STRUCTURE.md +++ b/PROJECT_STRUCTURE.md @@ -18,6 +18,13 @@ │ ├── Newsletter.png │ ├── avatar.png │ ├── avatar1.png +│ ├── dev1.jpeg +│ ├── dev2.jpeg +│ ├── dev3.jpeg +│ ├── dev4.jpeg +│ ├── dev5.jpeg +│ ├── dev6.jpeg +│ ├── dev7.jpeg │ ├── goal.webp │ ├── hack1.jpg │ ├── img1.jpg @@ -44,6 +51,10 @@ │ │ │ │ └── page.jsx │ │ │ ├── Hackathon/ │ │ │ │ ├── Card.jsx +│ │ │ │ ├── [id]/ +│ │ │ │ │ └── page.jsx +│ │ │ │ └── page.jsx +│ │ │ ├── PrivacyPolicy/ │ │ │ │ └── page.jsx │ │ │ ├── Projects/ │ │ │ │ ├── Card.jsx @@ -53,6 +64,8 @@ │ │ │ │ │ └── page.jsx │ │ │ │ ├── page.jsx │ │ │ │ └── resources.js +│ │ │ ├── RulesAndRegulations/ +│ │ │ │ └── page.jsx │ │ │ ├── SignIn/ │ │ │ │ └── page.jsx │ │ │ ├── SignUp/ @@ -65,8 +78,15 @@ │ │ │ ├── TeamsGallery/ │ │ │ │ ├── Teams.js │ │ │ │ └── page.jsx -│ │ │ └── careers/ +│ │ │ ├── TermsAndConditions/ +│ │ │ │ └── page.jsx +│ │ │ ├── careers/ +│ │ │ │ └── page.jsx +│ │ │ └── localdev/ │ │ │ └── page.jsx +│ │ ├── api/ +│ │ │ └── subscribe/ +│ │ │ └── route.js │ │ ├── favicon.ico │ │ ├── fonts/ │ │ │ ├── GeistMonoVF.woff @@ -79,6 +99,8 @@ │ │ ├── not-found.jsx │ │ └── page.js │ ├── components/ +│ │ ├── Chatbot.jsx +│ │ ├── GTranslateLoader.js │ │ ├── Global/ │ │ │ ├── Footer.jsx │ │ │ ├── Header.jsx diff --git a/package.json b/package.json index e6c966f..cdea704 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,11 @@ "lint": "next lint" }, "dependencies": { + "@emotion/react": "^11.13.3", + "@emotion/styled": "^11.13.0", + "@google/generative-ai": "^0.21.0", + "@mui/icons-material": "^6.1.5", + "@mui/material": "^6.1.5", "@radix-ui/react-aspect-ratio": "^1.1.0", "@radix-ui/react-collapsible": "^1.1.1", "@radix-ui/react-dialog": "^1.1.2", diff --git a/repo_structure.txt b/repo_structure.txt index 3b80648..d7ca65d 100644 --- a/repo_structure.txt +++ b/repo_structure.txt @@ -14,6 +14,13 @@ │ ├── Newsletter.png │ ├── avatar.png │ ├── avatar1.png +│ ├── dev1.jpeg +│ ├── dev2.jpeg +│ ├── dev3.jpeg +│ ├── dev4.jpeg +│ ├── dev5.jpeg +│ ├── dev6.jpeg +│ ├── dev7.jpeg │ ├── goal.webp │ ├── hack1.jpg │ ├── img1.jpg @@ -40,6 +47,10 @@ │ │ │ │ └── page.jsx │ │ │ ├── Hackathon/ │ │ │ │ ├── Card.jsx +│ │ │ │ ├── [id]/ +│ │ │ │ │ └── page.jsx +│ │ │ │ └── page.jsx +│ │ │ ├── PrivacyPolicy/ │ │ │ │ └── page.jsx │ │ │ ├── Projects/ │ │ │ │ ├── Card.jsx @@ -49,6 +60,8 @@ │ │ │ │ │ └── page.jsx │ │ │ │ ├── page.jsx │ │ │ │ └── resources.js +│ │ │ ├── RulesAndRegulations/ +│ │ │ │ └── page.jsx │ │ │ ├── SignIn/ │ │ │ │ └── page.jsx │ │ │ ├── SignUp/ @@ -61,8 +74,15 @@ │ │ │ ├── TeamsGallery/ │ │ │ │ ├── Teams.js │ │ │ │ └── page.jsx -│ │ │ └── careers/ +│ │ │ ├── TermsAndConditions/ +│ │ │ │ └── page.jsx +│ │ │ ├── careers/ +│ │ │ │ └── page.jsx +│ │ │ └── localdev/ │ │ │ └── page.jsx +│ │ ├── api/ +│ │ │ └── subscribe/ +│ │ │ └── route.js │ │ ├── favicon.ico │ │ ├── fonts/ │ │ │ ├── GeistMonoVF.woff @@ -75,6 +95,8 @@ │ │ ├── not-found.jsx │ │ └── page.js │ ├── components/ +│ │ ├── Chatbot.jsx +│ │ ├── GTranslateLoader.js │ │ ├── Global/ │ │ │ ├── Footer.jsx │ │ │ ├── Header.jsx diff --git a/src/app/(pages)/api/generate/route.js b/src/app/(pages)/api/generate/route.js new file mode 100644 index 0000000..0f7c501 --- /dev/null +++ b/src/app/(pages)/api/generate/route.js @@ -0,0 +1,17 @@ +import { GoogleGenerativeAI } from '@google/generative-ai'; + +const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY); + +export async function POST(req) { + const { prompt } = await req.json(); + try { + const model = genAI.getGenerativeModel({ model: 'gemini-pro' }); + const result = await model.generateContent(prompt); + const response = await result.response; + const generatedText = await response.text(); + + return new Response(JSON.stringify({ generatedText }), { status: 200 }); + } catch (error) { + return new Response(error.message, { status: 500 }); + } +}