Upload 17 files
Browse files- .devcontainer/devcontainer.json +33 -0
- __pycache__/constant.cpython-310.pyc +0 -0
- __pycache__/constant.cpython-39.pyc +0 -0
- pages/1_π_Certificates.py +79 -0
- pages/2_π_Experience.py +29 -0
- pages/3_π¨_Portofolio.py +73 -0
- pages/4_π_Contacts.py +22 -0
- src/3D_map_creator.png +0 -0
- src/ShinyDataPlatform.jpg +0 -0
- src/WebVR_Data_Visualisation_Portal.png +0 -0
- src/automated_data_quality_explorer.png +0 -0
- src/covid19_rpot.png +0 -0
- src/easy_chart_maker.png +0 -0
- src/nz_commuter_insights_portal.png +0 -0
- src/nz_traffic_ai_portal.png +0 -0
- src/portrait.jpeg +0 -0
- src/resume.pdf +0 -0
.devcontainer/devcontainer.json
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "Python 3",
|
3 |
+
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
|
4 |
+
"image": "mcr.microsoft.com/devcontainers/python:1-3.11-bullseye",
|
5 |
+
"customizations": {
|
6 |
+
"codespaces": {
|
7 |
+
"openFiles": [
|
8 |
+
"README.md",
|
9 |
+
"π _Mainpage.py"
|
10 |
+
]
|
11 |
+
},
|
12 |
+
"vscode": {
|
13 |
+
"settings": {},
|
14 |
+
"extensions": [
|
15 |
+
"ms-python.python",
|
16 |
+
"ms-python.vscode-pylance"
|
17 |
+
]
|
18 |
+
}
|
19 |
+
},
|
20 |
+
"updateContentCommand": "[ -f packages.txt ] && sudo apt update && sudo apt upgrade -y && sudo xargs apt install -y <packages.txt; [ -f requirements.txt ] && pip3 install --user -r requirements.txt; pip3 install --user streamlit; echo 'β
Packages installed and Requirements met'",
|
21 |
+
"postAttachCommand": {
|
22 |
+
"server": "streamlit run π _Mainpage.py --server.enableCORS false --server.enableXsrfProtection false"
|
23 |
+
},
|
24 |
+
"portsAttributes": {
|
25 |
+
"8501": {
|
26 |
+
"label": "Application",
|
27 |
+
"onAutoForward": "openPreview"
|
28 |
+
}
|
29 |
+
},
|
30 |
+
"forwardPorts": [
|
31 |
+
8501
|
32 |
+
]
|
33 |
+
}
|
__pycache__/constant.cpython-310.pyc
ADDED
Binary file (7.72 kB). View file
|
|
__pycache__/constant.cpython-39.pyc
ADDED
Binary file (15.3 kB). View file
|
|
pages/1_π_Certificates.py
ADDED
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
from constant import *
|
3 |
+
|
4 |
+
st.set_page_config(page_title="Certificates", page_icon="π") #layout="wide"
|
5 |
+
|
6 |
+
# page functions ----------------------------------------------------------------
|
7 |
+
def Certificate_component(header, content):
|
8 |
+
st.subheader(header, divider='grey')
|
9 |
+
st.write(content)
|
10 |
+
|
11 |
+
# Neo4j Certified Professional ----------------------------------------------------------------
|
12 |
+
Certificate_component(Certificate[1][0], Certificate[1][1])
|
13 |
+
st.link_button("Show Credential", "https://graphacademy.neo4j.com/c/1266544c-bf9a-48c3-b9c3-404fea532914/")
|
14 |
+
|
15 |
+
# Neo4j Graph Data Science Certification ----------------------------------------------------------------
|
16 |
+
Certificate_component(Certificate[2][0], Certificate[2][1])
|
17 |
+
st.link_button("Show Credential", "https://graphacademy.neo4j.com/c/8bb4232d-0ddb-43ac-9e59-7dd49e30ac55/")
|
18 |
+
|
19 |
+
|
20 |
+
# Introduction to Generative AI ----------------------------------------------------------------
|
21 |
+
Certificate_component(Certificate[3][0], Certificate[3][1])
|
22 |
+
st.link_button("Show Credential", "https://www.cloudskillsboost.google/public_profiles/bef4bb07-9143-4af0-897a-16f3e7ee3c52/badges/8788951?utm_medium=social&utm_source=linkedin&utm_campaign=ql-social-share")
|
23 |
+
|
24 |
+
|
25 |
+
# Responsible AI: Applying AI Principles with Google Cloud ----------------------------------------------------------------
|
26 |
+
Certificate_component(Certificate[4][0], Certificate[4][1])
|
27 |
+
st.link_button("Show Credential", "https://www.cloudskillsboost.google/public_profiles/bef4bb07-9143-4af0-897a-16f3e7ee3c52/badges/8802352?utm_medium=social&utm_source=linkedin&utm_campaign=ql-social-share")
|
28 |
+
|
29 |
+
|
30 |
+
# FME Certified Professional ----------------------------------------------------------------
|
31 |
+
Certificate_component(Certificate[5][0], Certificate[5][1])
|
32 |
+
st.link_button("Show Credential", "https://verify.skilljar.com/c/394vd2w3afwz")
|
33 |
+
|
34 |
+
|
35 |
+
# FME Flow Certified Professional ----------------------------------------------------------------
|
36 |
+
Certificate_component(Certificate[6][0], Certificate[6][1])
|
37 |
+
st.link_button("Show Credential", "https://verify.skilljar.com/c/sqcc2m92297t")
|
38 |
+
|
39 |
+
# Intel Edge AI Certification ----------------------------------------------------------------
|
40 |
+
Certificate_component(Certificate[7][0], Certificate[7][1])
|
41 |
+
st.link_button("Show Credential", "https://www.credly.com/badges/4c37350e-af67-47e9-ba2c-973b5aa312ef/linked_in_profile")
|
42 |
+
|
43 |
+
# ESRI MOOC Training Certificate on Image in Action ----------------------------------------------------------------
|
44 |
+
Certificate_component(Certificate[8][0], Certificate[8][1])
|
45 |
+
st.link_button("Show Credential", "https://www.esri.com/training/TrainingRecord/Certificate/drwliu/60ee6b41848a70360bfefe9b/-720")
|
46 |
+
|
47 |
+
# Amazon Web Services (AWS) Certified ----------------------------------------------------------------
|
48 |
+
Certificate_component(Certificate[9][0], Certificate[9][1])
|
49 |
+
st.link_button("Show Credential", "https://www.udemy.com/certificate/UC-89c37815-e7f7-4e0c-9de7-8fd0b05420dc/")
|
50 |
+
|
51 |
+
# A-Z Machine Learning using Azure Machine Learning (AzureML) ----------------------------------------------------------------
|
52 |
+
Certificate_component(Certificate[10][0], Certificate[10][1])
|
53 |
+
st.link_button("Show Credential", "https://www.udemy.com/certificate/UC-aad91179-4bbc-4942-92cf-89d260d5cf26/")
|
54 |
+
|
55 |
+
# Advanced Microsoft Power BI ----------------------------------------------------------------
|
56 |
+
Certificate_component(Certificate[11][0], Certificate[11][1])
|
57 |
+
st.link_button("Show Credential", "https://www.linkedin.com/help/learning/answer/a598944/learning-certificates-of-completion-faqs?trk=lynda_redirect_learning&lang=en")
|
58 |
+
|
59 |
+
|
60 |
+
# Azure Administrator: AZ-103/AZ-104 ----------------------------------------------------------------
|
61 |
+
Certificate_component(Certificate[12][0], Certificate[12][1])
|
62 |
+
st.link_button("Show Credential", "https://www.udemy.com/certificate/UC-75926ebb-05f2-4841-aaae-1599c94294eb/")
|
63 |
+
|
64 |
+
|
65 |
+
# Tableau Data Scientist ----------------------------------------------------------------
|
66 |
+
Certificate_component(Certificate[13][0], Certificate[13][1])
|
67 |
+
st.link_button("Show Credential", "https://www.credly.com/badges/3dee6f46-afff-435e-a6fe-cbeb9612f315/")
|
68 |
+
|
69 |
+
# Tableau Analyst ----------------------------------------------------------------
|
70 |
+
Certificate_component(Certificate[14][0], Certificate[14][1])
|
71 |
+
st.link_button("Show Credential", "https://www.credly.com/badges/0c140c82-8a8a-4413-a593-54f6b3524560/")
|
72 |
+
|
73 |
+
# Tableau Developer ----------------------------------------------------------------
|
74 |
+
Certificate_component(Certificate[15][0], Certificate[15][1])
|
75 |
+
st.link_button("Show Credential", "https://www.credly.com/badges/c055f478-8da9-4019-bc69-264d3bc69af2/")
|
76 |
+
|
77 |
+
|
78 |
+
|
79 |
+
|
pages/2_π_Experience.py
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
import streamlit.components.v1 as components
|
3 |
+
from constant import *
|
4 |
+
|
5 |
+
st.set_page_config(page_title="Experience", page_icon="π", layout="wide")
|
6 |
+
st.header("π Experience",divider='rainbow')
|
7 |
+
st.write("")
|
8 |
+
|
9 |
+
def experience_unit(title, position, date, location, content,button_name,button_link):
|
10 |
+
col1, col2, col3 = st.columns([3, 1, 1])
|
11 |
+
with col1:
|
12 |
+
st.subheader(title)
|
13 |
+
with col3:
|
14 |
+
st.write("")
|
15 |
+
st.markdown("###### " + date)
|
16 |
+
col1, col2, col3 = st.columns([3, 1, 1])
|
17 |
+
with col1:
|
18 |
+
st.markdown("###### " + position)
|
19 |
+
with col3:
|
20 |
+
st.markdown("###### " + location)
|
21 |
+
st.write(content)
|
22 |
+
st.link_button(button_name, button_link)
|
23 |
+
st.divider()
|
24 |
+
|
25 |
+
for exp in Experience:
|
26 |
+
experience_unit(exp[0],exp[1],exp[2],exp[3],exp[4],exp[5],exp[6])
|
27 |
+
|
28 |
+
|
29 |
+
|
pages/3_π¨_Portofolio.py
ADDED
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
import streamlit.components.v1 as components
|
3 |
+
from constant import *
|
4 |
+
|
5 |
+
# page config ----------------------------------------------------------------
|
6 |
+
st.set_page_config(page_title="Portofolio", page_icon="π¨", layout="wide")
|
7 |
+
st.header("π¨ Portfolio",divider='rainbow')
|
8 |
+
|
9 |
+
# page functions ----------------------------------------------------------------
|
10 |
+
def Portfolio_component(header, content):
|
11 |
+
st.subheader(header, divider='grey')
|
12 |
+
st.write(content)
|
13 |
+
|
14 |
+
# Shiny Data Platform ----------------------------------------------------------------
|
15 |
+
Portfolio_component(Portfolio[1][0], Portfolio[1][1])
|
16 |
+
|
17 |
+
st.image("src/ShinyDataPlatform.jpg")
|
18 |
+
st.link_button("Shiny Data Platform Demo", "https://transbig.shinyapps.io/Shiny_Data_Platform_Demo")
|
19 |
+
|
20 |
+
|
21 |
+
# Easy Chart Maker --------------------------------------------------------------
|
22 |
+
Portfolio_component(Portfolio[2][0], Portfolio[2][1])
|
23 |
+
|
24 |
+
st.image("src/easy_chart_maker.png")
|
25 |
+
|
26 |
+
st.link_button("Go to Easy Chart Maker Tool", "https://transbig.shinyapps.io/easy_chart_maker/")
|
27 |
+
|
28 |
+
# New Zealand Commuter Insights Portal --------------------------------------------------------------
|
29 |
+
Portfolio_component(Portfolio[3][0], Portfolio[3][1])
|
30 |
+
|
31 |
+
st.image("src/nz_commuter_insights_portal.png")
|
32 |
+
|
33 |
+
st.link_button("New Zealand Commuter Insights Portal Demo Link", "https://transbig.shinyapps.io/NZ_Commuter_Insights_Portal")
|
34 |
+
|
35 |
+
|
36 |
+
# 3D Map Creator -----------------------------------------------------------
|
37 |
+
Portfolio_component(Portfolio[4][0], Portfolio[4][1])
|
38 |
+
|
39 |
+
st.image("src/3D_map_creator.png")
|
40 |
+
|
41 |
+
st.link_button("Try the 3D Map Creator Tool", "https://transbig.shinyapps.io/3D_Map_Creator/")
|
42 |
+
|
43 |
+
|
44 |
+
# Automated Data Quality Explorer -----------------------------------------------------------
|
45 |
+
Portfolio_component(Portfolio[5][0], Portfolio[5][1])
|
46 |
+
|
47 |
+
st.image("src/automated_data_quality_explorer.png")
|
48 |
+
|
49 |
+
st.link_button("Try the Automated Data Quality Tool", "https://transbig.shinyapps.io/Shiny_Data_Quality_Explorer/")
|
50 |
+
|
51 |
+
|
52 |
+
# WebVR Data Visualisation Portal -----------------------------------------------------------
|
53 |
+
Portfolio_component(Portfolio[6][0], Portfolio[6][1])
|
54 |
+
|
55 |
+
st.image("src/WebVR_Data_Visualisation_Portal.png")
|
56 |
+
|
57 |
+
|
58 |
+
|
59 |
+
# NZ Traffic AI Portal -----------------------------------------------------------
|
60 |
+
Portfolio_component(Portfolio[7][0], Portfolio[7][1])
|
61 |
+
|
62 |
+
st.image("src/nz_traffic_ai_portal.png")
|
63 |
+
|
64 |
+
st.link_button("Try the NZ Traffic AI Portal", "https://transbig.shinyapps.io/NZTrafficAI")
|
65 |
+
|
66 |
+
|
67 |
+
|
68 |
+
# covid19_rpot -----------------------------------------------------------
|
69 |
+
Portfolio_component(Portfolio[8][0], Portfolio[8][1])
|
70 |
+
|
71 |
+
st.image("src/covid19_rpot.png")
|
72 |
+
|
73 |
+
st.link_button("Try the Covid19 Response Prioritisation and Programme Optimisation Tool", "https://transbig.shinyapps.io/Covid19_RPOT/")
|
pages/4_π_Contacts.py
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
from constant import *
|
3 |
+
|
4 |
+
st.set_page_config(page_title="Contacts", page_icon="π") #layout="wide"
|
5 |
+
|
6 |
+
st.markdown(f"##### π Phone: +64 {phone}")
|
7 |
+
st.markdown(f"##### βοΈ Email: {email}")
|
8 |
+
with st.container():
|
9 |
+
col1, col2 = st.columns([0.1, 3])
|
10 |
+
with col1:
|
11 |
+
st.write(linkedin_logo, unsafe_allow_html=True)
|
12 |
+
with col2:
|
13 |
+
st.markdown(f"##### Linkedin: {linkedin_link}")
|
14 |
+
with st.container():
|
15 |
+
col1, col2 = st.columns([0.1, 3])
|
16 |
+
with col1:
|
17 |
+
st.write(github_logo, unsafe_allow_html=True)
|
18 |
+
with col2:
|
19 |
+
st.markdown(f"##### Github: {github_link}")
|
20 |
+
|
21 |
+
|
22 |
+
|
src/3D_map_creator.png
ADDED
src/ShinyDataPlatform.jpg
ADDED
src/WebVR_Data_Visualisation_Portal.png
ADDED
src/automated_data_quality_explorer.png
ADDED
src/covid19_rpot.png
ADDED
src/easy_chart_maker.png
ADDED
src/nz_commuter_insights_portal.png
ADDED
src/nz_traffic_ai_portal.png
ADDED
src/portrait.jpeg
ADDED
src/resume.pdf
ADDED
Binary file (78.9 kB). View file
|
|