A customizable portfolio website built with Next.js, MongoDB, and Tailwind CSS.
- Modern and responsive design
- Admin dashboard for content management
- Dark/light mode
- Customizable theme settings
- Contact form with email functionality
- Resume import from social platforms (GitHub, LinkedIn, Twitter/X, LeetCode)
- SEO optimization
- Clone this repository
- Install dependencies:
npm install - Create a
.envfile in the root directory with the following variables:
# MongoDB Connection String (REQUIRED)
DATABASE_URL="mongodb+srv://your-username:your-password@your-cluster-url/portfolio?retryWrites=true&w=majority"
# For NextAuth.js (REQUIRED)
NEXTAUTH_SECRET="your-random-string-for-jwt-encryption"
NEXTAUTH_URL="http://localhost:3000"
# Cloudinary for image uploads (OPTIONAL)
CLOUDINARY_CLOUD_NAME="your-cloud-name"
CLOUDINARY_API_KEY="your-api-key"
CLOUDINARY_API_SECRET="your-api-secret"
# Admin credentials (used for initial setup) (REQUIRED)
ADMIN_PASSWORD="your-strong-password"- Generate Prisma client:
npx prisma generate - Start the development server:
npm run dev
- Create a new project on Vercel and connect it to your GitHub repository
- Add the following environment variables in the Vercel dashboard:
DATABASE_URL- Your MongoDB connection stringNEXTAUTH_SECRET- A random string for JWT encryptionNEXTAUTH_URL- Your production URL (e.g., https://your-portfolio.vercel.app)ADMIN_PASSWORD- Password for the admin dashboardCLOUDINARY_CLOUD_NAME- (Optional) Your Cloudinary cloud nameCLOUDINARY_API_KEY- (Optional) Your Cloudinary API keyCLOUDINARY_API_SECRET- (Optional) Your Cloudinary API secret
- Deploy the project
The portfolio website includes functionality to import your profile data from various social platforms:
- GitHub: Import your profile information, bio, and repositories
- LinkedIn: Connect your professional profile (requires authentication)
- Twitter/X: Link your social media presence
- LeetCode: Add your coding profile
To use this feature, navigate to the Admin Dashboard > Social Links section and use the import tool.
Access the admin dashboard at /admin to:
- Update personal information
- Manage skills, experience, education, and projects
- Configure theme settings
- Set up SEO metadata
- Import data from social platforms
- Manage contact information
If you encounter build errors related to Prisma:
- Make sure your
DATABASE_URLenvironment variable is correctly set in Vercel - Verify that your MongoDB instance is accessible from Vercel's servers
- Check that your MongoDB connection string includes the database name (e.g.,
/portfolioat the end) - Try rebuilding the project in Vercel after confirming all environment variables are set
For other deployment issues, check the Vercel build logs for specific errors.
This project is licensed under the MIT License - see the LICENSE file for details.