DevLink is a full-stack application built with Next.js that allows developers to create, manage, and share their professional portfolios and resumes. It supports user authentication, dynamic profile building, PDF resume export, and SEO-optimized public portfolios.
Feature | Stack |
---|---|
Frontend | Next.js (App Router, SSR/SSG) |
Backend | Next.js API Routes |
Database | MongoDB with Mongoose (optional: PostgreSQL + Prisma) |
Auth | NextAuth.js |
Styling | TailwindCSS |
File Uploads | Cloudinary |
PDF Export | react-pdf or html2pdf.js |
- Register/Login with Google, GitHub, or Email
- Secure sessions via NextAuth.js
- Basic info: name, title, bio, and contact details
- Skills (tag-based), education, and work experience
- Add projects with title, description, demo, and GitHub links
- Upload profile picture
- Create resume using existing profile info
- Add/remove sections like experience, skills, education
- Preview and download as PDF
- Custom URLs:
devlink.io/username
- SEO-optimized public portfolio pages
- Contact form integration (optional)
- Track portfolio views and resume downloads
// models/User.js
{
_id,
name,
email,
image,
username, // for public URL
bio,
skills: [String],
contact: {
email, phone, linkedin, github, website
},
experience: [
{
company,
position,
startDate,
endDate,
description
}
],
education: [
{
school,
degree,
field,
startDate,
endDate
}
],
projects: [
{
title,
description,
github,
liveDemo,
imageUrl
}
],
resumeUrl // Cloudinary link to uploaded PDF
}
/app
/api
/auth → NextAuth authentication
/profile → GET/PUT profile data
/upload → Cloudinary uploads
/dashboard → Authenticated user area
/portfolio → Public portfolio pages
/components → Reusable UI components
/lib → Utility functions, DB connection, etc.
/models → Mongoose schema definitions
/pages/api → Legacy API routes (if needed)
Week | Tasks |
---|---|
1 | Setup Auth system + MongoDB integration |
2 | Build Profile + Projects CRUD functionality |
3 | Resume builder + PDF export capability |
4 | Public portfolio routes + SEO + UI polish |
-
Clone the repo
git clone https://github.com/your-username/devlink.git cd devlink
-
Install dependencies
npm install
-
Set up environment variables
Create a.env.local
file with:NEXTAUTH_SECRET=your_secret NEXTAUTH_URL=http://localhost:3000 MONGODB_URI=mongodb+srv://<user>:<password>@cluster.mongodb.net/devlink CLOUDINARY_CLOUD_NAME=your_cloud_name CLOUDINARY_API_KEY=your_api_key CLOUDINARY_API_SECRET=your_api_secret GITHUB_CLIENT_ID=your_github_client_id GITHUB_CLIENT_SECRET=your_github_client_secret GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_CLIENT_SECRET=your_google_client_secret
-
Run the app
npm run dev
Contributions are welcome! Please open an issue or PR with improvements, fixes, or new ideas.
MIT License