Spaces:
				
			
			
	
			
			
		Runtime error
		
	
	
	
			
			
	
	
	
	
		
		
		Runtime error
		
	Upload 9 files
Browse files- app.py +49 -0
- course_list.pkl +3 -0
- courses.pkl +3 -0
- image2.png +0 -0
- image3.png +0 -0
- images.png +0 -0
- pages/recommend.py +74 -0
- requirements.txt +1 -0
- similarity.pkl +3 -0
    	
        app.py
    ADDED
    
    | @@ -0,0 +1,49 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
            import streamlit as st
         | 
| 2 | 
            +
            from streamlit_extras.switch_page_button import switch_page
         | 
| 3 | 
            +
            from streamlit_extras.let_it_rain import rain
         | 
| 4 | 
            +
            from PIL import Image
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              
         | 
| 7 | 
            +
              
         | 
| 8 | 
            +
            st.set_page_config(page_title="CRS",page_icon = "🫰")
         | 
| 9 | 
            +
             | 
| 10 | 
            +
             | 
| 11 | 
            +
             | 
| 12 | 
            +
             | 
| 13 | 
            +
             | 
| 14 | 
            +
            st.markdown("<h1 style='text-align: Left ; color: white;'>  COURSE RECOMMENDATION SYSTEM </h1>", unsafe_allow_html=True)
         | 
| 15 | 
            +
            st.markdown("<h4 style='text-align: center ; color: violet;'> Discover a plethora of courses at your fingertips!</h4>", unsafe_allow_html=True)
         | 
| 16 | 
            +
             | 
| 17 | 
            +
              
         | 
| 18 | 
            +
            #To load image
         | 
| 19 | 
            +
            img = Image.open(r'C:\Users\Yuva\.vscode\Streamlit dev\images.png')
         | 
| 20 | 
            +
            image_bytes = img.resize((700,400))
         | 
| 21 | 
            +
             | 
| 22 | 
            +
             | 
| 23 | 
            +
            co_1, co_2, co_3 = st.columns(3)
         | 
| 24 | 
            +
            with co_1:
         | 
| 25 | 
            +
                st.image(image_bytes, use_column_width=False)
         | 
| 26 | 
            +
             | 
| 27 | 
            +
             | 
| 28 | 
            +
              
         | 
| 29 | 
            +
              
         | 
| 30 | 
            +
            # Raining Emoji
         | 
| 31 | 
            +
              
         | 
| 32 | 
            +
            rain(
         | 
| 33 | 
            +
                emoji="🕮",
         | 
| 34 | 
            +
                font_size=50,  # the size of emoji
         | 
| 35 | 
            +
                falling_speed=3,  # speed of raining
         | 
| 36 | 
            +
                animation_length="infinite",  # for how much time the animation will happen
         | 
| 37 | 
            +
            )
         | 
| 38 | 
            +
             | 
| 39 | 
            +
             | 
| 40 | 
            +
            #sc = st.sidebar.columns(2)
         | 
| 41 | 
            +
            #sc[0].image(r'C:\Users\Yuva\.vscode\Streamlit dev\images.png', width=150)
         | 
| 42 | 
            +
            #sc[1].write("  ")
         | 
| 43 | 
            +
             | 
| 44 | 
            +
             | 
| 45 | 
            +
             | 
| 46 | 
            +
            st.subheader(":blue[Discover your perfect course - click here to explore! :point_down:]")
         | 
| 47 | 
            +
            want_to_contribute = st.button("click here")
         | 
| 48 | 
            +
            if want_to_contribute:
         | 
| 49 | 
            +
                switch_page("recommend")
         | 
    	
        course_list.pkl
    ADDED
    
    | @@ -0,0 +1,3 @@ | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
            version https://git-lfs.github.com/spec/v1
         | 
| 2 | 
            +
            oid sha256:cd0eda18efee611fec1c91f6e47b792c5c57ef885f82bdc67c0bd556989a76ff
         | 
| 3 | 
            +
            size 7164481
         | 
    	
        courses.pkl
    ADDED
    
    | @@ -0,0 +1,3 @@ | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
            version https://git-lfs.github.com/spec/v1
         | 
| 2 | 
            +
            oid sha256:e3535b7b79e169b19e051f54bd7384bdec4ad4366d95e6b03b4cb2f477bb4616
         | 
| 3 | 
            +
            size 7090898
         | 
    	
        image2.png
    ADDED
    
    |   | 
    	
        image3.png
    ADDED
    
    |   | 
    	
        images.png
    ADDED
    
    |   | 
    	
        pages/recommend.py
    ADDED
    
    | @@ -0,0 +1,74 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
             | 
| 2 | 
            +
            import pickle
         | 
| 3 | 
            +
            import streamlit as st
         | 
| 4 | 
            +
            from streamlit_extras.let_it_rain import rain
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            import numpy as np
         | 
| 7 | 
            +
            import pandas as pd
         | 
| 8 | 
            +
             | 
| 9 | 
            +
             | 
| 10 | 
            +
             | 
| 11 | 
            +
            # <==== Code starts here ====>
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            courses_list = pickle.load(open('courses.pkl','rb'))
         | 
| 14 | 
            +
            similarity = pickle.load(open('similarity.pkl','rb'))
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            rain(
         | 
| 17 | 
            +
                emoji="🕮",
         | 
| 18 | 
            +
                font_size=30,  # the size of emoji
         | 
| 19 | 
            +
                falling_speed=6,  # speed of raining
         | 
| 20 | 
            +
                animation_length= 2,  # for how much time the animation will happen
         | 
| 21 | 
            +
            )
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            def recommend(course):
         | 
| 24 | 
            +
                index = courses_list[courses_list['course_name'] == course].index[0]
         | 
| 25 | 
            +
                dist1 = (similarity[index])
         | 
| 26 | 
            +
                distances = sorted(list(enumerate(dist1)), reverse=True, key=lambda x: x[1])
         | 
| 27 | 
            +
                dist = pd.DataFrame(dist1)
         | 
| 28 | 
            +
                
         | 
| 29 | 
            +
                for i in distances[1:5]:
         | 
| 30 | 
            +
                    st.write("Name of the Course :memo: :  ", courses_list.iloc[i[0]].course_name.upper())
         | 
| 31 | 
            +
                    st.write("Course URL	:link: :  ", courses_list.iloc[i[0]].course_url)
         | 
| 32 | 
            +
                    st.write("Platform :medal: :  ", courses_list.iloc[i[0]].Platform.upper())
         | 
| 33 | 
            +
                    #st.write("Score  :large_blue_diamond: :  ", dist.iloc[i[0]].to_string(index = False))
         | 
| 34 | 
            +
                    st.write ("Reason for Recommendation (SKILLS YOU MAY GET) : ")
         | 
| 35 | 
            +
                    st.write(courses_list.iloc[i[0]].Skills)  
         | 
| 36 | 
            +
                    st.write("-"* 90)
         | 
| 37 | 
            +
                    
         | 
| 38 | 
            +
             | 
| 39 | 
            +
             | 
| 40 | 
            +
            def main():
         | 
| 41 | 
            +
                
         | 
| 42 | 
            +
                # To write title
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                st.markdown("<h5 style = 'text-align: Left; color: white;'>Hello! I'm here to help you find the perfect course over 5000 courses from dataset. Let's get Started !🙂</h5>",unsafe_allow_html=True)
         | 
| 45 | 
            +
                st.markdown("<h5 style='text-align: Left ; color: blue;'> What field or topic are you interested in? </h5>", unsafe_allow_html=True)
         | 
| 46 | 
            +
                
         | 
| 47 | 
            +
                course_list = courses_list['course_name'].values
         | 
| 48 | 
            +
                selected_course = st.selectbox("Select here :point_down:",
         | 
| 49 | 
            +
                  
         | 
| 50 | 
            +
                     courses_list
         | 
| 51 | 
            +
                )
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                if st.button(' Recommend '):
         | 
| 54 | 
            +
                    st.success("Recommending courses similar to " + selected_course)
         | 
| 55 | 
            +
                    recommend(selected_course)
         | 
| 56 | 
            +
             | 
| 57 | 
            +
             | 
| 58 | 
            +
            if __name__ == "__main__":
         | 
| 59 | 
            +
                main()
         | 
| 60 | 
            +
             | 
| 61 | 
            +
             | 
| 62 | 
            +
             | 
| 63 | 
            +
             | 
| 64 | 
            +
             | 
| 65 | 
            +
             | 
| 66 | 
            +
             | 
| 67 | 
            +
             | 
| 68 | 
            +
             | 
| 69 | 
            +
             | 
| 70 | 
            +
             | 
| 71 | 
            +
             | 
| 72 | 
            +
             | 
| 73 | 
            +
             | 
| 74 | 
            +
             | 
    	
        requirements.txt
    ADDED
    
    | @@ -0,0 +1 @@ | |
|  | 
|  | |
| 1 | 
            +
            streamlit_extras
         | 
    	
        similarity.pkl
    ADDED
    
    | @@ -0,0 +1,3 @@ | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
            version https://git-lfs.github.com/spec/v1
         | 
| 2 | 
            +
            oid sha256:289d215dc8e9c437360bcbbebaf2484e589cecc91f95044f12ce5d24fd3b9aba
         | 
| 3 | 
            +
            size 141658275
         |