A modern, high-performance full-stack portfolio website built to showcase projects and skills with a premium user experience. Leveraging the power of Next.js 15, Tailwind CSS 4, and MongoDB, it features a secure admin panel, dynamic content management, immersive 3D elements, and seamless animations.
- π¨ Modern & Responsive Design: Crafted with Tailwind CSS 4 and Shadcn/ui for a sleek, accessible, and fully responsive interface across all devices.
- π Dynamic Project Showcase: Projects are fetched dynamically from a MongoDB database, ensuring content is always up-to-date.
- β¨ Immersive Animations: Enhanced user experience with Framer Motion for smooth transitions and Three.js (@react-three/fiber) for 3D elements.
- π Rich Content: Detailed project descriptions rendered using
@uiw/react-md-editorwith markdown support. - π§ Contact Integration: Fully functional contact form powered by Resend for direct email submissions.
- π Real-time Notifications: Interactive toast notifications using Sonner.
- π€ AI Chat Assistant: Intelligent chatbot powered by Google Gemini to answer questions about the portfolio.
- π Secure Authentication: Protected admin routes using NextAuth.js to ensure only authorized access.
- π Dashboard Overview: comprehensive view of projects and content.
- π οΈ Project Management: Full CRUD (Create, Read, Update, Delete) capabilities for managing portfolio projects.
- β Drag & Drop Reordering: Intuitive Drag and Drop interface (powered by
@dnd-kit) to easily reorder skills and projects, giving you full control over how content is displayed. - βοΈ Media Management: Seamless image uploads and hosting via Cloudinary.
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS 4
- Components: Shadcn/ui & Radix UI
- Animations: Framer Motion & Typewriter Effect
- Icons: Lucide React
- Markdown: @uiw/react-md-editor
- API: Next.js API Routes
- Database: MongoDB
- ORM: Mongoose
- Authentication: NextAuth.js
- AI: Google Generative AI
- Image Hosting: Cloudinary
- Email Service: Resend
- Drag & Drop: @dnd-kit
- Date Handling: date-fns
- Linting: ESLint
src/
βββ app/
β βββ (admin)/ # Protected admin routes (Dashboard, Project/Skill Management)
β βββ (main)/ # Public facing routes (Home, Projects, Contact)
β βββ api/ # Backend API endpoints (Projects, Skills, Auth, Email)
β βββ globals.css # Global styles and Tailwind directives
β βββ layout.tsx # Root layout
βββ components/ # Reusable UI components (Buttons, Cards, Modals)
βββ hooks/ # Custom React hooks
βββ lib/ # Utility functions, DB connection, Cloudinary config
βββ models/ # Mongoose database models (Project, Skill, User)
βββ types/ # TypeScript type definitions
βββ middleware.ts # Authentication middlewareFollow these instructions to set up the project locally.
git clone https://github.com/your-username/your-repository-name.git
cd your-repository-namenpm installCreate a .env file in the root directory and add the following variables:
# MongoDB
MONGODB_URI="your_mongodb_connection_string"
# NextAuth.js
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="your_nextauth_secret" # Generate using `openssl rand -base64 32`
# Cloudinary
CLOUDINARY_CLOUD_NAME="your_cloud_name"
CLOUDINARY_API_KEY="your_api_key"
CLOUDINARY_API_SECRET="your_api_secret"
# Resend (Email)
RESEND_API_KEY="your_resend_api_key"
# App
NEXT_PUBLIC_BASE_URL="http://localhost:3000"
# Google Gemini AI
GOOGLE_API_KEY="your_google_api_key"npm run devOpen http://localhost:3000 to view the application.
The application is optimized for deployment on Vercel.
- Push your code to a GitHub repository.
- Import the project into Vercel.
- Add the environment variables in the Vercel dashboard.
- Deploy!
For more details, check the Next.js Deployment Documentation.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/YourFeature). - Commit your changes (
git commit -m 'Add some feature'). - Push to the branch (
git push origin feature/YourFeature). - Open a Pull Request.