Spaces:
Running
Running
| import gradio as gr | |
| import plotly.graph_objects as go | |
| class Portfolio: | |
| def __init__(self): | |
| self.profile = { | |
| "name": "Sreelekha Putta", | |
| "title": "AI/Prompt Engineer & Project Manager Aspirant", | |
| "location": "Hyderabad, Telangana", | |
| "phone": "9014347717", | |
| "email": "sreelekhaputta2@gmail.com", | |
| "cgpa": "8.0", | |
| "linkedin": "https://www.linkedin.com/in/sreelekha-putta-61b22b262", | |
| "huggingface": "https://huggingface.co/sreelekhaputta2" | |
| } | |
| self.about = """ | |
| Hi, I'm <strong style="color: #FFA500;">Sreelekha</strong>, a passionate <strong>AI/ML enthusiast, innovator, and problem solver</strong> | |
| currently in my final year of B.Tech. My journey blends technical skills with creativityβI love building AI-powered tools that | |
| make life simpler, meaningful, and even spiritual. | |
| <br><br> | |
| I've worked as an <strong style="color: #FFC069;">AI Intern at Spectov</strong> and an <strong style="color: #FFC069;">AI Tools Expert Intern at Website Makers</strong>, | |
| gaining hands-on experience in <strong>Generative AI, NLP, and Machine Learning applications</strong>. Alongside, I've developed unique projects like: | |
| <br><br> | |
| β’ <strong style="color: #87CEEB;">Idealyze</strong> β an AI startup validator with 85% accuracy<br> | |
| β’ <strong style="color: #87CEEB;">WiseVerse</strong> β a Bhagavad Gita-based AI chatbot with 95% accuracy<br> | |
| β’ <strong style="color: #87CEEB;">DivineLoop</strong> and <strong style="color: #87CEEB;">AvatarVerse</strong> β creative AI solutions<br> | |
| β’ <strong style="color: #87CEEB;">GenDoc AI</strong> β an AI-driven code documentation tool | |
| <br><br> | |
| With an <strong style="color: #FFA500;">8.0 CGPA</strong> and a strong foundation in <strong>Python, ML, Deep Learning, and AI frameworks</strong>, | |
| I aim to grow into an <strong>AI Project Manager & Generative AI Engineer</strong>, bridging technology with real-world impact. | |
| <br><br> | |
| Outside of tech, I find peace in spirituality and creativityβI'm deeply inspired by the teachings of Lord Krishna, | |
| which guide my mindset toward resilience and growth. | |
| <br><br> | |
| <strong style="color: #FFD700;">My goal:</strong> To <strong>shape the future of AI</strong> while making technology more | |
| <strong>human-centered, ethical, and impactful</strong>. | |
| """ | |
| self.projects = [ | |
| {"name": "WiseVerse β Bhagavad Gita Chatbot", "desc": "AI chatbot with 95% accuracy, multi-language support, 40% higher engagement", "tech": ["NLP", "Hugging Face", "Python"], "link": "https://huggingface.co/spaces/sreelekhaputta2/Chatbot"}, | |
| {"name": "Idealyze β AI Startup Validator", "desc": "85% prediction accuracy, 50% faster decision-making, market analysis integration", "tech": ["ML", "Big Data", "Flask"], "link": "https://huggingface.co/spaces/sreelekhaputta2/Idealyze"}, | |
| {"name": "DivineLoop", "desc": "Spiritual AI companion combining ancient wisdom with modern technology", "tech": ["AI", "NLP", "Transformers"], "link": "https://huggingface.co/spaces/sreelekhaputta2/DivineLoop"}, | |
| {"name": "AvatarVerse", "desc": "AI-generated avatars platform for virtual identity creation", "tech": ["Computer Vision", "Generative AI"], "link": "https://huggingface.co/spaces/sreelekhaputta2/AvatarVerse"}, | |
| {"name": "GenDoc AI", "desc": "AI-powered code documentation tool", "tech": ["Code Analysis", "NLP"], "link": "https://huggingface.co/spaces/sreelekhaputta2/GenDoc_AI"} | |
| ] | |
| self.experience = [ | |
| {"role": "AI Intern", "company": "Spectov", "duration": "Jan 2025 β July 2025", | |
| "achievements": ["AI content automation reducing manual work by 30%", "Custom prompt systems achieving 20% higher CTR", "100% client-ready solutions aligned with business needs"]}, | |
| {"role": "AI Tools Expert Intern", "company": "Website Makers", "duration": "Dec 2024 β May 2025", | |
| "achievements": ["WiseVerse chatbot with 95% accuracy, 40% engagement boost", "Idealyze validator with 85% accuracy, 50% better decisions", "AI tools & prompt engineering boosting efficiency by 35%"]} | |
| ] | |
| def create_css(self): | |
| # Forces off-white text and contrast for all themes/modes. | |
| return """ | |
| <style> | |
| @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap'); | |
| *, *::before, *::after { | |
| color: #F4F4F9 !important; | |
| text-shadow: none !important; | |
| box-sizing: border-box; | |
| } | |
| /* Background always visible */ | |
| body, .gradio-container { | |
| font-family: 'Inter', sans-serif !important; | |
| background: url('https://www.alldesigncreative.com/wp-content/uploads/2019/09/new-glitter-particles-black-screen-background-video-effect.png') no-repeat center center fixed !important; | |
| background-size: cover !important; | |
| color: #F4F4F9 !important; | |
| margin: 0; padding: 0; | |
| } | |
| /* Always use readable cards */ | |
| .profile-header, | |
| .card, | |
| .project-card, | |
| .stat-box, | |
| .tech-tag, | |
| .badge { | |
| color: #F4F4F9 !important; | |
| background: rgba(30,30,40,0.90) !important; | |
| border-radius: 12px; border: none; | |
| } | |
| .profile-name { font-size: 2.5rem; font-weight: 700; color: #FFD700 !important;} | |
| .profile-img { | |
| width: 180px; height: 180px; border-radius: 50%; | |
| border: 5px solid #a1c5ff; object-fit: cover; | |
| box-shadow: 0 8px 20px rgba(0,0,0,0.5); | |
| display: block; margin: 0 auto; | |
| } | |
| .badge { | |
| background: rgba(255,255,255,0.16); padding: 8px 16px; | |
| border-radius: 20px; display: inline-block; margin: 5px; | |
| color: #F4F4F9 !important; | |
| font-weight: 600; | |
| } | |
| .card-title { | |
| color: #FFA500 !important; | |
| font-size: 1.4rem; | |
| font-weight: 700; | |
| } | |
| .project-card { border: 1px solid rgba(255,200,100,0.25); margin: 10px 0;} | |
| .btn-primary { | |
| background: linear-gradient(45deg, #FFA500, #FF6B6B); | |
| color: #F4F4F9 !important; padding: 10px 20px; border-radius: 20px; | |
| text-decoration: none; font-weight: 700; display: inline-block; | |
| box-shadow: 1px 1px 6px rgba(255,107,107,0.65); | |
| } | |
| .btn-primary:hover { | |
| background: linear-gradient(45deg, #FFB733, #FF4B4B); | |
| color: #fff !important; | |
| } | |
| .tech-tag { | |
| background: rgba(135,206,235,0.22); | |
| color: #F4F4F9 !important; | |
| padding: 3px 8px; | |
| border-radius: 8px; | |
| font-size: 0.78rem; | |
| display: inline-block; | |
| margin: 2px; | |
| font-weight: 600; | |
| } | |
| /* Mobile force off-white */ | |
| @media (max-width: 700px) { | |
| body, .gradio-container, .badge, .card, .card-title, .project-card, .stat-box, .tech-tag, .btn-primary, .profile-header, * { | |
| color: #F4F4F9 !important; | |
| text-shadow: none !important; | |
| background: rgba(30,30,40,0.90) !important; | |
| } | |
| .btn-primary, .badge { color: #ffd700 !important; } | |
| } | |
| </style> | |
| """ | |
| def create_header(self): | |
| return f""" | |
| {self.create_css()} | |
| <div class="profile-header"> | |
| <div style="display: flex; align-items: center; gap: 30px; flex-wrap: wrap; justify-content: center;"> | |
| <div style="flex: 1; min-width: 300px; text-align: center;"> | |
| <h1 class="profile-name">{self.profile['name']}</h1> | |
| <p style="font-size: 1.3rem; margin-bottom: 15px; color: #FFD700;">{self.profile['title']}</p> | |
| <div> | |
| <span class="badge">π {self.profile['location']}</span> | |
| <span class="badge">π {self.profile['phone']}</span> | |
| <span class="badge">β {self.profile['email']}</span> | |
| </div> | |
| <div style="margin-top: 15px;"> | |
| <span class="badge">π B.Tech IT(AI/ML) | CGPA: {self.profile['cgpa']}</span> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| """ | |
| def create_about(self): | |
| return f""" | |
| <div class="card"> | |
| <h2 class="card-title">π€ About Me</h2> | |
| <p style="line-height: 1.8; font-size: 1.05rem;"> | |
| {self.about} | |
| </p> | |
| </div> | |
| """ | |
| def create_skills_chart(self): | |
| categories = ['Python', 'AI/ML', 'NLP', 'Deep Learning', 'Backend', 'Leadership', 'Communication', 'Problem Solving'] | |
| values = [95, 90, 85, 82, 80, 88, 90, 92] | |
| fig = go.Figure() | |
| fig.add_trace(go.Scatterpolar( | |
| r=values + [values[0]], theta=categories + [categories[0]], | |
| fill='toself', fillcolor='rgba(255, 165, 0, 0.3)', | |
| line_color='#FFA500', line_width=2, marker=dict(size=6, color='#FF6B6B') | |
| )) | |
| fig.update_layout( | |
| polar=dict( | |
| radialaxis=dict(visible=True, range=[0, 100], tickfont=dict(color='#FFD700'), gridcolor='rgba(255,255,255,0.22)'), | |
| angularaxis=dict(tickfont=dict(color='#FFD700'), gridcolor='rgba(255,255,255,0.22)') | |
| ), | |
| paper_bgcolor='rgba(0,0,0,0)', plot_bgcolor='rgba(0,0,0,0)', | |
| title=dict(text="Technical & Soft Skills", font=dict(size=18, color='#FFA500')), | |
| width=600, height=500, showlegend=False | |
| ) | |
| return fig | |
| def create_metrics_chart(self): | |
| metrics = ['WiseVerse', 'Idealyze', 'User Engagement', 'Efficiency Boost'] | |
| values = [95, 85, 40, 35] | |
| fig = go.Figure(data=[go.Bar( | |
| x=metrics, y=values, | |
| marker_color=['#FFA500', '#FF6B6B', '#00FF87', '#87CEEB'], | |
| text=[f'{v}%' for v in values], textposition='auto', | |
| textfont=dict(color='#FFD700') | |
| )]) | |
| fig.update_layout( | |
| title=dict(text="Key Project Metrics", font=dict(size=18, color='#FFA500')), | |
| xaxis=dict(title="Projects/Metrics", tickfont=dict(color='#FFD700'), gridcolor='rgba(255,255,255,0.14)'), | |
| yaxis=dict(title="Percentage", tickfont=dict(color='#FFD700'), gridcolor='rgba(255,255,255,0.14)'), | |
| paper_bgcolor='rgba(0,0,0,0)', plot_bgcolor='rgba(0,0,0,0)', | |
| width=600, height=400 | |
| ) | |
| return fig | |
| def create_interface(): | |
| portfolio = Portfolio() | |
| css = """ | |
| .gradio-container { background: linear-gradient(135deg, #0f0f0f, #1a1a1a) !important; } | |
| .gr-button { background: linear-gradient(45deg, #FFA500, #FF6B6B) !important; color: #F4F4F9 !important; } | |
| """ | |
| with gr.Blocks(css=css, title="Sreelekha Putta - AI Engineer Portfolio") as demo: | |
| with gr.Row(): | |
| with gr.Column(scale=1): | |
| profile_img = gr.Image( | |
| value="profile.jpg", | |
| label="Profile Picture", | |
| show_label=False, | |
| height=200, | |
| width=200, | |
| type="filepath", | |
| container=True, | |
| elem_classes=["profile-image-container"] | |
| ) | |
| gr.HTML(portfolio.create_header()) | |
| with gr.Tabs(): | |
| with gr.Tab("π€ About"): | |
| gr.HTML(portfolio.create_about()) | |
| with gr.Row(): | |
| gr.HTML(""" | |
| <div class="card"> | |
| <h2 class="card-title">π Education</h2> | |
| <div style="background: rgba(255,165,0,0.14); padding: 15px; border-radius: 10px;"> | |
| <h3 style="color: #FFD700;">B.Tech in Information Technology(AI/ML Specialization)</h3> | |
| <p style="color: #F4F4F9;">JNTUH College of Engineering Jagitial</p> | |
| <p style="color: #FFD700;">2022 β 2026 | CGPA: 8.0</p> | |
| </div> | |
| </div> | |
| """) | |
| with gr.Tab("πΌ Experience"): | |
| exp_html = '<div class="card"><h2 class="card-title">Professional Experience</h2>' | |
| for exp in portfolio.experience: | |
| exp_html += f""" | |
| <div class="project-card"> | |
| <h3 style="color: #FFD700;">{exp['role']}</h3> | |
| <p style="color: #F4F4F9;">{exp['company']} | {exp['duration']}</p> | |
| <ul style="color: #F4F4F9; margin-top: 10px;"> | |
| """ | |
| for ach in exp['achievements']: | |
| exp_html += f'<li style="margin: 5px 0;">β‘ {ach}</li>' | |
| exp_html += '</ul></div>' | |
| exp_html += '</div>' | |
| gr.HTML(exp_html) | |
| gr.Plot(portfolio.create_metrics_chart()) | |
| with gr.Tab("π Projects"): | |
| proj_html = '<div class="card"><h2 class="card-title">Featured Projects</h2>' | |
| for proj in portfolio.projects: | |
| tags = ''.join([f'<span class="tech-tag">{t}</span>' for t in proj['tech']]) | |
| proj_html += f""" | |
| <div class="project-card"> | |
| <h3 style="color: #FFD700; margin-bottom: 10px;">{proj['name']}</h3> | |
| <p style="color: #F4F4F9; margin-bottom: 10px;">{proj['desc']}</p> | |
| <div style="margin-bottom: 10px;">{tags}</div> | |
| <a href="{proj['link']}" target="_blank" class="btn-primary">View Project β</a> | |
| </div> | |
| """ | |
| proj_html += '</div>' | |
| gr.HTML(proj_html) | |
| with gr.Tab("β‘ Skills"): | |
| with gr.Row(): | |
| with gr.Column(): | |
| gr.Plot(portfolio.create_skills_chart()) | |
| with gr.Column(): | |
| gr.HTML(""" | |
| <div class="card"> | |
| <h2 class="card-title">Technical Skills</h2> | |
| <p style="color: #F4F4F9; line-height: 2;"> | |
| <strong style="color: #FFD700;">Programming:</strong> Python, C, Java, SQL<br> | |
| <strong style="color: #FFD700;">AI/ML:</strong> Machine Learning, Deep Learning, NLP, Generative AI, LLMs<br> | |
| <strong style="color: #FFD700;">Frameworks:</strong> TensorFlow, PyTorch, Hugging Face, Flask<br> | |
| <strong style="color: #FFD700;">Tools:</strong> Git/GitHub, NumPy, Pandas, Matplotlib, Seaborn<br> | |
| <strong style="color: #FFD700;">Specialization:</strong> Prompt Engineering, Full-stack AI Deployment | |
| </p> | |
| <h2 class="card-title" style="margin-top: 20px;">Soft Skills</h2> | |
| <p style="color: #F4F4F9; line-height: 2;"> | |
| β’ <strong style="color: #00FF87;">Leadership</strong> β Led Cultural Night 2025 (1000+ audience)<br> | |
| β’ <strong style="color: #00FF87;">Communication</strong> β Exceptional presentation & public speaking<br> | |
| β’ <strong style="color: #00FF87;">Problem Solving</strong> β Creative AI solution design<br> | |
| β’ <strong style="color: #00FF87;">Team Collaboration</strong> β Cross-functional project delivery<br> | |
| β’ <strong style="color: #00FF87;">Project Management</strong> β Planning & execution excellence | |
| </p> | |
| </div> | |
| """) | |
| with gr.Tab("π Achievements"): | |
| gr.HTML(""" | |
| <div class="card"> | |
| <h2 class="card-title">Key Achievements</h2> | |
| <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 15px;"> | |
| <div class="stat-box"> | |
| <div class="stat-number">π Top Intern</div> | |
| <p style="margin-top: 8px;">Recognized for AI innovation at Website Makers (2025)</p> | |
| </div> | |
| <div class="stat-box"> | |
| <div class="stat-number">π€ 1000+</div> | |
| <p style="margin-top: 8px;">Hosted Cultural Night 2025 at JNTUH</p> | |
| </div> | |
| <div class="stat-box"> | |
| <div class="stat-number">π 5+ Apps</div> | |
| <p style="margin-top: 8px;">Deployed on Hugging Face Spaces</p> | |
| </div> | |
| </div> | |
| </div> | |
| """) | |
| with gr.Tab("π Connect"): | |
| with gr.Row(): | |
| with gr.Column(): | |
| gr.HTML(f""" | |
| <div class="card"> | |
| <h2 class="card-title">Let's Connect</h2> | |
| <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 15px; margin: 20px 0;"> | |
| <a href="{portfolio.profile['huggingface']}" target="_blank" class="btn-primary" style="text-align: center;"> | |
| π€ HuggingFace | |
| </a> | |
| <a href="{portfolio.profile['linkedin']}" target="_blank" class="btn-primary" style="text-align: center;"> | |
| πΌ LinkedIn | |
| </a> | |
| <a href="mailto:{portfolio.profile['email']}" class="btn-primary" style="text-align: center;"> | |
| β Email | |
| </a> | |
| </div> | |
| <p style="color: #FFA500; font-size: 1.2rem; text-align: center; font-style: italic; margin-top: 20px;"> | |
| "Building AI with consciousness, creating technology with soul" | |
| </p> | |
| </div> | |
| """) | |
| with gr.Column(): | |
| gr.HTML(""" | |
| <div class="card"> | |
| <h2 class="card-title">π Download Resume</h2> | |
| <p style="margin-bottom: 15px;"> | |
| Get my complete resume with detailed project information and achievements. | |
| </p> | |
| </div> | |
| """) | |
| resume_file = gr.File(label="Resume", value="resume_sreelekha_putta.pdf", interactive=False) | |
| return demo | |
| if __name__ == "__main__": | |
| demo = create_interface() | |
| print("π Launching Sreelekha Putta's Portfolio with improved white text everywhere...") | |
| demo.launch() | |