olamidegoriola's picture
Update eda.py
9dbdc05
import json
import streamlit as st
from streamlit_lottie import st_lottie
from PIL import Image
#import pandas as pd
def app():
#st.set_page_config(page_title="Visualizations and Results", page_icon=":flag_ghana:", layout="wide")
# ---- LOAD ASSETS ----
img_job_cat_jobs = Image.open("./visualizations/5.jpg")
img_job_cat_app = Image.open("./visualizations/6.jpg")
img_seniority_level_jobs = Image.open("./visualizations/9.jpg")
img_experience_level_jobs = Image.open("./visualizations/8.jpg")
img_education_level_jobs = Image.open("./visualizations/7.jpg")
img_skills_match_level = Image.open("./visualizations/10.jpg")
img_skills_academy_comparison = Image.open("./visualizations/11_str.png")
img_skills_academy_industry_comparison = Image.open("./visualizations/12_str.png")
lottie_animation = ("visualizations/lottie_animation.json")
# Use local CSS
def local_css(file_name):
with open(file_name) as f:
st.markdown(f"<style>{f.read()}</style>", unsafe_allow_html=True)
local_css("style/style.css")
# ---- HEADER SECTION ----
with st.container():
st.subheader("Visualizations and Results")
text_col, lottie_col = st.columns(([0.6, 0.4]), gap="large")
with text_col:
st.write(
"""
By leveraging the power of natural language processing techniques,
we have gained invaluable insights into the factors contributing to the growing gap
between job demands and the skills available in today's Ghanaian labor market.
Through this section, we aim to highlight the key discoveries, trends, and patterns
uncovered during our analysis, shedding light on the complex dynamics
of this issue and offering potential avenues for bridging the divide.
"""
)
with lottie_col:
with open(lottie_animation,"r") as file:
url = json.load(file)
st_lottie(url,
reverse=True,
height=200,
width=200,
speed=1,
loop=True,
quality='high',
key='Results'
)
tab1, tab2 = st.tabs(["EDA", "Gap-img"])
# ---- TAB 1 ----
with tab1:
st.header("Jobs and Job Applicants")
with st.container():
st.write("---")
st.subheader("Available Jobs Categories")
st.write("##")
app_column, jobs_column = st.columns(2)
with app_column:
st.image(img_job_cat_app)
expander = st.expander("See explanation")
expander.write('''The diagram above illustrates the distribution of job applicants by job category.
The demand for jobs is highest in the IT, Finance, and Health categories, which are
similarly the categories with the most job seekers. Other job categories with available
positions include Tourism and Hospitality, Management and Secretarial Services, and
Logistics and Transport.''')
with jobs_column:
st.image(img_job_cat_jobs)
expander = st.expander("See explanation")
expander.write('''The diagram above displays the distribution of available jobs across different categories.
The majority of available jobs fall under the following categories: Engineering, Finance, IT, Management,
and Health. Other categories are not as well represented on online job portals.''')
with st.container():
st.write("---")
st.subheader("Experience and Seniority Levels")
st.write("##")
app_column, jobs_column = st.columns(2)
with app_column:
st.image(img_seniority_level_jobs)
expander = st.expander("See explanation")
expander.write('''The above chart depicts the distribution of available jobs’
seniority levels. As expected, most of the jobs are entry-level jobs.
Mid-Senior and Senior level positions represent the second and third biggest categories.
The internships compose less than two per cent of jobs, making it harder for penultimate
students to gain the necessary experience and enter the job market.''')
with jobs_column:
st.image(img_experience_level_jobs)
expander = st.expander("See explanation")
expander.write('''The diagram above illustrates the experience level (in years)
employers typically require for available positions.
The majority of jobs (a significant percentage) require 2 to 5 years of experience,
while an additional third of positions demand 5 to 10 years of experience.
Some employers mandate more than 10 years of experience for specific roles.
A mere 3 percent of available jobs are open to employees with less than 2 years of experience.
This leaves new graduates with limited job opportunities and forces them to expend additional
effort to secure their first job.''')
with st.container():
st.write("---")
st.subheader("Education level of job seekers and employers")
st.write("##")
st.image(img_education_level_jobs)
expander = st.expander("See explanation")
expander.write('''The graph above displays a comparison between the level of education that job
providers require and the level of education held by job seekers. The number of job seekers with
Bachelor's degrees is twice the number of employers requiring this level of education. This trend
is also evident for job seekers with Master's degrees and Doctorates. Employers rarely require
college diplomas, but approximately a quarter of job seekers mention holding them on their resumes.
High school certificates and Technical and Vocational diplomas are not required by employers,
but job seekers tend to list them on their resumes.''')
with tab2:
st.header("Gap Analysis")
st.write("##")
with st.container():
st.write('''The following charts depict the skills gap between the top five
universities in Ghana and the industry. As a case study, we selected Computer Science programs
at each university. We then compared the taught skills to the top 1000 skills required in
the IT jobs market.''')
st.write("---")
st.subheader("Skills match level of the top five universities in Ghana to IT industry requirements")
st.write("##")
st.image(img_skills_match_level)
expander = st.expander("See explanation")
expander.write('''Based on the chart provided, it appears that the educational curriculums
being taught are not meeting the needs of the job market. Even the most closely aligned program
from the University of Mines and Technology is lacking in nearly 50% of the necessary skills.
The Bachelor of Science program in Computer Science from KNUST university has the least amount of
required skills covered, with less than 10% matching up.''')
with st.container():
st.write("---")
st.subheader("Skills comparison between the top five universities in Ghana for IT programs")
st.write("##")
st.image(img_skills_academy_comparison)
expander = st.expander("See explanation")
expander.write('''The visualization above illustrates the comparison of the 25 most commonly
taught skills among various universities. The University of Mines and Technology has the most
comprehensive curriculum, followed by the University of Ghana. As demonstrated in the previous graph,
KNUST University has the least favourable outcomes regarding available skills. While subjects
such as Math, Operating Systems, and Software Engineering are included in every curriculum,
not all universities offer courses in Embedded Systems, Robotics, Artificial Intelligence,
and Networking. Therefore, students who are interested in these areas of study should carefully
plan their enrollment accordingly.''')
st.write("---")
st.subheader("Skills gap between the top five universities in Ghana and IT jobs market")
st.write("##")
st.image(img_skills_academy_industry_comparison)
expander = st.expander("See explanation")
expander.write('''The chart above displays the discrepancy between the skills taught in university
curriculums and those required by the IT job market. The analysis focuses on the top 20 skills in
demand. Among these skills, Operating Systems is the only one taught in all five universities, with
Computer Science and Software Engineering following closely behind. Project Management ranks as the
second most sought-after skill in the IT industry, but only the Ghana Institute of Management offers
it as a course for Computer Science students. Additionally, risk management, a crucial component of
project management, is not currently included in any Ghanaian university curriculum, which differs
from the standards in the United States, where most CS programs cover these topics. Web development
skills, including HTML and CSS, are also highly valued in the job market but are rarely included in
university programs, if at all.''')
'''
with tab3:
st.header("Gap - interactive")
st.write("##")
#read data
uni_skills = pd.read_csv("data/univercities_skills_comparison.csv")
uni_ind_skills = pd.read_csv("data/univercities_industry_skills_comparison.csv")
with st.container():
'''