- This repository hold the code for my portfolio website deployed at link, The website used NextJS as frontend and framer for animaitions. Additionally aws lambda function is used to send emails upon form filling leviaging the power of serverless.
- The frontend is deployed on
verceland the lambda function is deplyed onaws api-gateway. Additonally for security, onlyscienmanas.devis allowed to access the lambda function, preventing attacks on the service. Google Analyticsis enabled for user monitoring.
- Frontend: Next JS, TailwindCSS, Framer Motion
- Serverless: lambda function, aws api-gateway
This project requirement .env configuration in Frontend folder to handle the dynamicity of the metadata generated when deployed everytime. The .env file should be created in the Frontend folder with the following variables:
| Varibale | Description |
|---|---|
SITE_URL |
Domain name of the website (https://scienmanas.dev) |
SITE_NAME |
Name of the site (Here I kept it- Manas) |
G_ANALYTICS_ID |
Google Analytics ID for tracking user activity |
- To add new blog just add files according to the format in
Frontend/public/blogfolder. The blog will be automatically added to the website. - The beackend in turned off in the frontend, so the newsletter will not work in the frontend, you need to uncomment the onsubmit function in the form (in Footer.tsx - Frontend)
The project uses rest APIs hosted on AWS which is made using lambda functions. the API is protected using CORS policy
| Endpoint | Purpose |
|---|---|
| /send-email | Send notification to the contacted person as well as me |
| /scienGPT | Used to get response from Fine-tuned AI model |
| /github-contribution | To get the data for contribution graph |
- The frontend can be deployed on
vercel,netlify,github pages,render.cometc. - The AWS Lambda function can be deployed on
awsserved viaapi-gateway.
- To deploy the frontend, run the following command in the
Frontendfolder:
configure the .env filenpm installnpm run build
.
├── RAG
│ └── Pipieline to upload data to pinecone (Details in its folder README)
├── AWS Lambda Function
│ │── ScienGPT
│ │ └── Files for aws lambda function
│ │── GithubContribution
│ │ └── Files for aws lambda function
│ └── Emailer
│ └── Files for aws lambda function
├── Frontend
│ │── app
│ │ ├── (default_site)
│ │ │ ├── _blog
│ │ │ │ ├── [slug]
│ │ │ │ │ └── page.tsx
│ │ │ │ ├── page.tsx
│ │ │ │ └── layout.tsx
│ │ │ ├── page.tsx
│ │ │ └── layout.tsx
│ │ ├── lib
│ │ │ └── definition.ts
│ │ ├── utils
│ │ │ ├── dateformatter.ts
│ │ │ └── getBlogData.ts
│ │ ├── ui
│ │ │ ├── components
│ │ │ │ ├── to be added..
│ │ │ ├── landing
│ │ │ │ ├── Hero.tsx
│ │ │ │ ├── Skills.tsx
│ │ │ │ ├── Projects.tsx
│ │ │ │ ├── Flex.tsx
│ │ │ │ ├── CommunityWork.tsx
│ │ │ │ ├── MoreAboutMe.tsx
│ │ │ │ ├── UserInfo.tsx
│ │ │ │ └── Contact.tsx
│ │ │ ├── universal
│ │ │ │ ├── Navbar.tsx
│ │ │ │ └── Footer.tsx
│ │ │ ├── blog
│ │ │ │ └── blog-card.tsx
│ │ │ └── loaders.tsx
│ │ ├── favicon.ico
│ │ ├── global.css
│ │ ├── page.tsx
│ │ ├── layout.tsx
│ │ ├── notfound.tsx
│ │── public
│ │ ├── Manas_CV.pdf
│ │ ├── blog
│ │ │ └── ... folder with blog files
│ │ └── assets
│ │ └── ... folder with assets
│ │── .eslinktrc.jsom
│ │── next-env.d.ts
│ │── package.json
│ │── package-lock.json
│ │── next.config.mjs (enabled cross image fetching)
│ │── .env
│ │── next-sitemap.js
│ └── ..... Other configuration files (unaltered)
├── .gitignore
├── LICENSE
└── README.md
site mapandrobots.txtare automatically generating by usingnext-sitemapusing post build script inpackage.jsonfile.
Contributions are always welcome! Additionally you can contact me by my email: manas@scienmanas.dev. I am currently working on a .md based blog engine for this template
Screencast.from.2024-11-10.20-44-16.mp4
- The website is inspired by the portfolio of Nikhil Raj & Smile Gupta. There are some changes made to the original design. You can access their original portfolio from at Nikhil Raj & Smile Gupta.
This repository is open source and under MIT License.