Skip to main content

Overview

This guide provides detailed instructions for setting up the NILVER T.I Portfolio on your local machine, including prerequisites, multiple installation methods, configuration options, and troubleshooting tips.
This is a static HTML/CSS/JavaScript portfolio that requires no build process or package management. All dependencies are loaded via CDN.

Prerequisites

Required

1

Modern Web Browser

Any recent version of:
  • Google Chrome (recommended)
  • Mozilla Firefox
  • Safari
  • Microsoft Edge
Internet Explorer is not supported due to modern JavaScript features used in the portfolio.
2

Text Editor or IDE

Any code editor will work, but these are recommended:
  • Visual Studio Code (with Live Server extension)
  • Sublime Text
  • Atom
  • WebStorm
  • Any text editor
3

Internet Connection

Required for loading CDN resources:
  • Tailwind CSS (styling framework)
  • Font Awesome (icons)
  • Google Fonts (Poppins font family)
Without internet connection, the portfolio will display with limited styling and no icons.

Git

For version control and easy updatesDownload from git-scm.com

Local Server

For proper file loading and testingOptions: Python, Node.js, or PHP

Installation Methods

If you have Git installed, this is the easiest method:
Terminal
git clone <repository-url>
cd "Practica 2"
This method allows you to:
  • Easily pull updates from the repository
  • Track your changes with version control
  • Contribute back to the project

Method 2: Download ZIP

For users without Git:
1

Download

Download the ZIP file from the repository
2

Extract

Extract the contents to your desired location
3

Navigate

Open the extracted folder in your file explorer

Method 3: Manual Setup

Create the project structure manually:
1

Create Directory Structure

Terminal
mkdir -p "Practica 2/css" "Practica 2/js" "Practica 2/img"
cd "Practica 2"
2

Create Files

Create these empty files:
  • index.html
  • css/estilos.css
  • js/main.js
  • js/fondo.js
  • README.md
3

Copy Content

Copy the code from the repository into each file
4

Add Images

Place your project images in the img/ directory

Running the Portfolio

Choose one of these methods to run the portfolio locally:

Option 1: VS Code Live Server (Easiest)

Best for development with auto-reload capability:
1

Install Live Server Extension

  1. Open VS Code
  2. Go to Extensions (Ctrl+Shift+X / Cmd+Shift+X)
  3. Search for “Live Server” by Ritwick Dey
  4. Click Install
2

Open Project

File → Open Folder → Select your portfolio directory
3

Start Server

Right-click on index.html → “Open with Live Server”Or click “Go Live” in the status bar
4

View Portfolio

Browser opens automatically at http://127.0.0.1:5500
Changes auto-refresh when you save files!

Option 2: Python HTTP Server

Built into Python, no installation needed:
# Navigate to project directory
cd "Practica 2"

# Start server
python -m http.server 8000

# Or specify a different port
python -m http.server 3000
Then open your browser to http://localhost:8000
Press Ctrl+C in the terminal to stop the server

Option 3: Node.js HTTP Server

If you have Node.js installed:
1

Install serve (one-time)

Terminal
npm install -g serve
2

Navigate to Project

Terminal
cd "Practica 2"
3

Start Server

Terminal
serve
# Or specify port
serve -p 8000
4

Open Browser

Visit the URL shown in terminal (usually http://localhost:3000)

Option 4: PHP Built-in Server

If you have PHP installed:
Terminal
cd "Practica 2"
php -S localhost:8000
Open browser to http://localhost:8000

Option 5: Direct File Access

Simplest but with limitations:
1

Open File

Double-click index.html or drag it into your browser
2

Verify URL

Browser URL will start with file:///
Limitations of Direct File Access:
  • CORS restrictions may prevent loading local resources
  • Some JavaScript features may not work properly
  • Cannot test form submissions or AJAX requests
  • Relative paths may break
Use a local server for best results!

Project Structure Explained

Practica 2/
├── index.html          # Main HTML file with all sections
├── README.md           # Project documentation
├── css/
│   └── estilos.css    # Custom styles and animations
├── js/
│   ├── fondo.js       # Particle background animation
│   └── main.js        # Interactive features and navigation
└── img/
    ├── home.jpeg      # Hero section background
    ├── redes.jpg      # Social media manager project
    ├── flores.jpg     # Virtual flowers project
    ├── arbol.jpg      # Christmas tree project
    ├── corazon.jpg    # Heart animation project
    └── cicsa.jpg      # CICSA medical center project

File Descriptions

FilePurposeSize
index.htmlMain HTML structure with all content sections~498 lines
css/estilos.cssCustom CSS including animations and color theme~131 lines
js/main.jsInteractive features: navigation, SVG animation, canvas drawing, skills toggle~178 lines
js/fondo.jsCanvas particle animation system~44 lines

Configuration

Customizing Colors

The portfolio uses a red accent theme. To change the primary color:
1

Open estilos.css

Find the color definitions around line 10:
css/estilos.css
.red-accent {
    color: #E50914;
}

.bg-red-accent {
    background-color: #E50914;
}

.border-red-accent {
    border-color: #E50914;
}
2

Replace Color Values

Change #E50914 to your preferred color:
css/estilos.css
.red-accent {
    color: #your-color-here;
}
3

Update Additional Locations

Search for #E50914 in all files and replace:
  • css/estilos.css (multiple locations)
  • js/main.js (line 95, drawing color)
  • js/fondo.js (line 36, particle color)

Updating Personal Information

<!-- Line 29 in index.html -->
<h1 class="text-2xl font-bold red-accent">
    YOUR NAME <span class="text-white">T.I</span>
</h1>

Adding Your Skills

Skills appear in both circular and bar chart views. Update around line 122:
index.html
<div class="skill-item text-center p-6 rounded-lg hover:bg-gray-900 transition cursor-pointer">
    <div class="relative w-32 h-32 mx-auto mb-4">
        <svg width="120" height="120" viewBox="0 0 120 120" class="mx-auto">
            <circle cx="60" cy="60" r="50" fill="none" stroke="#333" stroke-width="8" />
            <circle class="skill-circle" cx="60" cy="60" r="50" 
                    style="--dash-offset: 94.2;" data-value="70" />
            <text x="60" y="65" text-anchor="middle" fill="#fff" font-size="20">70%</text>
        </svg>
    </div>
    <h3 class="text-xl font-semibold mb-2">YOUR SKILL</h3>
    <p class="text-gray-400">Description of your skill</p>
</div>
Calculating dash-offset for skill percentage: For a skill at X%, use formula: 314 - (314 × X / 100) Examples:
  • 90% → 314 - (314 × 0.9) = 31.4
  • 80% → 314 - (314 × 0.8) = 62.8
  • 70% → 314 - (314 × 0.7) = 94.2
  • 60% → 314 - (314 × 0.6) = 125.6
  • 50% → 314 - (314 × 0.5) = 157

Adding Projects

Project cards are located around line 256. Here’s the template:
index.html
<div class="bg-gray-900 rounded-xl overflow-hidden shadow-md hover:shadow-red-700 transition relative">
    <div class="h-48 bg-slate-800 flex items-center justify-center">
        <img src="img/proyecto.jpg" alt="Project Name" class="h-full object-contain" />
    </div>
    <div class="p-6">
        <h3 class="text-xl font-semibold mb-2 text-white">Your Project Title</h3>
        <p class="text-gray-400 mb-4">
            Project description and key features
        </p>
        <button onclick="toggleDetails(this)"
            class="bg-red-accent hover:bg-red-600 text-white px-4 py-2 rounded-md text-sm transition">
            Ver más
        </button>
        <div class="details-container max-h-0 overflow-hidden transition-all duration-500 ease-in-out">
            <div class="mt-3 flex gap-2">
                <a href="https://your-live-demo.com" target="_blank"
                    class="block w-full bg-gray-800 text-white text-center py-2 rounded-md hover:bg-gray-700 transition">
                    🌐 Ver Web
                </a>
                <a href="https://github.com/username/repo" target="_blank"
                    class="block w-full bg-gray-800 text-white text-center py-2 rounded-md hover:bg-gray-700 transition">
                    💻 Ver Código
                </a>
            </div>
        </div>
    </div>
</div>
Update your social media profiles in the footer (line 470):
index.html
<a href="https://www.instagram.com/your-username/" 
   class="hover:text-pink-500 transition" target="_blank" title="Instagram">
    <i class="fab fa-instagram"></i>
</a>
<a href="https://github.com/your-username" 
   class="hover:text-white transition" target="_blank" title="GitHub">
    <i class="fab fa-github"></i>
</a>
<a href="https://www.linkedin.com/in/your-username/" 
   class="hover:text-blue-500 transition" target="_blank" title="LinkedIn">
    <i class="fab fa-linkedin"></i>
</a>

Troubleshooting

Common Issues

Problem: Tailwind CSS not loading from CDNSolutions:
  1. Check your internet connection
  2. Verify the CDN link in index.html line 16:
    <script src="https://cdn.tailwindcss.com"></script>
    
  3. Try opening in incognito/private mode
  4. Clear browser cache
  5. Check browser console (F12) for errors
Problem: Font Awesome icons not loadingSolutions:
  1. Verify Font Awesome CDN link (line 20-21)
  2. Check internet connection
  3. Ensure you’re using valid icon class names
  4. Look for blocked content in browser (mixed content warnings)
Problem: Canvas particles not animatingSolutions:
  1. Ensure js/fondo.js is loaded properly (line 494)
  2. Check browser console for JavaScript errors
  3. Verify canvas element exists (line 63)
  4. Try in a different browser
  5. Make sure scripts have defer attribute
Problem: Clicks, hovers, or animations not workingSolutions:
  1. Verify js/main.js is loading (line 495)
  2. Open browser console (F12) and check for errors
  3. Ensure you’re using a local server, not file:// protocol
  4. Check if JavaScript is enabled in browser
  5. Try hard refresh (Ctrl+Shift+R / Cmd+Shift+R)
Problem: Project images showing as broken linksSolutions:
  1. Verify images exist in img/ directory
  2. Check file names match exactly (case-sensitive)
  3. Ensure proper file extensions (.jpg, .jpeg, .png)
  4. Verify image paths in HTML are correct
  5. Try using absolute paths if relative paths fail
Problem: Hamburger menu not toggling on mobileSolutions:
  1. Check if js/main.js is loaded
  2. Verify button ID matches: mobileMenuButton
  3. Verify menu ID matches: mobileMenu
  4. Test in responsive mode (F12 → Toggle device toolbar)
  5. Check console for JavaScript errors
Problem: Navigation links jump instead of smoothly scrollingSolutions:
  1. Ensure CSS scroll-behavior: smooth is applied (line 5 in estilos.css)
  2. Check that js/main.js scroll function is working (line 26)
  3. Verify section IDs match link hrefs
  4. Try adding scroll-behavior: smooth to html element
  5. Check if browser supports smooth scrolling

Browser Console Debugging

To check for errors:
1

Open Developer Tools

  • Windows/Linux: Press F12 or Ctrl+Shift+I
  • Mac: Press Cmd+Option+I
2

Check Console Tab

Look for red error messages that indicate:
  • Failed to load resources
  • JavaScript errors
  • CORS issues
  • Missing files
3

Network Tab

Check if all resources loaded successfully:
  • All items should have status 200 (green)
  • Red items indicate failed loads
  • Check for blocked resources

File Path Issues

If resources aren’t loading, verify these paths:
index.html
<!-- Line 19: Custom CSS -->
<link rel="stylesheet" href="css/estilos.css" />

<!-- Line 494-495: JavaScript files -->
<script src="js/fondo.js" defer></script>
<script src="js/main.js" defer></script>

<!-- Line 259: Project images -->
<img src="img/redes.jpg" alt="Redes Sociales" class="h-full object-contain" />
All paths are relative to index.html location.

Performance Optimization

Optimize Images

1

Compress Images

Use tools like:
2

Recommended Sizes

  • Project thumbnails: 800×600px, under 200KB
  • Hero background: 1920×1080px, under 500KB
  • Use modern formats: WebP or AVIF when possible
3

Lazy Loading

Add lazy loading for images:
<img src="img/project.jpg" alt="Project" loading="lazy" />

Reduce Particle Count

For better performance on slower devices, reduce particle count in js/fondo.js:
js/fondo.js
// Change from 100 to 50 for better performance
for (let i = 0; i < 50; i++) {
    particles.push({ /* ... */ });
}

Host Resources Locally

For offline usage or faster loading:
1

Download Libraries

  • Tailwind CSS: Download standalone build
  • Font Awesome: Download icon fonts
  • Google Fonts: Use google-webfonts-helper
2

Update Links

Change CDN links to local paths in index.html
Hosting locally increases initial setup complexity but improves offline capability and reduces dependency on external CDNs.

Deployment

Deploy to Netlify

Fastest deployment method:
1

Create Account

Sign up at netlify.com
2

Drag & Drop

Simply drag your project folder onto Netlify’s deploy zone
3

Get URL

Netlify provides a free URL: https://random-name.netlify.app
4

Custom Domain (Optional)

Configure your own domain in site settings

Deploy to Vercel

1

Install Vercel CLI

npm install -g vercel
2

Deploy

cd "Practica 2"
vercel
3

Follow Prompts

Answer setup questions and get your live URL

Deploy to GitHub Pages

1

Create Repository

Create a new GitHub repository
2

Push Code

git init
git add .
git commit -m "Initial commit"
git branch -M main
git remote add origin <your-repo-url>
git push -u origin main
3

Enable GitHub Pages

  • Go to repository Settings
  • Navigate to Pages section
  • Select source: main branch
  • Save and wait for deployment
4

Access Site

Your site will be at: https://username.github.io/repo-name/

Next Steps

Customize Your Portfolio

Update content, colors, and projects with your personal information

Learn the Code

Explore the JavaScript files to understand interactive features

Add New Features

Extend functionality with additional sections or animations

Share Your Work

Deploy online and share your portfolio URL

Additional Resources

For questions or issues, check the project README or open an issue in the GitHub repository.

Build docs developers (and LLMs) love