Skip to content

A dynamic API-powered portfolio platform for developers, ML engineers, and students to manage projects, blogs, and useful links easily.

Notifications You must be signed in to change notification settings

mrravipandee/devspace

Repository files navigation

πŸš€ DevSpace - Dynamic Portfolio Platform for Developers

DevSpace Logo

Create stunning developer portfolios with dynamic APIs. Manage projects, blogs, achievements, and showcase your skills.

Next.js TypeScript MongoDB Tailwind CSS

Live Demo β€’ Documentation β€’ Report Bug β€’ Request Feature

✨ Features

🎨 Modern Portfolio Design

  • Responsive Design - Mobile-first approach with beautiful UI
  • Dark/Light Mode - Seamless theme switching with system preference detection
  • Glassmorphism UI - Modern design with backdrop blur effects
  • Smooth Animations - Framer Motion powered transitions and micro-interactions

πŸ“Š Dynamic Portfolio Management

  • Project Showcase - Display projects with live links, source code, and tech stacks
  • Blog Management - Create and manage technical blog posts with rich content
  • Achievements - Showcase certifications, hackathon wins, and professional milestones
  • Tech Stack - Display your technology skills with proficiency levels
  • Resume Management - Upload and manage your professional resume

πŸ”Œ Powerful API System

  • RESTful APIs - Complete API coverage for all portfolio data
  • Public Endpoints - No authentication required for portfolio data
  • Rate Limiting - Generous limits (1000 req/hour, 100 req/minute)
  • CORS Enabled - Ready for external integrations
  • Real-time Analytics - Track API usage and portfolio views

πŸ› οΈ Developer Experience

  • TypeScript - Full type safety and better development experience
  • SEO Optimized - Comprehensive meta tags, sitemap, and structured data
  • PWA Ready - Progressive Web App capabilities
  • Performance - Optimized with Next.js 15 and Turbopack

πŸ—οΈ Tech Stack

Frontend

  • Next.js 15.4.2 - React framework with App Router
  • TypeScript 5.0 - Type-safe development
  • Tailwind CSS 3.4 - Utility-first CSS framework
  • Framer Motion 12.23 - Animation library
  • Lucide React - Beautiful icons
  • React Icons - Additional icon sets

Backend

  • Next.js API Routes - Serverless API endpoints
  • MongoDB 8.17 - NoSQL database with Mongoose ODM
  • JWT Authentication - Secure user authentication
  • bcryptjs - Password hashing
  • Cloudinary - Image and file storage

Development Tools

  • ESLint - Code linting and formatting
  • PostCSS - CSS processing
  • Autoprefixer - CSS vendor prefixing
  • Turbopack - Fast development builds

πŸš€ Quick Start

Prerequisites

  • Node.js 18.0 or later
  • MongoDB database (local or cloud)
  • Cloudinary account (for image storage)

Installation

  1. Clone the repository

    git clone https://github.com/mrravipandee/devspace.git
    cd devspace
  2. Install dependencies

    npm install
  3. Environment Setup Create a .env.local file in the root directory:

    # Database
    MONGO_URI=mongodb://localhost:27017/devspace
    # or MongoDB Atlas: mongodb+srv://username:password@cluster.mongodb.net/devspace
    
    # JWT Secret
    JWT_SECRET=your-super-secret-jwt-key
    
    # Cloudinary (for image uploads)
    CLOUDINARY_CLOUD_NAME=your-cloud-name
    CLOUDINARY_API_KEY=your-api-key
    CLOUDINARY_API_SECRET=your-api-secret
    
    # Optional: API URL for production
    NEXT_PUBLIC_API_URL=https://devspacee.me
  4. Run the development server

    npm run dev
  5. Open your browser Navigate to http://localhost:3000

πŸ“ Project Structure

devspace/
β”œβ”€β”€ public/                 # Static assets
β”‚   β”œβ”€β”€ fonts/             # Custom fonts
β”‚   └── *.png, *.jpg      # Images and icons
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/              # Next.js App Router
β”‚   β”‚   β”œβ”€β”€ (auth)/       # Authentication pages
β”‚   β”‚   β”œβ”€β”€ (dashboard)/  # Dashboard pages
β”‚   β”‚   β”œβ”€β”€ [username]/   # Dynamic user portfolio pages
β”‚   β”‚   β”œβ”€β”€ api/          # API routes
β”‚   β”‚   └── globals.css   # Global styles
β”‚   β”œβ”€β”€ components/       # Reusable components
β”‚   β”‚   β”œβ”€β”€ LandingPage/  # Landing page components
β”‚   β”‚   └── dashboard/    # Dashboard components
β”‚   β”œβ”€β”€ context/          # React contexts
β”‚   β”œβ”€β”€ lib/              # Utility functions
β”‚   β”œβ”€β”€ models/           # MongoDB schemas
β”‚   └── types/            # TypeScript type definitions
β”œβ”€β”€ tailwind.config.js    # Tailwind configuration
β”œβ”€β”€ next.config.ts        # Next.js configuration
└── package.json          # Dependencies and scripts

πŸ”Œ API Documentation

Base URL

https://devspacee.me/api

Public Endpoints (No Authentication Required)

User Profile

GET /api/{username}/profile

Returns complete user profile information including social links, bio, and location.

Projects

GET /api/{username}/projects

Returns all user projects with live links, source code, and tech stack information.

Blog Posts

GET /api/{username}/blog

Returns published blog posts with content, excerpts, and feature images.

Achievements

GET /api/{username}/achievements

Returns user achievements, certifications, and professional milestones.

Tech Stack

GET /api/{username}/techstack

Returns user's technology skills with proficiency levels.

Contributions

GET /api/{username}/contributions

Returns open source contributions and GitHub activity.

Resume

GET /api/{username}/resume

Returns resume information and download link.

System Endpoints

Health Check

GET /api/health

Check API health status and server information.

Analytics (Authentication Required)

GET /api/analytics?days=30

Get API usage analytics and statistics.

Contact Form

POST /api/contact

Submit contact form messages.

Example Usage

// Fetch user profile
const response = await fetch('https://devspacee.me/api/mrravipandee/profile');
const profile = await response.json();

// Fetch user projects
const projects = await fetch('https://devspacee.me/api/mrravipandee/projects');
const projectData = await projects.json();

// Fetch user achievements
const achievements = await fetch('https://devspacee.me/api/mrravipandee/achievements');
const achievementData = await achievements.json();

🎨 Portfolio Themes

Modern Portfolio (/{username})

  • Full-featured portfolio with all sections
  • Responsive grid layouts
  • Interactive animations
  • Social media integration

Link-in-Bio Style (/{username}/simple)

  • Minimalist design
  • Clean link organization
  • Mobile-optimized
  • Fast loading

Dashboard View (/{username}/user)

  • Analytics and statistics
  • Project management
  • Activity tracking
  • Professional insights

πŸ› οΈ Development

Available Scripts

# Development server with Turbopack
npm run dev

# Production build
npm run build

# Start production server
npm run start

# Lint code
npm run lint

Code Structure

  • Components - Reusable UI components in src/components/
  • Pages - Next.js pages in src/app/
  • API Routes - Serverless functions in src/app/api/
  • Models - MongoDB schemas in src/models/
  • Utilities - Helper functions in src/lib/

Database Models

  • User - User profiles and authentication
  • Project - Project information and metadata
  • Blog - Blog posts and content
  • Achievement - Certifications and milestones
  • TechStack - Technology skills
  • Contribution - Open source contributions
  • Resume - Resume files and metadata
  • Contact - Contact form submissions
  • ApiAnalytics - API usage tracking

πŸš€ Deployment

Vercel (Recommended)

  1. Connect your repository to Vercel
  2. Set environment variables in Vercel dashboard
  3. Deploy automatically on push to main branch

Manual Deployment

  1. Build the application

    npm run build
  2. Start the production server

    npm run start

Environment Variables for Production

MONGO_URI=mongodb+srv://username:password@cluster.mongodb.net/devspace
JWT_SECRET=your-production-jwt-secret
CLOUDINARY_CLOUD_NAME=your-cloud-name
CLOUDINARY_API_KEY=your-api-key
CLOUDINARY_API_SECRET=your-api-secret
NEXT_PUBLIC_API_URL=https://devspacee.me

πŸ“Š SEO Features

  • Meta Tags - Comprehensive meta tags for all pages
  • OpenGraph - Social media sharing optimization
  • Twitter Cards - Twitter sharing optimization
  • Structured Data - JSON-LD for rich snippets
  • Sitemap - Dynamic sitemap generation
  • Robots.txt - Search engine crawling rules
  • PWA Manifest - Progressive Web App support

🀝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

Development Setup

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Next.js Team - For the amazing React framework
  • Vercel - For hosting and deployment platform
  • MongoDB - For the flexible database solution
  • Tailwind CSS - For the utility-first CSS framework
  • Framer Motion - For smooth animations
  • Cloudinary - For image and file storage

πŸ“ž Support

🌟 Star History

Star History Chart


Made with ❀️ by Ravi Pandey

GitHub LinkedIn Twitter

About

A dynamic API-powered portfolio platform for developers, ML engineers, and students to manage projects, blogs, and useful links easily.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages