PowerFolio is a dynamic, AI-powered platform designed for students to build professional portfolios, showcase their innovative projects, and connect with recruiters.
PowerFolio bridges the gap between student creativity and professional visibility. It allows users to submit detailed project documentation, enhance their descriptions using AI, and manage their portfolio through a sleek dashboard.
- Integrated with Google Gemini AI to automatically rewrite project descriptions and generate impactful outcome statements.
- Upload up to 4 project screenshots and 20MB demo videos directly to ImageKit for optimized delivery.
- Track project views, likes, and approval status.
- View submission trends (Last 10 Days)
- Project type breakdown
- Manage users
- Full JWT-based authentication
- Role-based access control (Student vs Admin)
- Modern glassmorphism-inspired design using Tailwind CSS.
- Instant “Like”, “Delete”, and other actions for a smooth UX.
| Category | Technology |
|---|---|
| Frontend | React.js (Vite), Tailwind CSS, Lucide React, React Toastify, React Router DOM |
| Backend | Node.js, Express.js |
| Database | MongoDB Atlas (Mongoose) |
| AI | Google Gemini API (@google/generative-ai) |
| Storage | ImageKit.io |
| Auth | JWT, bcryptjs |
- Node.js (v16+)
- MongoDB Atlas
- ImageKit Account
- Google AI Studio API Key (Gemini)
git clone https://github.com/ajith-kumar99/PowerFolio-v2.git
cd powerfolioNavigate to backend:
cd server
npm installCreate .env:
PORT=5000
MONGO_URI="your_mongodb_connection_string"
JWT_SECRET="your_super_secret_key"
CLIENT_URL="http://localhost:5173"
# ImageKit Credentials
IMAGEKIT_PUBLIC_KEY="your_public_key"
IMAGEKIT_PRIVATE_KEY="your_private_key"
IMAGEKIT_URL_ENDPOINT="https://ik.imagekit.io/your_id"
# Google Gemini AI
GEMINI_API_KEY="your_gemini_api_key"Run backend:
npm run devNavigate to client:
cd client
npm installCreate .env (optional):
VITE_API_URL=http://localhost:5000/apiStart frontend:
npm run devThe system includes a hidden Admin Dashboard.
Login URL:
http://localhost:5173/admin-login
Default Credentials:
Email: admin@gmail.com
Password: admin@123
The backend auto-creates the admin on first login if it doesn't exist.
powerfolio/
├── client/ # React Frontend
│ ├── src/
│ │ ├── components/ # Navbar, ProjectCard, Stats
│ │ ├── context/ # AuthContext
│ │ ├── pages/ # Home, Dashboard, SubmitProject
│ │ └── App.jsx
│ └── ...
│
├── server/ # Node.js Backend
│ ├── config/ # Database connection
│ ├── controllers/ # Auth, Projects, Admin, AI
│ ├── middleware/ # Auth & file uploads
│ ├── models/ # Mongoose Schemas
│ ├── routes/ # API routes
│ └── server.js
│
└── README.md
- Comment system for peer feedback
- Social sharing (LinkedIn, Twitter)
- Dark/Light mode toggle