Skip to content

Conversation

pvedha24
Copy link
Contributor

Feature: User Profile Management Module

Description

This PR adds a comprehensive user profile management system to TalkHeal, allowing users to personalize their experience with custom profiles, avatars, and preferences.

Features Added

  • Profile Creation & Editing: Users can set and update their name with proper text visibility
  • Avatar System:
    • Upload custom profile pictures (PNG, JPG, JPEG support)
    • Auto-generated gradient avatar with user initials as fallback
    • Circular avatar display with proper sizing (80px)
  • User Preferences:
    • Font size selection (Small/Medium/Large)
    • Global font size application across the app
  • Profile Interface:
    • Time-based greetings (Good morning/afternoon/evening)
    • Confirmation dialogs for reset functionality
  • UI/UX Improvements:
    • Fixed text input color visibility issue
    • Success animations and user feedback
    • Responsive design with proper spacing

Technical Implementation

  • Components: Built modular profile.py component
  • Integration: Seamlessly integrated into sidebar.py
  • Storage: Session state management for user data persistence
  • Image Processing: Base64 encoding with PIL for profile pictures
  • Styling: Custom CSS for improved text input visibility
  • Error Handling: Comprehensive error handling for file uploads

Files Modified/Added

  • Added: components/profile.py - Complete profile management module
  • Modified: components/sidebar.py - Integration of profile component
  • Modified: TalkHeal.py - Main app updates to support profile features

Live Demo

🔗 Deployment Link: https://talkheal-gf6jezh946ogujy3yofiwz.streamlit.app/

You can test all features including:

  • Profile name input and display
  • Profile picture upload functionality
  • Font size preferences
  • Settings save/reset functionality

Testing Completed

  • Profile creation and editing functionality
  • Image upload with multiple formats (PNG, JPG, JPEG)
  • Font size changes and global application
  • Reset functionality with confirmation
  • Text input visibility (color fix)
  • UI responsiveness across different screen sizes
  • Error handling for invalid file uploads
  • Session state persistence

Key Features Preview

  • Time-based personalized greetings
  • Circular profile avatars with fallback to initials
  • Global font size customization

Closes #26

- Add profile.py module with complete profile functionality
- Integrate profile component in sidebar.py
- Update main TalkHeal.py to support profile features
- Implement profile picture upload and management
- Add user preferences (name, font size) functionality
- Fix text input color visibility issue
@eccentriccoder01
Copy link
Owner

Thanks a lot for this, @pvedha24
The entire profile module looks great. I’ve tested the live deployment and everything works as expected, including image uploads, font preferences, reset behavior, and responsiveness.
The code too is well-structured...
Since you've put significant patience and efforts into this (great feature + patiently learning to pull changes, etc.) I'm upgrading this issue from level 2 to 3, and merging it. Thanks for improving TalkHeal!

@eccentriccoder01 eccentriccoder01 merged commit b784704 into eccentriccoder01:main Jul 27, 2025
@pvedha24
Copy link
Contributor Author

@eccentriccoder01 Thank you so much for this incredible feedback 🎉
I'm truly grateful for your mentorship throughout this process. This being my first major open source contribution, I learned so much - not just about coding the profile management system, but about the entire collaborative development workflow including Git operations, proper PR practices, and creating deployment links.

@eccentriccoder01
Copy link
Owner

@pvedha24 Most Wello :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request gssoc25 level 3
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add "Your Profile" Section in Sidebar for Personalization
2 participants