developer-portfolios/app.py

149 lines
7.8 KiB
Python
Raw Normal View History

2025-03-31 20:26:11 +00:00
import os
import logging
from flask import Flask, render_template
# Configure logging
logging.basicConfig(level=logging.DEBUG)
# Create the app
app = Flask(__name__)
app.secret_key = os.environ.get("SESSION_SECRET")
@app.route('/')
def index():
# Project data
projects = [
{
"title": "E-Commerce Platform",
"image": "https://cdn.jsdelivr.net/gh/devicons/devicon/icons/react/react-original.svg",
"description": "A full-featured online shopping platform built with React and Node.js, featuring cart functionality, payment processing, and user accounts.",
"link": "https://github.com/jonathanpeters"
},
{
"title": "Weather Dashboard",
"image": "https://cdn.jsdelivr.net/gh/devicons/devicon/icons/javascript/javascript-original.svg",
"description": "Interactive weather application displaying forecast data with dynamic visualizations using D3.js and the OpenWeather API.",
"link": "https://github.com/jonathanpeters"
},
{
"title": "Portfolio Generator",
"image": "https://cdn.jsdelivr.net/gh/devicons/devicon/icons/nodejs/nodejs-original.svg",
"description": "Node.js application that generates personalized portfolio websites based on user input and customizable templates.",
"link": "https://github.com/jonathanpeters"
},
{
"title": "Task Management System",
"image": "https://cdn.jsdelivr.net/gh/devicons/devicon/icons/react/react-original.svg",
"description": "Kanban-style task management application with drag-and-drop functionality, built with React and a Express.js backend.",
"link": "https://github.com/jonathanpeters"
},
{
"title": "Recipe Finder",
"image": "https://cdn.jsdelivr.net/gh/devicons/devicon/icons/javascript/javascript-original.svg",
"description": "Web application that helps users discover recipes based on available ingredients, dietary restrictions, and meal preferences.",
"link": "https://github.com/jonathanpeters"
},
{
"title": "Fitness Tracker",
"image": "https://cdn.jsdelivr.net/gh/devicons/devicon/icons/nodejs/nodejs-original.svg",
"description": "Application to track workout routines, exercise progress, and fitness goals with data visualization using D3.js.",
"link": "https://github.com/jonathanpeters"
},
{
"title": "Social Media Dashboard",
"image": "https://cdn.jsdelivr.net/gh/devicons/devicon/icons/react/react-original.svg",
"description": "Consolidated dashboard for managing multiple social media accounts with analytics and scheduled posting features.",
"link": "https://github.com/jonathanpeters"
},
{
"title": "Budget Planner",
"image": "https://cdn.jsdelivr.net/gh/devicons/devicon/icons/javascript/javascript-original.svg",
"description": "Financial planning tool with expense tracking, budget creation, and visual reports using Chart.js.",
"link": "https://github.com/jonathanpeters"
},
{
"title": "Real Estate Listings",
"image": "https://cdn.jsdelivr.net/gh/devicons/devicon/icons/nodejs/nodejs-original.svg",
"description": "Property listing application with search filters, interactive maps, and property comparison features.",
"link": "https://github.com/jonathanpeters"
},
{
"title": "Learning Management System",
"image": "https://cdn.jsdelivr.net/gh/devicons/devicon/icons/react/react-original.svg",
"description": "Educational platform for course creation, student enrollment, and progress tracking with interactive lessons.",
"link": "https://github.com/jonathanpeters"
},
{
"title": "Travel Planner",
"image": "https://cdn.jsdelivr.net/gh/devicons/devicon/icons/javascript/javascript-original.svg",
"description": "Trip planning application with itinerary creation, destination information, and budget management features.",
"link": "https://github.com/jonathanpeters"
},
{
"title": "Blog Platform",
"image": "https://cdn.jsdelivr.net/gh/devicons/devicon/icons/nodejs/nodejs-original.svg",
"description": "Content management system for bloggers with markdown support, category management, and SEO optimization tools.",
"link": "https://github.com/jonathanpeters"
},
{
"title": "Music Discovery App",
"image": "https://cdn.jsdelivr.net/gh/devicons/devicon/icons/react/react-original.svg",
"description": "Application to discover new music based on preferences, listening history, and social recommendations.",
"link": "https://github.com/jonathanpeters"
},
{
"title": "Event Booking System",
"image": "https://cdn.jsdelivr.net/gh/devicons/devicon/icons/javascript/javascript-original.svg",
"description": "Platform for creating, finding, and registering for events with calendar integration and payment processing.",
"link": "https://github.com/jonathanpeters"
}
]
# Skills data with percentages
skills = [
{"name": "HTML", "percentage": 95, "icon": "fab fa-html5"},
{"name": "CSS", "percentage": 90, "icon": "fab fa-css3-alt"},
{"name": "JavaScript", "percentage": 85, "icon": "fab fa-js"},
{"name": "React", "percentage": 80, "icon": "fab fa-react"},
{"name": "Node.js", "percentage": 75, "icon": "fab fa-node-js"},
{"name": "Express.js", "percentage": 70, "icon": "fab fa-node-js"},
{"name": "D3.js", "percentage": 65, "icon": "fas fa-chart-bar"},
{"name": "Bootstrap", "percentage": 85, "icon": "fab fa-bootstrap"},
{"name": "Tailwind CSS", "percentage": 80, "icon": "fab fa-css3"},
{"name": "Python", "percentage": 70, "icon": "fab fa-python"}
]
# Tools data
tools = [
{"name": "HTML", "icon": "fab fa-html5"},
{"name": "CSS", "icon": "fab fa-css3-alt"},
{"name": "JavaScript", "icon": "fab fa-js"},
{"name": "React", "icon": "fab fa-react"},
{"name": "Node.js", "icon": "fab fa-node-js"},
{"name": "Express.js", "icon": "fab fa-node-js"},
{"name": "D3.js", "icon": "fas fa-chart-bar"},
{"name": "Bootstrap", "icon": "fab fa-bootstrap"},
{"name": "Tailwind CSS", "icon": "fab fa-css3"},
{"name": "Python", "icon": "fab fa-python"},
{"name": "GitHub", "icon": "fab fa-github"},
{"name": "Replit", "icon": "fas fa-code"},
{"name": "VS Code", "icon": "fas fa-code"}
]
# Social media links
social_links = [
{"platform": "WhatsApp", "icon": "fab fa-whatsapp", "link": "https://wa.me/1234567890"},
{"platform": "Facebook", "icon": "fab fa-facebook-f", "link": "https://facebook.com/jonathanpeters"},
{"platform": "Twitter", "icon": "fab fa-twitter", "link": "https://twitter.com/jonathanpeters"},
{"platform": "LinkedIn", "icon": "fab fa-linkedin-in", "link": "https://linkedin.com/in/jonathanpeters"},
{"platform": "Instagram", "icon": "fab fa-instagram", "link": "https://instagram.com/jonathanpeters"},
{"platform": "GitHub", "icon": "fab fa-github", "link": "https://github.com/jonathanpeters"},
{"platform": "Replit", "icon": "fas fa-code", "link": "https://replit.com/@jonathanpeters"}
]
return render_template('index.html',
projects=projects,
skills=skills,
tools=tools,
social_links=social_links)