Portfolio App Template - Adding URL Link to Images/Videos

Hi fellow nerds,

A few months ago I started to look into different ways to create a professional portfolio. I’ve been using Streamlit for over a year, and I decided to use it to display my work experience and programming skills. Once I finished it, I decided I’d create a template to share it with all of you. This is my portfolio app and this is the template. It looks like this :point_down:



When it came to the front end of the application, I found a bottleneck trying to implement URL links into images, like logos or YouTube videos. Methods like st.markdown weren’t hitting the mark – all I ended up with were titles and links under the image or video, not the look I had in mind. So, I tried different methods - and they worked!

GitHub Image Loading
I uploaded images to GitHub and used raw file links with st.image for a direct image embed. I used this to load my profile photo - to do that I used ‘st.columns’ to align the images/logos.
Here’s a snippet of the code:

 # Adding columns
        col1, col2, col3, col4 = st.columns(4)
        # Profile photo section
        with col1: 
            profile_pic = "https://raw.githubusercontent.com/youngpada1/portfolio-app/9fcb7438c028c7517786155b5be9cd1fc517447e/portfolio-app/portfolio_app/images/menu/profile%20icon.png"
            st.image(profile_pic, width=100)

HTML-Embedded Image Links:
I played around with st.markdown and HTML to attach images to hyperlinks.

        with col3:
            github = 'https://raw.githubusercontent.com/youngpada1/portfolio-app/efa44604e838ff5218db9a9229b8fff256df5ae6/portfolio-app/portfolio_app/images/menu/github.png'
            st.markdown(f'''
            <a href='https://github.com'>
                <img src='{github}' width='25px'/>
            </a>''',
            unsafe_allow_html=True
        )

On the ‘Experience’ Page I streamlined the data-loading process by using a YAML file. I followed this approach to avoid having to individually hard-code details on each company I’ve worked with.
I added photos of some products I’ve delivered to the market and this is how it looks:

Company Name:
  images:
    - name: Product Name
      url: https://raw.githubusercontent.com/youngpada1/portfolio-app/efa44604e838ff5218db9a9229b8fff256df5ae6/portfolio-app/portfolio_app/images/menu/streamlit.png
      width: 94%
    - name: Product Name
      url: https://raw.githubusercontent.com/youngpada1/portfolio-app/efa44604e838ff5218db9a9229b8fff256df5ae6/portfolio-app/portfolio_app/images/menu/streamlit.png
      width: 94%
    - name: Product Name
      url: https://raw.githubusercontent.com/youngpada1/portfolio-app/efa44604e838ff5218db9a9229b8fff256df5ae6/portfolio-app/portfolio_app/images/menu/streamlit.png
      width: 94%
    - name: Product Name
      url: https://raw.githubusercontent.com/youngpada1/portfolio-app/efa44604e838ff5218db9a9229b8fff256df5ae6/portfolio-app/portfolio_app/images/menu/streamlit.png
      width: 94%

Creating this app was a journey of trial and error, and I wanted to share these solutions with the community. I’m sure there are other ways to do this, so please feel free to share them. And if you’re looking for a template to create your portfolio, feel free to check out the app, use i,t and let me know what you think! :rocket:

1 Like