Build Your Developer Portfolio. No Nonsense. Pure Impact.
Live Demo β’ Documentation β’ Report Bug
ClueFind is a modern developer portfolio platform that helps developers showcase their skills, projects, and achievements. Built with Next.js 15, TypeScript, and PostgreSQL, it provides a complete solution for developers to build their online presence and connect with recruiters.
- AI-Powered Profile Builder - Generate professional summaries and project descriptions
- Skill Endorsement Network - Get verified vouches from colleagues
- GitHub Integration - Automatic repository syncing and activity tracking
- Brutalist Design - Clean, professional, no-nonsense UI
- Recruiter Dashboard - Special features for talent discovery
- Portfolio Builder - Drag-and-drop project showcases with AI-generated descriptions
- GitHub Integration - Auto-sync profile data and activity tracking
- Skill Management - Add skills and receive peer endorsements
- Resume AI Review - Get brutally honest feedback from AI-powered senior engineers
- Public Profiles - Custom
cluefind.software/{username}URLs - Leaderboard - Compete and showcase achievements
- Social Links - Connect GitHub, LinkedIn, and other platforms
- Advanced Search - Filter by skills, experience, location
- Candidate Profiles - Complete developer portfolios with verified skills
- GitHub Analytics - Profile quality and activity metrics
- Skill Verification - Peer-endorsed technical skills
- Contact Integration - Direct communication channels
- Framework: Next.js 15.0.3 (App Router)
- Language: TypeScript 5.0
- Styling: Tailwind CSS 3.3 + Custom Brutalist Design System
- UI Components: Radix UI + Custom Components
- Forms: React Hook Form + Zod Validation
- Icons: Lucide React
- Animations: React PowerGlitch + Custom CSS
- Notifications: React Hot Toast
- Runtime: Node.js 18
- Framework: Next.js API Routes
- Database: PostgreSQL
- ORM: Prisma 5.7
- Authentication: Google OAuth 2.0
- File Upload: Multer + Cloudinary
- AI Integration: OpenAI GPT-4
- Image Storage: Cloudinary CDN
- GitHub API: GitHub REST API v3
- AI Services: OpenAI API
- Authentication: Google OAuth
- Containerization: Docker + Multi-stage builds
- CI/CD: GitHub Actions
- Container Registry: Docker Hub
- Hosting: AWS EC2
- Reverse Proxy: Nginx (optional)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Client (Browser) β
ββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ
β HTTPS
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Next.js Application β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Frontend β β API Routes β β Middleware β β
β β (React) β β (Server) β β (Auth) β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
ββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββΌββββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββββ ββββββββββββ ββββββββββββ
β PostgreSQL β β GitHub β βCloudinaryβ
β Database β β API β β CDN β
βββββββββββββββ ββββββββββββ ββββββββββββ
src/
βββ app/ # Next.js App Router
β βββ (dashboard)/ # Protected dashboard routes
β βββ (onboarding)/ # User onboarding flow
β βββ [username]/ # Public profile pages
β βββ api/ # API Routes
β β βββ auth/ # Authentication endpoints
β β βββ ai/ # AI-powered features
β β βββ profiles/ # Profile management
β β βββ onboarding/ # Onboarding APIs
β β βββ upload/ # File upload handling
β βββ leaderboard/ # Leaderboard page
β βββ globals.css # Global styles + Brutalist design
βββ components/ # React Components
β βββ auth/ # Authentication components
β βββ forms/ # Form components
β βββ portfolio/ # Portfolio-specific components
β βββ ui/ # Reusable UI components
βββ lib/ # Utility Libraries
β βββ services/ # Business logic services
β βββ validations/ # Zod schemas
β βββ ai.ts # AI integration
βββ types/ # TypeScript definitions
- User - Authentication, profile info, role (DEVELOPER/RECRUITER UI-facing; stored as STUDENT/RECRUITER)
- Profile - Skills, projects, GitHub data, social links
- Vouch - Skill endorsements with verification
- VouchAction - Daily vouch limits and tracking
- User β Profile (1:1)
- Profile β Vouch (1:N)
- User β Vouch (1:N)
- Node.js 18+
- PostgreSQL 15+
- Docker (optional)
# Clone repository
git clone https://github.com/yourusername/cluefind.git
cd cluefind
# Install dependencies
npm install
# Setup environment
cp .env.example .env
# Edit .env with your configuration
# Setup database
npm run db:generate
npm run db:migrate
# Start development server
npm run devVisit http://localhost:3000
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/cluefind"
# Authentication
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="your-secret-key"
GOOGLE_CLIENT_ID="your-google-client-id"
GOOGLE_CLIENT_SECRET="your-google-client-secret"
# External Services
CLOUDINARY_CLOUD_NAME="your-cloud-name"
CLOUDINARY_API_KEY="your-api-key"
CLOUDINARY_API_SECRET="your-api-secret"
OPENAI_API_KEY="your-openai-key"
GITHUB_TOKEN="your-github-token"# Build image
docker build -t cluefind:latest .
# Run container
docker run -d \
-p 3000:3000 \
--name cluefind \
--env-file .env \
--restart unless-stopped \
cluefind:latestAutomated deployment via GitHub Actions:
- Push to
mainbranch - Build Docker image
- Push to Docker Hub
- Deploy to AWS EC2
- Update running container
POST /api/auth/google- Google OAuthGET /api/auth/me- Current userPOST /api/auth/signout- Sign out
GET /api/profiles- List profiles (with search)GET /api/profiles/[id]- Get profilePUT /api/profiles/[id]/skills- Update skillsPOST /api/profiles/[id]/vouches- Create vouch
POST /api/ai/review- AI resume reviewPOST /api/ai/review-resume- Resume analysis
POST /api/onboarding/check-username- Username availabilityPOST /api/onboarding/generate-profile- AI profile generationPOST /api/onboarding/github-data- GitHub integration
- Buttons: Primary, Secondary, Outline variants with hover effects
- Cards: Brutalist cards with shadows and borders
- Forms: Input fields with brutalist styling
- Typography: Monospace fonts with uppercase styling
- Colors: High contrast palette with accent colors
- Animations: Glitch effects and smooth transitions
- High Contrast - Black borders, bright accents
- Monospace Typography - Technical, developer-focused
- Brutalist Shadows - 3D effect with offset shadows
- Minimal Color Palette - Primary, accent, and muted tones
- Responsive Design - Mobile-first approach
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open Pull Request
- Follow TypeScript best practices
- Use ESLint and Prettier
- Write meaningful commit messages
- Update documentation for new features
MIT License - see LICENSE file for details.