A modern, responsive Flask-based personal portfolio website showcasing Ryan Thompson's artificial intelligence projects, expertise, and interactive demonstrations.
- Professional Home Page: Personal landing page with AI expertise overview and animated hero section
- Comprehensive About Page: Information about Ryan's educational background, mission, and approach to AI
- AI Demos Section: Placeholder for future interactive AI project demonstrations
- Responsive Design: Optimized for desktop, tablet, and mobile devices with modern CSS Grid and Flexbox
- Smooth Animations: Intersection Observer-based animations and smooth scrolling navigation
- SEO Optimized: Proper meta tags, semantic HTML, and accessibility considerations
- Production Ready: Environment-based configuration and security best practices
ai_website/
โโโ app.py # Main Flask application with route handlers
โโโ requirements.txt # Python dependencies with version pinning
โโโ README.md # Project documentation (this file)
โโโ templates/ # Jinja2 HTML templates
โ โโโ base.html # Base template with navigation and layout
โ โโโ home.html # Home page with hero section
โ โโโ about.html # About page with personal information
โ โโโ demos.html # AI demos page (placeholder)
โ โโโ 404.html # Custom 404 error page
โโโ static/ # Static assets
โโโ css/
โ โโโ style.css # Main stylesheet with CSS custom properties
โโโ js/
โ โโโ main.js # JavaScript for animations and interactions
โโโ images/ # Image assets directory
- Python 3.8 or higher
- pip (Python package manager)
- Virtual environment (recommended)
-
Clone the repository:
git clone <repository-url> cd ai_website
-
Create and activate virtual environment:
# Create virtual environment python -m venv AI # Activate on Linux/Mac source AI/bin/activate # Activate on Windows AI\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Set environment variables (optional):
export FLASK_ENV=development export SECRET_KEY=your-secret-key-here
-
Run the development server:
python app.py
-
Open your browser and navigate to:
http://localhost:5000
For production deployment using Gunicorn:
# Install production dependencies
pip install -r requirements.txt
# Set production environment variables
export FLASK_ENV=production
export SECRET_KEY=your-secure-secret-key
# Run with Gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:app- Flask Application: Follows application factory pattern with configuration class
- Templates: Use Jinja2 templating with template inheritance
- Static Assets: Organized CSS and JavaScript with modern best practices
- Error Handling: Custom error pages and graceful error handling
- New Pages: Add route handlers in
app.pyand corresponding templates - Styling: Extend
static/css/style.cssusing CSS custom properties - JavaScript: Add functionality to
static/js/main.jsusing the modular structure - AI Demos: Use the
AIDemoutility class for consistent demo interfaces
The website uses CSS custom properties for easy theming:
:root {
--primary-color: #3b82f6; /* Primary blue */
--secondary-color: #8b5cf6; /* Secondary purple */
--accent-color: #f59e0b; /* Accent gold */
--text-primary: #1f2937; /* Dark text */
--text-secondary: #6b7280; /* Light text */
--bg-primary: #ffffff; /* Primary background */
--bg-secondary: #f8fafc; /* Secondary background */
}- Create the HTML structure in the appropriate template
- Add corresponding CSS styles using the existing class naming conventions
- Include any necessary JavaScript functionality in the main module
- Flask 3.0.0: Lightweight Python web framework
- Werkzeug: WSGI toolkit for security and utilities
- Gunicorn: Production WSGI server
- HTML5: Semantic markup with accessibility considerations
- CSS3: Modern styling with Grid, Flexbox, and custom properties
- JavaScript (ES6+): Modern JavaScript with modules and classes
- Font Awesome: Icon library for UI elements
- Inter Font: Professional typography from Google Fonts
- Jinja2: Template engine for dynamic content
- Intersection Observer API: For scroll-based animations
- CSS Grid & Flexbox: Modern layout systems
/- Home page with hero section and AI expertise overview/about- About page with personal background, education, and mission/demos- AI demos page (currently placeholder with planned features)/404- Custom error page for missing routes
Current Issue: NVIDIA driver/library version mismatch detected
- Status: GPU training temporarily unavailable
- Cause: Kernel driver (580.65.06) != Library version (580.95.05)
- Solution: REBOOT REQUIRED to load updated kernel modules
# Check GPU status after reboot
python3 nvidia_diagnostic.py
# Or manually check
nvidia-smi # Should work without errors after rebootSee GPU_SETUP.md for detailed GPU configuration and troubleshooting.
- Interactive AI demonstrations (image classification, text generation)
- Blog section for AI articles and tutorials
- Contact form with email integration
- Project portfolio with GitHub integration
- Dark/light theme toggle
- Performance monitoring and analytics
- Add comprehensive unit tests
- Implement caching strategies
- Add database integration for dynamic content
- Set up CI/CD pipeline
- Add Progressive Web App (PWA) features
This project is part of Ryan Thompson's personal portfolio. All rights reserved.
- Email: rt75272@gmail.com
- GitHub: rt75272
- LinkedIn: ryan42-p42-t42
Built with โค๏ธ by Ryan Thompson - AI Developer & Technology Enthusiast