Skip to content

VforVitorio/Portfolio

Repository files navigation

πŸš€ VΓ­ctor Vega Sobral - AI Portfolio

Modern, responsive portfolio built with Reflex framework showcasing AI & Intelligent Systems expertise

Portfolio Preview Reflex Python

🌐 Live Page: www.victorvegasobral.com


⚠️ IMPORTANT: Build Requirements

Warning

WSL/Linux Required for Build: The build process (build.sh) must be executed in a Linux environment (WSL, Linux, or CI/CD). Windows PowerShell/CMD will not work properly due to Unix-specific commands.


πŸ“‹ Project Overview

Professional portfolio for VΓ­ctor Vega Sobral - 4th-year Intelligent Systems Engineering student and AI Software Engineer, showcasing expertise in Deep Learning, AI solutions, and Formula 1 applications.

🎯 Key Features

  • βœ… 100% Static: No backend, no websockets - pure frontend
  • πŸ“± Fully Responsive: Optimized for mobile, tablet, and desktop
  • πŸš€ Fast Loading: Optimized assets and minimal dependencies
  • 🎨 Modern Design: Clean UI with smooth animations
  • πŸ”§ Easy Deploy: Automated Vercel deployment

πŸ—οΈ Architecture Diagram

graph TB
    A[Portfolio.py - Main App] --> B[Views]
    A --> C[Components]
    A --> D[Utils]
    A --> E[Assets]

    B --> B1[index.py - Home Page]

    C --> C1[hero.py - Landing Section]
    C --> C2[about.py - Bio & Skills]
    C --> C3[projects.py - Project Showcase]
    C --> C4[contact.py - Contact Info]
    C --> C5[navigation.py - Header Nav]
    C --> C6[footer.py - Site Footer]

    D --> D1[styles.py - Design System]

    E --> E1[favicon.ico]
    E --> E2[CV.pdf]

    F[rxconfig.py] --> A
    F --> F1[frontend_only: true]
    F --> F2[no backend/websockets]

    G[build.sh] --> H[Vercel Deploy]
    G --> I[Static Export]

    style A fill:#a78bfa
    style F fill:#ef4444
    style G fill:#10b981
Loading

πŸ› οΈ Tech Stack

Technology Version Purpose
Reflex 0.8.3 Frontend framework
Python 3.11+ Backend language
Vercel Latest Hosting platform
GitHub Latest Version control & CI/CD

πŸ“ Project Structure

Portfolio/
β”œβ”€β”€ πŸ“ Portfolio/                    # Main application package
β”‚   β”œβ”€β”€ πŸ“„ Portfolio.py              # Main app entry point
β”‚   β”œβ”€β”€ πŸ“ components/               # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ 🎯 hero.py               # Landing hero section
β”‚   β”‚   β”œβ”€β”€ πŸ‘€ about.py              # About me section
β”‚   β”‚   β”œβ”€β”€ πŸš€ projects.py           # Projects showcase
β”‚   β”‚   β”œβ”€β”€ πŸ“ž contact.py            # Contact information
β”‚   β”‚   β”œβ”€β”€ 🧭 navigation.py         # Header navigation
β”‚   β”‚   β”œβ”€β”€ 🦢 footer.py             # Site footer
β”‚   β”‚   └── πŸ“ blog.py               # Blog section
β”‚   β”œβ”€β”€ πŸ“ views/                    # Page layouts
β”‚   β”‚   └── 🏠 index.py              # Home page
β”‚   └── πŸ“ utils/                    # Utilities & styles
β”‚       └── 🎨 styles.py             # Design system
β”œβ”€β”€ πŸ“ assets/                       # Static assets
β”‚   β”œβ”€β”€ πŸ–ΌοΈ favicon.ico               # Site icon
β”‚   └── πŸ“„ Victor_Vega_Sobral_CV_Public.pdf # Public resume
β”œβ”€β”€ 🌍 .env                          # Environment variables (not in git)
β”œβ”€β”€ πŸ“ .env.example                  # Environment template
β”œβ”€β”€ 🐳 Dockerfile                    # Docker configuration
β”œβ”€β”€ 🚫 .dockerignore                 # Docker ignore file
β”œβ”€β”€ βš™οΈ rxconfig.py                   # Reflex configuration
β”œβ”€β”€ πŸ“‹ requirements.txt              # Python dependencies
β”œβ”€β”€ πŸ”¨ build.sh                      # Build & deploy script
└── πŸ“– README.md                     # Project documentation

πŸš€ Quick Start

πŸ“‹ Prerequisites

  • Python 3.11+
  • Git
  • WSL/Linux (for building)
  • Docker (optional)

βš™οΈ Environment Setup

  1. Clone Repository
git clone https://github.com/VforVitorio/Portfolio.git
cd Portfolio
  1. Configure Environment Variables
# Copy the example file
cp .env.example .env

# Edit .env and add your email
# EMAIL_ADDRESS=your_email@example.com

πŸ”§ Local Development

  1. Install Dependencies
pip install -r requirements.txt
  1. Run Development Server
reflex run
  1. Access Application

🐳 Docker Development

  1. Build Docker Image
docker build -t portfolio .
  1. Run Container
# With environment variables
docker run -p 3000:3000 \
  -e EMAIL_ADDRESS=your_email@example.com \
  portfolio

# Or with .env file
docker run -p 3000:3000 \
  --env-file .env \
  portfolio
  1. Docker Compose (Optional)
# docker-compose.yml
version: "3.8"
services:
  portfolio:
    build: .
    ports:
      - "3000:3000"
    env_file:
      - .env

πŸ—οΈ Production Build

[!WARNING] > Must be run in WSL/Linux environment

chmod +x build.sh
./build.sh

πŸ”§ Configuration

🌍 Environment Variables

Create a .env file in the root directory:

# Copy from example
cp .env.example .env

Required Variables:

EMAIL_ADDRESS=your_email@example.com

Important

The .env file is ignored by git for security. Make sure to configure it in your deployment environment.

Static Configuration (rxconfig.py)

config = rx.Config(
    app_name="Portfolio",
    env=rx.Env.PROD,
    frontend_only=True,    # No backend/websockets
    api_url="",           # No API needed
    backend_port=None,    # No backend port
)

Responsive Breakpoints

  • πŸ“± Mobile: < 768px - Vertical layout, centered content
  • πŸ’» Desktop: β‰₯ 768px - Horizontal layout, optimized spacing

🌐 Deployment

πŸš€ Vercel (Recommended)

  1. Setup Environment Variables in Vercel:

    • Go to Vercel Dashboard β†’ Project Settings β†’ Environment Variables
    • Add: EMAIL_ADDRESS = your_email@example.com
  2. Auto Deployment:

    • Push to main branch
    • Vercel automatically builds and deploys
    • Changes live in ~2 minutes

🐳 Docker Deployment

  1. Build Production Image:
docker build -t portfolio-prod .
  1. Deploy to Container Platform:
# Example: Deploy to production with environment variables
docker run -d \
  -p 80:3000 \
  -e EMAIL_ADDRESS=your_email@example.com \
  --name portfolio-app \
  portfolio-prod

πŸ”§ Manual Deployment

[!WARNING] > Requires WSL/Linux environment

# Generate static files
./build.sh

# Commit and push
git add .
git commit -m "Deploy: Update portfolio"
git push origin main

☁️ Other Platforms

Netlify:

  • Connect GitHub repo
  • Build command: ./build.sh
  • Publish directory: public
  • Environment variables: Add EMAIL_ADDRESS

GitHub Pages:

  • Enable GitHub Actions
  • Use build workflow
  • Set environment secrets

🎨 Features Showcase

πŸ“± Fully Responsive Design

  • Hero section adapts to mobile (vertical) and desktop (horizontal)
  • Projects grid: 1 column (mobile) β†’ 2 columns (tablet) β†’ 3 columns (desktop)
  • Navigation collapses on mobile devices

🎯 AI & Tech Focus

  • Deep Learning certifications highlighted
  • Formula 1 AI projects featured
  • Technical skills prominently displayed

🀝 Contributing

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open Pull Request

πŸ“„ License

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


πŸ‘¨β€πŸ’» Author

VΓ­ctor Vega Sobral

  • πŸŽ“ Intelligent Systems Engineering Student
  • πŸ€– AI Software Engineer
  • 🏎️ Formula 1 AI Enthusiast

🀝 Connect with me

Portfolio LinkedIn Medium GitHub


⭐ Star this repo if you found it helpful!

Made with Reflex

About

My personal portfolio, with contact, experience, and proyects section. Webpage made entirely with Reflex

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published