Skip to content

FolioForge – This project has been developed as a personal portfolio website using Vue.js and is hosted via GitHub Pages. The repository also provides ready-to-use templates for anyone who wants to quickly create and customize their own portfolio with ease.

License

Notifications You must be signed in to change notification settings

samyaroy/FolioForge-vue-portfolio-website

Repository files navigation

My Portfolio - Vue.js Application

A modern, responsive portfolio website built with Vue.js 3, Vuetify (Material Design), and Tailwind CSS. Features conditional layout rendering, comprehensive sections for education, experience, projects, publications, workshops, and beautiful UI components.

🚀 Technologies Used

  • Vue.js 3 - Progressive JavaScript framework with Composition API
  • Vue Router 4 - Official router for Vue.js applications
  • Vuetify 3 - Material Design component framework for Vue.js
  • Tailwind CSS 3 - Utility-first CSS framework
  • Vite - Next-generation frontend build tool
  • Material Design Icons - Icon library for Material Design

📁 File Structure

samyabrata.github.io/
├── CNAME                           # Custom domain configuration
├── public/                         # Static assets
│   ├── CNAME                       # Custom domain configuration
│   ├── icons/                      # Icon assets
│   │   ├── GS.png                  # Google Scholar icon
│   │   └── RG.png                  # ResearchGate icon
│   ├── profile-icon.png            # Profile icon
│   ├── SamyabrataRoy.jpeg          # Profile image
│   ├── SamyabrataRoy2.jpg          # Alternative profile image
│   └── vite.svg                    # Vite logo
├── src/                            # Source code directory
│   ├── assets/                     # Static assets
│   │   └── vue.svg                 # Vue.js logo
│   ├── components/                 # Reusable Vue components
│   │   ├── Header.vue              # Navigation header component
│   │   └── Footer.vue              # Footer component with links
│   ├── router/                     # Vue Router configuration
│   │   └── index.js                # Route definitions and router setup
│   ├── views/                      # Page components (route views)
│   │   ├── Cocurricular/           # Co-curricular activities section
│   │   │   ├── components/         # Co-curricular components
│   │   │   │   ├── Leadership.vue  # Leadership experience component
│   │   │   │   └── Volunteering.vue # Volunteering experience component
│   │   │   └── Index.vue           # Co-curricular main page
│   │   ├── Contact.vue             # Contact page with form
│   │   ├── Home/                   # Home section with multiple components
│   │   │   ├── components/         # Home page components
│   │   │   │   ├── awards/         # Awards and recognition section
│   │   │   │   │   ├── components/ # Award components
│   │   │   │   │   │   └── AwardCard.vue # Individual award card
│   │   │   │   │   └── Index.vue   # Awards main page
│   │   │   │   ├── education/      # Education section
│   │   │   │   │   ├── components/ # Education components
│   │   │   │   │   │   └── EducationMilestone.vue # Education milestone
│   │   │   │   │   └── Index.vue   # Education main page
│   │   │   │   ├── experience/     # Work experience section
│   │   │   │   │   ├── components/ # Experience components
│   │   │   │   │   │   └── TimelineComponent.vue # Experience timeline
│   │   │   │   │   └── Index.vue   # Experience main page
│   │   │   │   ├── HeroSection.vue # Hero section component
│   │   │   │   └── researchInterests/ # Research interests section
│   │   │   │       ├── components/ # Research components
│   │   │   │       │   └── Card.vue # Research interest card
│   │   │   │       └── Index.vue   # Research interests main page
│   │   │   └── index.vue           # Home main page
│   │   ├── ProjectsPublications/   # Projects and publications section
│   │   │   ├── components/         # Projects/Publications components
│   │   │   │   ├── ArticlesTab.vue # Articles tab component
│   │   │   │   ├── ProjectTab/     # Project tab components
│   │   │   │   │   ├── components/ # Project components
│   │   │   │   │   │   ├── ResearchProjects.vue # Research projects
│   │   │   │   │   │   └── TechnicalProjects.vue # Technical projects
│   │   │   │   │   └── Index.vue   # Project tab main page
│   │   │   │   └── PublicationsTab.vue # Publications tab component
│   │   │   └── Index.vue           # Projects/Publications main page
│   │   └── WorkshopsAttended/      # Workshops and bootcamps section
│   │       ├── components/         # Workshop components
│   │       │   ├── BootcampCard.vue # Bootcamp card component
│   │       │   └── WorkshopCard.vue # Workshop card component
│   │       └── Index.vue           # Workshops main page
│   ├── App.vue                     # Root component with conditional layout
│   ├── main.js                     # Application entry point
│   └── style.css                   # Global styles with Tailwind directives
├── index.html                      # HTML template
├── package.json                    # Dependencies and scripts
├── package-lock.json               # Locked dependency versions
├── postcss.config.js               # PostCSS configuration
├── tailwind.config.js              # Tailwind CSS configuration
├── vite.config.js                  # Vite build configuration
└── README.md                       # Project documentation

🏗️ Architecture Overview

Core Components

App.vue - Root Component

  • Purpose: Main application wrapper with conditional layout logic
  • Key Features:
    • Conditional rendering of Header and Footer based on current route
    • Header and Footer are hidden on HomePage (/) for a clean landing experience
    • Uses Vue Router's useRoute() to determine current page
    • Implements flexbox layout for proper footer positioning

Router Configuration (src/router/index.js)

  • Routes:
    • / - HomePage (Home/index.vue)
    • /contact - Contact page (Contact.vue)
    • /projects-publications - Projects and Publications page
    • /workshops - Workshops and Bootcamps page
    • /cocurricular - Co-curricular activities page
  • Features: Lazy loading for all pages except home

Page Components (src/views/)

Home/index.vue - Landing Page

  • Layout: Full-screen hero section without header/footer
  • Features:
    • Hero section with call-to-action buttons
    • Education milestones with credentials
    • Work experience timeline
    • Research interests showcase
    • Awards and recognition section
    • Responsive design with Tailwind CSS

Contact.vue - Contact Page

  • Layout: Standard page with header and footer
  • Features:
    • Enhanced contact form with validation
    • Professional contact information display
    • Social media links (LinkedIn, GitHub, etc.)
    • Academic profiles (Google Scholar, ResearchGate)
    • Form submission handling with user feedback

ProjectsPublications/Index.vue - Projects & Publications

  • Layout: Tabbed interface with header and footer
  • Features:
    • Research projects showcase
    • Technical projects portfolio
    • Publications and articles listing
    • Interactive project cards with links
    • Filtering and categorization

WorkshopsAttended/Index.vue - Workshops & Bootcamps

  • Layout: Grid layout with header and footer
  • Features:
    • Workshop participation history
    • Bootcamp completions and certifications
    • Interactive workshop cards
    • Bootcamp cards with credentials
    • Filtering by type and date

Cocurricular/Index.vue - Co-curricular Activities

  • Layout: Sectioned layout with header and footer
  • Features:
    • Leadership experience showcase
    • Volunteering activities
    • Community involvement
    • Skills development activities

Reusable Components (src/components/)

Header.vue - Navigation Header

  • Features:
    • Material Design app bar with Vuetify
    • Responsive navigation with mobile hamburger menu
    • Active route highlighting
    • Brand logo with router link
    • Mobile navigation drawer

Footer.vue - Footer Component

  • Features:
    • Contact information
    • Quick navigation links
    • Social media buttons
    • Academic profile links
    • Copyright and legal links
    • Responsive grid layout

Specialized Components

Education Components

  • EducationMilestone.vue: Individual education milestone with credentials
  • Index.vue: Education timeline with degree information

Experience Components

  • TimelineComponent.vue: Work experience timeline with detailed information
  • Index.vue: Experience showcase with company details

Awards Components

  • AwardCard.vue: Individual award/recognition card
  • Index.vue: Awards and honors showcase

Research Components

  • Card.vue: Research interest card with details
  • Index.vue: Research areas and specializations

Project Components

  • ResearchProjects.vue: Academic and research projects
  • TechnicalProjects.vue: Software and technical projects
  • ArticlesTab.vue: Published articles and papers
  • PublicationsTab.vue: Academic publications

Workshop Components

  • WorkshopCard.vue: Workshop participation cards
  • BootcampCard.vue: Bootcamp completion cards with credentials

Co-curricular Components

  • Leadership.vue: Leadership experience showcase
  • Volunteering.vue: Volunteering activities and community service

🎨 Styling Architecture

Tailwind CSS Integration

  • Utility Classes: Used throughout components for spacing, colors, typography
  • Responsive Design: Mobile-first approach with responsive prefixes
  • Custom Configuration: Configured in tailwind.config.js

Vuetify Material Design

  • Components: Buttons, cards, forms, navigation, icons
  • Theme: Material Design color palette and typography
  • Icons: Material Design Icons (MDI) integration

CSS Organization

  • Global Styles: src/style.css with Tailwind directives
  • Component Styles: Scoped styles in individual components
  • PostCSS: Configured for Tailwind and Autoprefixer

🔧 Configuration Files

Vite Configuration (vite.config.js)

  • Vue Plugin: Vue.js support
  • Path Aliases: @ maps to src/ directory
  • Base URL: Configured for deployment

Tailwind Configuration (tailwind.config.js)

  • Content Paths: Scans Vue files for utility classes
  • Theme: Customizable design tokens
  • Plugins: Extensible with additional plugins

PostCSS Configuration (postcss.config.js)

  • Tailwind CSS: CSS processing
  • Autoprefixer: Vendor prefix automation

🚀 Development & Deployment

Available Scripts

npm run dev          # Start development server
npm run build        # Build for production
npm run preview      # Preview production build
npm run deploy       # Deploy to GitHub Pages

Development Server

  • URL: http://localhost:5173 (or next available port)
  • Hot Reload: Automatic browser refresh on file changes
  • Error Overlay: In-browser error display

Build Process

  • Vite: Fast build tool with ES modules
  • Optimization: Code splitting and tree shaking
  • Output: Optimized static files in dist/ directory

🎯 Key Features

Comprehensive Portfolio Sections

  • Education: Academic credentials and milestones
  • Experience: Professional work history with detailed timelines
  • Projects: Research and technical project showcases
  • Publications: Academic papers and articles
  • Workshops: Training and bootcamp participation
  • Co-curricular: Leadership and community involvement
  • Awards: Recognition and honors

Enhanced Contact System

  • Professional Contact: Multiple contact methods
  • Academic Profiles: Google Scholar and ResearchGate integration
  • Social Media: LinkedIn, GitHub, and other professional networks
  • Form Validation: Robust contact form with user feedback

Bootcamp Integration

  • Certification Display: Showcase completed bootcamps and certifications
  • Credential Management: Organized display of professional credentials
  • Interactive Cards: Detailed bootcamp information with links
  • Filtering System: Categorize by type, date, and relevance

Conditional Layout System

  • HomePage: Clean, full-screen experience without header/footer
  • Other Pages: Standard layout with navigation and footer
  • Dynamic Rendering: Based on current route

Responsive Design

  • Mobile-First: Optimized for all screen sizes
  • Breakpoints: Tailwind's responsive utilities
  • Mobile Menu: Hamburger menu with navigation drawer

Modern UI/UX

  • Material Design: Consistent design language
  • Smooth Transitions: Hover effects and animations
  • Accessibility: Semantic HTML and ARIA attributes

Form Handling

  • Validation: Vuetify form validation rules
  • User Feedback: Loading states and success messages
  • Responsive Forms: Mobile-friendly input fields

🔄 State Management

Reactive Data

  • Composition API: Modern Vue.js reactivity system
  • Route-Based Logic: Dynamic layout based on current route
  • Form State: Reactive form data and validation

Component Communication

  • Props: Parent-to-child data flow
  • Events: Child-to-parent communication
  • Router: Page navigation and state

📱 Browser Support

  • Modern Browsers: Chrome, Firefox, Safari, Edge
  • ES6+ Features: Arrow functions, destructuring, modules
  • CSS Grid/Flexbox: Modern layout techniques
  • Progressive Enhancement: Graceful degradation for older browsers

🛠️ Customization

Theming

  • Vuetify Theme: Customizable Material Design theme
  • Tailwind Colors: Extendable color palette
  • CSS Variables: Dynamic theming support

Content Management

  • Component-Based: Easy to modify individual sections
  • Reusable Components: Consistent design patterns
  • Configuration: Centralized settings in config files

Credential Management

  • Education: Easy to add new degrees and certifications
  • Experience: Simple timeline updates
  • Projects: Modular project showcase system
  • Workshops: Flexible bootcamp and training display

📋 Planned Updates & Improvements

Upcoming Enhancements

The following features and improvements are planned for future development:

1. Enhanced Credential Management

  • Education Credentials: Add detailed degree information, GPA, honors, and academic achievements
  • Professional Certifications: Display industry certifications with verification links
  • Skills Credentials: Showcase technical skills with proficiency levels and certifications
  • Awards & Recognition: Expand awards section with detailed descriptions and verification
  • Experience Credentials: Add company verification, role descriptions, and achievements

2. Contact Page Redesign

  • Multi-Channel Contact: Integrate direct messaging, email, and social media platforms
  • Contact Form Enhancement: Add file upload capabilities for resumes and portfolios
  • Professional Networking: Integrate LinkedIn messaging and professional networking features
  • Academic Collaboration: Add research collaboration request forms
  • Response Tracking: Implement contact form submission tracking and auto-responses
  • Calendar Integration: Add scheduling capabilities for meetings and consultations

3. Workshop & Bootcamp Section Expansion

  • Bootcamp Showcase: Dedicated section for bootcamp completions with certificates
  • Interactive Learning Path: Visual representation of learning journey and skill progression
  • Certification Verification: Direct links to verify certifications and credentials
  • Skill Mapping: Connect bootcamp learnings to specific skills and projects
  • Progress Tracking: Show learning progress and ongoing education
  • Recommendation System: Suggest relevant workshops and bootcamps based on interests

4. Comprehensive Credential Integration

  • Education Credentials: Add detailed degree information, GPA, honors, and academic achievements to all education items
  • Experience Credentials: Add company verification, role descriptions, and achievements to all experience items
  • Project Credentials: Add detailed project descriptions, technologies used, and outcomes to all project items
  • Publication Credentials: Add detailed publication information, citations, and impact metrics to all publication items
  • Workshop Credentials: Add detailed workshop information, certificates, and learning outcomes to all workshop items
  • Certification Credentials: Add detailed certification information, verification links, and validity periods to all certification items

5. Speaker Workshops Section

  • New Header Tab: Add "Speaker Workshops" tab in the main navigation header
  • Speaker Workshop Showcase: Dedicated section to display workshops where you have participated as a speaker
  • Workshop Details: Include workshop title, organization, date, audience size, and presentation topics
  • Presentation Materials: Links to slides, recordings, or additional resources from speaking engagements
  • Speaking Portfolio: Comprehensive showcase of public speaking and presentation experience
  • Impact Metrics: Track audience engagement, feedback, and speaking opportunities generated

Implementation Timeline

Phase 1: Credential Enhancement

  • Add detailed education credentials with verification
  • Implement professional certification display
  • Create skills assessment and credential system
  • Enhance awards and recognition showcase

Phase 2: Contact System Overhaul

  • Redesign contact page with modern UI/UX
  • Implement multi-channel contact integration
  • Add file upload and collaboration features
  • Integrate calendar and scheduling system

Phase 3: Workshop & Bootcamp Integration

  • Create dedicated bootcamp showcase section
  • Implement interactive learning path visualization
  • Add certification verification system
  • Develop skill mapping and progress tracking

Phase 4: Comprehensive Credential Integration

  • Add detailed credentials to all education items
  • Enhance experience items with detailed credentials
  • Add comprehensive project credentials and outcomes
  • Implement detailed publication credentials and metrics
  • Add workshop credentials and learning outcomes
  • Enhance certification items with verification and validity

Phase 5: Speaker Workshops Section

  • Add "Speaker Workshops" tab to main navigation header
  • Create speaker workshop showcase page
  • Implement workshop details and presentation materials
  • Add speaking portfolio and impact metrics
  • Integrate with existing workshop system
  • Add responsive design for speaker workshop content

Technical Considerations

Credential Management

  • Data Structure: Design scalable data models for credentials
  • Verification System: Implement secure verification mechanisms
  • Update Workflow: Create easy-to-use admin interface for credential updates
  • Performance: Optimize credential loading and display

Contact System

  • Security: Implement secure form handling and data protection
  • Integration: Connect with external services (email, messaging, calendar)
  • User Experience: Ensure smooth and intuitive contact flow
  • Analytics: Track contact form usage and success rates

Workshop Integration

  • Data Management: Organize workshop and bootcamp data efficiently
  • Visual Design: Create engaging visual representations of learning journey
  • Interactivity: Implement interactive elements for better user engagement
  • Mobile Responsiveness: Ensure optimal experience across all devices

Credential Integration

  • Data Structure: Design comprehensive credential data models for all content types
  • Verification System: Implement secure verification mechanisms for all credentials
  • Update Workflow: Create easy-to-use admin interface for credential updates across all sections
  • Performance: Optimize credential loading and display for all content items
  • Consistency: Ensure uniform credential display across all pages and sections

Speaker Workshops

  • Navigation Integration: Seamlessly integrate new tab into existing header navigation
  • Content Management: Organize speaker workshop data with presentation materials
  • Media Integration: Handle slides, recordings, and presentation resources
  • Impact Tracking: Implement metrics and feedback collection for speaking engagements
  • Responsive Design: Ensure optimal display across all devices and screen sizes

📄 License

This project is open source and available under the MIT License.


Built with ❤️ using Vue.js, Vuetify, and Tailwind CSS

About

FolioForge – This project has been developed as a personal portfolio website using Vue.js and is hosted via GitHub Pages. The repository also provides ready-to-use templates for anyone who wants to quickly create and customize their own portfolio with ease.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •