diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..8fa9061 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,51 @@ +# Simple workflow for deploying static content to GitHub Pages +name: Deploy static content to Pages + +on: + # Runs on pushes targeting the default branch + push: + branches: ['main'] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets the GITHUB_TOKEN permissions to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow one concurrent deployment +concurrency: + group: 'pages' + cancel-in-progress: true + +jobs: + # Single deploy job since we're just deploying + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set up Node + uses: actions/setup-node@v3 + with: + node-version: 18 + cache: 'npm' + - name: Install dependencies + run: npm install + - name: Build + run: npm run build + - name: Setup Pages + uses: actions/configure-pages@v3 + - name: Upload artifact + uses: actions/upload-pages-artifact@v1 + with: + # Upload dist repository + path: './dist' + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v1 diff --git a/Shelly.jpg b/Shelly.jpg new file mode 100644 index 0000000..dccd0ab Binary files /dev/null and b/Shelly.jpg differ diff --git a/data.json b/data.json index fc52a32..7d0c6d6 100644 --- a/data.json +++ b/data.json @@ -1,38 +1,82 @@ { - "user" : { - "fullName" : "", - "photo" : "", - "phone" : "", - "email" : "" + "personalDetails": { + "name": "Luvuyo Bheki Ndlovu", + "profession": "Mathematician/Statistician", + "citizenship": "South African", + "description": "I am a versatile and analytical problem solver, equipped with a strong foundation in Mathematical and statistical techniques. I have a deep understanding of Mathematical modelling, data analysis, and computational methods, and skilled in applying these tools to real life problems in fields such as science, engineering, economics, and finance. With a solid grasp of probability, statistics, and data visualization, I can collect, analyze, and interpret complex data and communicate insights effectively to both technical and non-technical audiences. Additionally, I have programming skills in languages such as R, Python, Javascript, Matlab, and I am familiar with machine learning algorithms and data science techniques.", + "contactDetails": { + "address": "Klipspriut 18 Flamingo street", + "phone": "(+27) 746742501", + "email": "bhekiluvuyo@gmail.com" + }, + "profilePic": "./Shelly.jpg" }, - "education" : { - "institutionName" : "", - "photo" : "", - "description" : "" - }, - "foreignLanguage" : { - "language" : "", - "phrases" : [{ - "englishPhrase" : "", - "foreignLanguage" : "" - }, - { - "englishPhrase" : "", - "foreignLanguage" : "" - }] - }, - "favouriteSubjects" : [ - { - "name" : "", - "description" : "" - }, - { - "name" : "", - "description" : "" - }, - { - "name" : "", - "description" : "" - } + "workExperience": [ + { + "company": "University of Johannesburg", + "position": "Software Engineering Internship", + "dates": "March 2024 - October 2024", + "description": "As a Software Engineering intern, I worked with experienced engineers to design, build, and test software applications. We collaborated with teams and learned industry best practices." + }, + { + "company": "University of KwaZulu Natal", + "position": "Research Assistant (vacation work)", + "dates": "June 2014 - March 2015", + "description": "As a research assistant, I gained valuable vacation work experience supporting postgraduate students with their research projects. I assisted with data collection and data analysis, sharpening my skills in academic research and critical thinking. Through this experience, I gained a deeper understanding of various research methodologies and techniques, and developed my ability to work collaboratively and effectively in an academic setting. I also had the opportunity to present research findings and receive feedback from academics and peers." + } + ], + "education": [ + { + "degree": "BSc in Applied Mathematics and Statistics", + "institution": "University of KwaZulu Natal", + "coursework": [ + "The fundamentals of Calculus", + "Linear Algebra", + "Mathematical modelling", + "Statistical modelling" + ] + }, + { + "certificate": "National Senior Certificate", + "institution": "Estcourt Secondary School" + } + ], + "skills": [ + { + "name": "Problem solving skills", + "description": "Ability to analyze complex problems, identify key issues, and develop creative solutions." + }, + { + "name": "Programming skills", + "description": "Proficient in programming languages such as Python, R, and Matlab with experience in software development and coding." + }, + { + "name": "Statistical knowledge", + "description": "Understanding of statistical concepts and techniques, including hypothesis testing, regression analysis, and time series analysis." + } + ], + "references": [ + { + "name": "Collen Downs", + "position": "Professor and SARCHI Research Chair in Ecosystem and Biodiversity", + "institution": "University of KwaZulu Natal", + "contact": "0332605127/04", + "email": "Downs@ukzn.ac.za" + }, + { + "name": "Mr Allay Ebrahim", + "position": "Principal Technician", + "institution": "University of KwaZulu Natal", + "contact": "0332605661/0724665466", + "email": "allye@ukzn.ac.za" + }, + { + "name": "Xolani Mabaso", + "position": "SA National Biodiversity Institute Conservation Officer", + "institution": "University of KwaZulu Natal", + "contact": "0332605661/0724665466", + "email": "xolani@ukzn.ac.za" + } ] -} \ No newline at end of file + } + \ No newline at end of file diff --git a/index.html b/index.html index 4a29874..294423f 100644 --- a/index.html +++ b/index.html @@ -3,9 +3,124 @@ - Document + Profile of Luvuyo Bheki Ndlovu + -

Hello World

+
+

Profile of Luvuyo Bheki Ndlovu

+ Profile Picture + +
+

Personal Details

+

Name: Luvuyo Bheki Ndlovu

+

Profession: Mathematician/Statistician

+

Citizenship: South African

+

Description: I am a versatile and analytical problem solver, equipped with a strong foundation in Mathematical and statistical techniques. I have a deep understanding of Mathematical modelling, data analysis, and computational methods, and skilled in applying these tools to real life problems in fields such as science, engineering, economics, and finance. With a solid grasp of probability, statistics, and data visualization, I can collect, analyze, and interpret complex data and communicate insights effectively to both technical and non-technical audiences. Additionally, I have programming skills in languages such as R, Python, Javascript, Matlab, and I am familiar with machine learning algorithms and data science techniques.

+ +
+

Contact Details

+

Address: Klipspriut 18 Flamingo street

+

Phone: (+27) 746742501

+

Email: bhekiluvuyo@gmail.com

+
+
+ +
+

Work Experience

+
+

University of Johannesburg

+

Position: Software Engineering Internship

+

Dates: March 2024 - October 2024

+

Description: As a Software Engineering intern, I worked with experienced engineers to design, build, and test software applications. We collaborated with teams and learned industry best practices.

+
+
+

University of KwaZulu Natal

+

Position: Research Assistant (vacation work)

+

Dates: June 2014 - March 2015

+

Description: As a research assistant, I gained valuable vacation work experience supporting postgraduate students with their research projects. I assisted with data collection and data analysis, sharpening my skills in academic research and critical thinking. Through this experience, I gained a deeper understanding of various research methodologies and techniques, and developed my ability to work collaboratively and effectively in an academic setting. I also had the opportunity to present research findings and receive feedback from academics and peers.

+
+
+ +
+

Education

+
+

University of KwaZulu Natal

+

Degree: BSc in Applied Mathematics and Statistics

+

Coursework:

+
    +
  • The fundamentals of Calculus
  • +
  • Linear Algebra
  • +
  • Mathematical modelling
  • +
  • Statistical modelling
  • +
+
+
+

Estcourt Secondary School

+

Certificate: National Senior Certificate

+
+
+ +
+

Skills

+
+

Problem solving skills

+

Ability to analyze complex problems, identify key issues, and develop creative solutions.

+
+
+

Programming skills

+

Proficient in programming languages such as Python, R, and Matlab with experience in software development and coding.

+
+
+

Statistical knowledge

+

Understanding of statistical concepts and techniques, including hypothesis testing, regression analysis, and time series analysis.

+
+
+ +
+

References

+
+

Collen Downs

+

Position: Professor and SARCHI Research Chair in Ecosystem and Biodiversity

+

Institution: University of KwaZulu Natal

+

Contact: 0332605127/04

+

Email: Downs@ukzn.ac.za

+
+
+

Mr Allay Ebrahim

+

Position: Principal Technician

+

Institution: University of KwaZulu Natal

+

Contact: 0332605661/0724665466

+

Email: allye@ukzn.ac.za

+
+
+

Xolani Mabaso

+

Position: SA National Biodiversity Institute Conservation Officer

+

Institution: University of KwaZulu Natal

+

Contact: 0332605661/0724665466

+

Email: xolani@ukzn.ac.za

+
+
+
- \ No newline at end of file + diff --git a/public/Shelly.jpg b/public/Shelly.jpg new file mode 100644 index 0000000..dccd0ab Binary files /dev/null and b/public/Shelly.jpg differ diff --git a/public/styles.css b/public/styles.css new file mode 100644 index 0000000..dcf6d0b --- /dev/null +++ b/public/styles.css @@ -0,0 +1,126 @@ + +body{ + font-family:'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif; + font-size: 16px; + width: 90%; + padding: 1em; + background-color: #FFD7BE ; +} + +p{ + line-height: 30px; +} + +hr{ + margin: 2em auto; + height: 2px; + background-color: black; + border: 1px solid gray; +} + + +.profilePic{ + border-radius: 15em; + width: 18em; +} +.contactIcon{ + border-radius: 13em; +} + +.istImage{ + width: 80%; +} + +.cityDescription{ + flex: 1; + line-height: 30px; +} + +.tableLanguage, tr, th, td{ + border: 1px solid black; +} + +.tableLanguage{ + width: 100%; +} +#webText, +.favSubjects{ + text-align: center; +} +.btnContainer{ + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + margin-top: 70px; +} +.flexButton{ + margin-bottom: 15px; +} + +/*favourite subjects styling*/ +.subjectImg, +.subjectImg01, +.subjectImg02{ + width: 90%; +} + +.bodyBackground, +.Intro{ + color: black; + background-image: url(images/Table-Mountain_GettyImages.webp); + background-repeat: no-repeat; + background-attachment: fixed; + background-position: center; +} + +.placeInfo{ + display: flex; + flex: 2; +} +.placePic{ + margin-right: 5px; + flex: 1; +} +.myFooter{ + margin-top: 60px; +} + +#desktopPic{ + display: none; +} + +#mobilePic{ + display: inline-block; +} + +@media (min-width:760px){ + .Intro, + .contactDetails, + .city, + .histFlex, + .subjects{ + display: flex; + justify-content: space-between; + margin: 1em; + } + .placeInfo{ + display: flex; + flex: 3; + } + .placePic{ + margin-right: 5px; + flex: 1; + } + .cityPI{ + flex: 1; + } + + #mobilePic{ + display: none; + } + + #desktopPic{ + display: inline-block; + } +} \ No newline at end of file diff --git a/styles.css b/styles.css new file mode 100644 index 0000000..dcf6d0b --- /dev/null +++ b/styles.css @@ -0,0 +1,126 @@ + +body{ + font-family:'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif; + font-size: 16px; + width: 90%; + padding: 1em; + background-color: #FFD7BE ; +} + +p{ + line-height: 30px; +} + +hr{ + margin: 2em auto; + height: 2px; + background-color: black; + border: 1px solid gray; +} + + +.profilePic{ + border-radius: 15em; + width: 18em; +} +.contactIcon{ + border-radius: 13em; +} + +.istImage{ + width: 80%; +} + +.cityDescription{ + flex: 1; + line-height: 30px; +} + +.tableLanguage, tr, th, td{ + border: 1px solid black; +} + +.tableLanguage{ + width: 100%; +} +#webText, +.favSubjects{ + text-align: center; +} +.btnContainer{ + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + margin-top: 70px; +} +.flexButton{ + margin-bottom: 15px; +} + +/*favourite subjects styling*/ +.subjectImg, +.subjectImg01, +.subjectImg02{ + width: 90%; +} + +.bodyBackground, +.Intro{ + color: black; + background-image: url(images/Table-Mountain_GettyImages.webp); + background-repeat: no-repeat; + background-attachment: fixed; + background-position: center; +} + +.placeInfo{ + display: flex; + flex: 2; +} +.placePic{ + margin-right: 5px; + flex: 1; +} +.myFooter{ + margin-top: 60px; +} + +#desktopPic{ + display: none; +} + +#mobilePic{ + display: inline-block; +} + +@media (min-width:760px){ + .Intro, + .contactDetails, + .city, + .histFlex, + .subjects{ + display: flex; + justify-content: space-between; + margin: 1em; + } + .placeInfo{ + display: flex; + flex: 3; + } + .placePic{ + margin-right: 5px; + flex: 1; + } + .cityPI{ + flex: 1; + } + + #mobilePic{ + display: none; + } + + #desktopPic{ + display: inline-block; + } +} \ No newline at end of file diff --git a/vite.config.js b/vite.config.js index 07e4890..1330deb 100644 --- a/vite.config.js +++ b/vite.config.js @@ -2,9 +2,12 @@ import handlebars from 'vite-plugin-handlebars'; import data from './data.json'; export default { + base : '/responsive_cv/' plugins: [ handlebars({ - context: {}, // replace the curly brackets with data.json + context: data, // replace the curly brackets with data.json }), ], -}; +}); + +