Modern, responsive portfolio built with Reflex framework showcasing AI & Intelligent Systems expertise
π Live Page: www.victorvegasobral.com
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.
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.
- β 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
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
| Technology | Version | Purpose |
|---|---|---|
| Reflex | 0.8.3 | Frontend framework |
| Python | 3.11+ | Backend language |
| Vercel | Latest | Hosting platform |
| GitHub | Latest | Version control & CI/CD |
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
- Python 3.11+
- Git
- WSL/Linux (for building)
- Docker (optional)
- Clone Repository
git clone https://github.com/VforVitorio/Portfolio.git
cd Portfolio- Configure Environment Variables
# Copy the example file
cp .env.example .env
# Edit .env and add your email
# EMAIL_ADDRESS=your_email@example.com- Install Dependencies
pip install -r requirements.txt- Run Development Server
reflex run- Access Application
- π Frontend: http://localhost:3000
- π§ Backend: http://localhost:8000 (if needed)
- Build Docker Image
docker build -t portfolio .- 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- Docker Compose (Optional)
# docker-compose.yml
version: "3.8"
services:
portfolio:
build: .
ports:
- "3000:3000"
env_file:
- .env[!WARNING] > Must be run in WSL/Linux environment
chmod +x build.sh
./build.shCreate a .env file in the root directory:
# Copy from example
cp .env.example .envRequired Variables:
EMAIL_ADDRESS=your_email@example.comImportant
The .env file is ignored by git for security. Make sure to configure it in your deployment environment.
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
)- π± Mobile:
< 768px- Vertical layout, centered content - π» Desktop:
β₯ 768px- Horizontal layout, optimized spacing
-
Setup Environment Variables in Vercel:
- Go to Vercel Dashboard β Project Settings β Environment Variables
- Add:
EMAIL_ADDRESS=your_email@example.com
-
Auto Deployment:
- Push to
mainbranch - Vercel automatically builds and deploys
- Changes live in ~2 minutes
- Push to
- Build Production Image:
docker build -t portfolio-prod .- 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[!WARNING] > Requires WSL/Linux environment
# Generate static files
./build.sh
# Commit and push
git add .
git commit -m "Deploy: Update portfolio"
git push origin mainNetlify:
- 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
- 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
- Deep Learning certifications highlighted
- Formula 1 AI projects featured
- Technical skills prominently displayed
- 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
This project is licensed under the MIT License - see the LICENSE file for details.
VΓctor Vega Sobral
- π Intelligent Systems Engineering Student
- π€ AI Software Engineer
- ποΈ Formula 1 AI Enthusiast
π€ Connect with me