Introduction • Tech Stack • Development • Deployment • License
This is a personal portfolio web application built with NextJS, TypeScript, TailwindCSS and Firebase.
Here are the steps to run the portfolio locally.
-
Fork or clone this repository.
-
Clone your forked copy of the repo
git clone https://github.com/Killercavin/Cavin.git
-
Install dependencies
npm i
-
Create a Firebase project and select the web app
-
Create an
.env.local
file in the root directory, and add the following variables with your firebase config:NEXT_PUBLIC_FIREBASE_API_KEY NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN NEXT_PUBLIC_FIREBASE_DATABASE_URL NEXT_PUBLIC_FIREBASE_PROJECTID NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET NEXT_PUBLIC_FIREBASE_MESSAGING_SENDERID NEXT_PUBLIC_FIREBASE_APPID NEXT_PUBLIC_FIREBASE_MEASUREMENTD SENDGRID_API_KEY MAIL_FROM MAIL_TO
Note:
SENDGRID_API_KEY
- Create an API key from "Settings" -> "API Keys" with "Restricted Access" to only "Mail Send"
-
Update the sample data.json provided, with your data or directly import the same and edit using firebase later. (For storing images you can use Cloudinary or Firebase Storage)
-
Import json data
- Go to Firebase Console and select your project
- Go to "Database" -> "Realtime Database" -> "Import JSON" and import the data.json file
-
Run the project
npm run dev
-
Create a Vercel or Netlify account and select "Import Project"
-
Select the forked repository and deploy
-
Add the following environment variables in the Vercel dashboard:
NEXT_PUBLIC_FIREBASE_API_KEY NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN NEXT_PUBLIC_FIREBASE_DATABASE_URL NEXT_PUBLIC_FIREBASE_PROJECTID NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET NEXT_PUBLIC_FIREBASE_MESSAGING_SENDERID NEXT_PUBLIC_FIREBASE_APPID NEXT_PUBLIC_FIREBASE_MEASUREMENTD SENDGRID_API_KEY MAIL_FROM MAIL_TO
-
Hurray! You successfully deployed the portfolio🥳
This project is licensed under the MIT License - see the LICENSE.md
If you want to contact me, you can reach me through below handles.
If you like this portfolio, please consider giving it a ⭐ on GitHub and sharing it with your friends via social media.