diff --git a/Luke-Manyamazi-Portfolio/AlarmClock.png b/Luke-Manyamazi-Portfolio/AlarmClock.png new file mode 100644 index 00000000..8fc01993 Binary files /dev/null and b/Luke-Manyamazi-Portfolio/AlarmClock.png differ diff --git a/Luke-Manyamazi-Portfolio/CS50P.png b/Luke-Manyamazi-Portfolio/CS50P.png new file mode 100644 index 00000000..4ee95b02 Binary files /dev/null and b/Luke-Manyamazi-Portfolio/CS50P.png differ diff --git a/Luke-Manyamazi-Portfolio/Form-Control.png b/Luke-Manyamazi-Portfolio/Form-Control.png new file mode 100644 index 00000000..3ced54f0 Binary files /dev/null and b/Luke-Manyamazi-Portfolio/Form-Control.png differ diff --git a/Luke-Manyamazi-Portfolio/FreeCodeCamp.png b/Luke-Manyamazi-Portfolio/FreeCodeCamp.png new file mode 100644 index 00000000..ba0ae857 Binary files /dev/null and b/Luke-Manyamazi-Portfolio/FreeCodeCamp.png differ diff --git a/Luke-Manyamazi-Portfolio/Karel.png b/Luke-Manyamazi-Portfolio/Karel.png new file mode 100644 index 00000000..980f7e80 Binary files /dev/null and b/Luke-Manyamazi-Portfolio/Karel.png differ diff --git a/Luke-Manyamazi-Portfolio/birthday.png b/Luke-Manyamazi-Portfolio/birthday.png new file mode 100644 index 00000000..bad84922 Binary files /dev/null and b/Luke-Manyamazi-Portfolio/birthday.png differ diff --git a/Luke-Manyamazi-Portfolio/cs50p1.png b/Luke-Manyamazi-Portfolio/cs50p1.png new file mode 100644 index 00000000..a2b9bad8 Binary files /dev/null and b/Luke-Manyamazi-Portfolio/cs50p1.png differ diff --git a/Luke-Manyamazi-Portfolio/cs50p2.png b/Luke-Manyamazi-Portfolio/cs50p2.png new file mode 100644 index 00000000..de2e902b Binary files /dev/null and b/Luke-Manyamazi-Portfolio/cs50p2.png differ diff --git a/Luke-Manyamazi-Portfolio/freecodecamp1.png b/Luke-Manyamazi-Portfolio/freecodecamp1.png new file mode 100644 index 00000000..dae8d61a Binary files /dev/null and b/Luke-Manyamazi-Portfolio/freecodecamp1.png differ diff --git a/Luke-Manyamazi-Portfolio/hero_img.jpg b/Luke-Manyamazi-Portfolio/hero_img.jpg new file mode 100644 index 00000000..cd050b7f Binary files /dev/null and b/Luke-Manyamazi-Portfolio/hero_img.jpg differ diff --git a/Luke-Manyamazi-Portfolio/hometown.png b/Luke-Manyamazi-Portfolio/hometown.png new file mode 100644 index 00000000..bb4fcba8 Binary files /dev/null and b/Luke-Manyamazi-Portfolio/hometown.png differ diff --git a/Luke-Manyamazi-Portfolio/index.html b/Luke-Manyamazi-Portfolio/index.html new file mode 100644 index 00000000..c19deee4 --- /dev/null +++ b/Luke-Manyamazi-Portfolio/index.html @@ -0,0 +1,186 @@ + + + + + + + My Portfolio + + + + + + +
+ +
+ +
+
+
+

About Me

+
+

+ Hi, my name Luke Manyamazi, an IT professional with a wealth of + experience in remote and onsite technical support. Over the years, + I've cultivated a deep passion for technology and programming, + continuously expanding my skill set. I have completed several key + courses, including the CS50P Python + Course, which strengthened my + understanding of problem-solving with Python, as well as + FreeCodeCamp + Responsive Web Design Certification, which helped me + master the basics of building accessible, user-friendly websites. I + also completed Cloud Computing 101 on + Coursera, broadening my knowledge + of cloud infrastructure and services. These experiences have provided + me with a solid foundation in both software development and web + technologies. +

+ +

+ Currently, I am a trainee at CodeYourFuture, where I am sharpening my + coding skills through hands-on projects and collaborative learning. I + am passionate about exploring new programming languages and + technologies, and I look forward to applying my skills to build + real-world solutions. Through my GitHub, I aim to share my learning + journey and projects with the developer community, while continually + improving and taking on new challenges. +

+ +

+ My ultimate goal is to become a full-stack software engineer, capable + of developing robust, end-to-end systems, websites and applications + that solve meaningful problems. I am committed to continuous learning + and growth as I work towards this objective. +

+
+
+
+

Projects Showcase

+
+

+ This section showcases my journey through the CodeYourFuture program, + featuring exercises and projects from day one to completion. + Each module reflects my growth as a developer, highlighting the skills + and concepts I have mastered along the way. I will be updating this section + regularly to share my progress and the projects that demonstrate my + dedication to continuous learning and improvement in coding. Join me + as I transform challenges into opportunities for growth! +

+
+
+
+
+ a mountain with text overlay +
+

Hometown Homepage

+

This is a homepage for my hometown that showcases various things which tourist can do during their visit.

+
+
+
+ +
+
+ a red background image with a birthday message +
+

Birthday Card

+

A beautiful and unique digital birthday card with birthday surprises hidden. Hove over to open the surprise gifts.

+
+
+
+ +
+
+ white background image with a karel that filled all the rows +
+

Fill Karel

+

Fill Karel is a python projects that incorporates different functions to make Karel fill all the rows with a beeper. This is part of the Code in Place python course.

+
+
+
+ +
+
+ a picture with a python logo +
+

CS50P - Python Projects

+

Checkout all the python projects I completed with Harvard's CS50P Intro to Python Course.

+
+
+
+ +
+
+ freecodecamp logo +
+

FreeCodeCamp

+

Here you will get to view the projects and the code for my FreeCodeCamp Developer Certification - Responsive Web Design

+
+
+
+ +
+
+ a picture os a form designed with html and css +
+

Product Pick Form

+

This is a sample product pick-up form that I designed with html and css.

+
+
+
+
+
+ a picture of an alarm clock designed with html and css +
+

Alarm Clock App

+

This is an Alarm Clock App I designed with javascript, html and css.

+
+
+
+
+
+
+

Contact me

+
+

+ I would love to connect! Feel free to reach out through any of the following platforms: +

+

+
+
+ + + + \ No newline at end of file diff --git a/Luke-Manyamazi-Portfolio/style.css b/Luke-Manyamazi-Portfolio/style.css new file mode 100644 index 00000000..889ccd39 --- /dev/null +++ b/Luke-Manyamazi-Portfolio/style.css @@ -0,0 +1,181 @@ +/* General Styles */ +body, +html { + background-color: lightcyan; + font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + margin: 0; + height: 100%; + color: #414a4c; + font-weight: lighter; +} + +main { + margin-left: 200px; + margin-right: 200px; +} + +/* Hero Image and Text */ +.hero-image { + background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url("hero_img.jpg"); + height: 50vh; + background-position: center; + background-repeat: no-repeat; + background-size: cover; + position: relative; +} + +.hero-text { + text-align: center; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + color: white; + font-size: 2rem; +} + +/* Navbar */ +.navbar { + text-align: right; +} + +.navbar a { + color: white; + padding: 1em; + text-decoration: none; + display: inline-block; + margin: 0 0.5em; +} + +/* Section */ +section { + padding: 1em 5vw; +} + +.projects { + display: flex; + justify-content: center; + flex-wrap: wrap; + gap: 20px; + max-width: 1200px; + margin: auto; +} + +.project-item { + position: relative; + width: 90%; + max-width: 300px; + height: 300px; + overflow: hidden; + border-radius: 10px; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); +} + +.project-item:hover .project-image img { + transform: scale(1.1); +} + +.project-image img { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.5s ease; +} + +.overlay { + position: absolute; + bottom: 0; + background: rgba(0, 0, 0, 0.7); + color: #f1f1f1; + width: 100%; + transition: 0.5s ease; + opacity: 0; + text-align: left; + font-size: small; +} + +.project-item:hover .overlay { + opacity: 1; +} + +.overlay p, +h4 { + padding: 1em; +} + +/* Contact Section */ +#contact { + line-height: 1.5; + padding-bottom: 3em; +} + +#contact_links a { + color: blue; + font-weight: bold; +} + +a { + text-decoration: none; + color: white; +} + +a:hover { + color: green; +} + +footer { + text-align: center; + padding: 1em; + color: white; + background-color: #232b2b; + +} + +button { + width: 140px; + height: 40px; + font-size: large; + font-weight: bold; + background-color: lightcyan; + border: none; + border-radius: 5px; + +} + +/* Responsive Adjustments */ +@media (max-width: 768px) { + .hero-text { + font-size: 1.5rem; + padding: 0 1em; + } + + .navbar a { + display: inline-block; + margin: 0.5em 0; + } + + section { + padding: 1em; + } + + .projects { + gap: 15px; + } + + .project-item { + width: 100%; + max-width: 100%; + } +} + +@media (max-width: 480px) { + .hero-text { + font-size: 1.2rem; + } + + button { + width: 120px; + height: 35px; + font-size: medium; + } +} \ No newline at end of file diff --git a/README.md b/README.md index 98549832..f6e904ca 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,53 @@ # Portfolio -Your starting portfolio, to iterate on. +Module 1 iteration of your portfolio. We've got a lot of new concepts here so you might want to work through this in your study group, or bring to class for help. + +_Keep your changes simple!_ + +We are using a different type of pull request workflow from your main coursework. We're doing this because we need lots of practice with Git to be ready to contribute to shared repos like professional developers. In previous cohorts, we only opened PRs to main all the way through the course, and then in Final Projects it was really hard to learn real branching and merging. So let's practice a different workflow now. ## Learning Objectives -- Customise the starting portfolio with your professional details -- Iterate on your portfolio every module -- Review your colleague's portfolio +- [ ] Branch from a branch in Git +- [ ] PR from a branch to a branch in GitHub +- [ ] Create a personal case study for a project ## Requirements -At Code Your Future, we expect everyone to graduate with a unique professional portfolio. Begin building this portfolio as soon as you begin our Software Development Course. At first, your portfolio will be a simple HTML/CSS page deployed to Github Pages or Netlify. This is your MVP. +Your case study should be a short description of the project, including: the problem it solves, the technologies used, the approach taken, a link to the deployed project, and a link to the code on GitHub. + +Explain the problem and your solution in your own words, and don't just copy and paste the project brief. The point of a portfolio is to make _you stand out_, so write in your own voice. It's fine to choose something that you didn't work on all by yourself, but make sure you explain what part you did. + +## Git Ready: Putting our code in the right place + +The instructions here are given for the command line, but you could just as easily do this in GitHub Desktop or GitKraken. + +1. Switch into the branch called `git checkout Module-HTML-CSS` to access this Readme +1. From `Module-HTML-CSS`, create a new branch `git checkout -b your-name-portfolio` +1. Make a new directory `mkdir your-name-portfolio` +1. Move your starter files into this directory `mv index.html style.css your-name-portfolio` +1. Change into the new directory `cd your-name-portfolio` +1. Check you are in the right branch `git branch --show-current` + +## Git Set: Making changes + +1. Open the project in your code editor +1. Make your changes +1. Check your changes with `git status` +1. Add your files to the staging area `git add index.html style.css` . _Remember, don't `git add .` or you could add files you don't mean to._ +1. Commit your changes often `git commit -m "YOUR COMMIT MESSAGE"` + +## Git Go: Making a pull request -Every module, you will _iterate_ on your portfolio, adding a new project and improving your design and presentation. By the time you apply to Final Projects, your portfolio will help you show you are ready to be accepted on to a Final Projects team. +1. Stage your files: `git add index.html style.css` . _Remember, don't `git add .` or you could add files you don't mean to._ +1. Commit your changes `git commit -m "YOUR COMMIT MESSAGE"` +1. Push your changes to GitHub `git push origin your-name-portfolio` +1. Open a pull request to merge your branch into `Module-HTML-CSS` . If you have the [GitHub CLI](https://cli.github.com/manual/gh_pr_create) installed, you can do this with `gh pr create --base Module-HTML-CSS --head your-name-portfolio`. Otherwise do it in the GitHub UI or your Git client. ## Acceptance Criteria - [ ] My portfolio introduces me and my work -- [ ] The design and code is my own, not a template or tutorial +- [ ] The design and code is my own, not a template or tutorial (you can use this code as a starting point) - [ ] Each project is linked to my code on Github and the deployed project - [ ] I have published my professional contact information on my portfolio - [ ] My Accessibility and SEO scores are 100 on Lighthouse @@ -26,6 +56,6 @@ Every module, you will _iterate_ on your portfolio, adding a new project and imp ## Resources -- [Josh Comeau on building your early career profile](https://www.youtube.com/watch?v=OXiaEXfkAec) -- [How to Build an Effective Dev Portfolio](https://www.joshwcomeau.com/effective-portfolio/) -- [CYF Graduate Module](https://module-graduates.codeyourfuture.io/) +- [Powerful Git Completion with ohmyzsh](https://github.com/ohmyzsh/ohmyzsh) +- [GitKraken](https://www.gitkraken.com/) +- [GitLens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens/) diff --git a/index.html b/example-name-portfolio/index.html similarity index 64% rename from index.html rename to example-name-portfolio/index.html index 7b0d8b5a..b76f5bbc 100644 --- a/index.html +++ b/example-name-portfolio/index.html @@ -59,12 +59,37 @@

My Name

Projects Showcase

-

- Lorem, ipsum dolor sit amet consectetur adipisicing elit. Nulla nisi - excepturi quidem, eum rem doloribus quam aspernatur hic enim eligendi - commodi minima ullam necessitatibus, cumque blanditiis, nihil magni - amet consectetur? -

+

Contact me

diff --git a/example-name-portfolio/style.css b/example-name-portfolio/style.css new file mode 100644 index 00000000..ec5097cb --- /dev/null +++ b/example-name-portfolio/style.css @@ -0,0 +1,151 @@ +/* Design tokens. +With tokens, stick to communicating the PURPOSE not the VALUE. +Code should explain, not mystify, your design. +*/ +:root { + --paper: hsla(251, 28%, 88%, 0.99); + --ink: hsla(244, 16%, 17%, 0.95); + --brand: hsla(0, 79%, 63%, 0.9); + --font: "Raleway", system-ui, sans-serif; + --gap: 20px; + --container: clamp(280px, calc(100vw - calc(var(--gap) * 2)), 1180px); + /* https://web.dev/accessible-tap-targets/ */ + --tap-target: 48px; + --box: clamp(280px, 50vw + 2px, 530px); +} + +/* Hey look, dark mode is +so easy with design tokens done this way +*/ +@media (prefers-color-scheme: dark) { + :root { + --ink: hsla(252, 38%, 92%, 0.99); + --paper: hsla(244, 16%, 17%, 1); + } +} + +/* General styles */ +html, +body { + scroll-behavior: smooth; + background: var(--paper); + color: var(--ink); + font-family: var(--font); +} +body { + display: grid; + margin: auto; + min-height: 100vh; + gap: var(--gap); + max-width: var(--container); +} +a, +a:any-link { + color: currentColor; + text-decoration: none; + border-bottom: 2px solid transparent; + transition: border-color ease-in-out 0.3s; +} +a:hover, +a:focus { + color: var(--brand); + border-color: currentColor; +} +p a:any-link { + border-color: var(--brand); +} +/* Site header and navigation +https://elad.medium.com/css-position-sticky-how-it-really-works-54cd01dc2d46 +*/ +body > header { + background: var(--paper); + display: flex; + justify-content: space-between; + align-items: center; + position: sticky; + top: 0; + z-index: 1; +} +nav ul { + display: flex; + list-style: none; + gap: var(--gap); +} + +/* Text readability +https://baymard.com/blog/line-length-readability +*/ +section p { + line-height: 1.5; + max-width: 55ch; +} +/* targeted resets +We're resetting elements with a class - ANY class +- on the grounds that if you added a class, +you added your own styles +*/ +h3[class] { + margin: 0 auto 0 0; +} +ul[class], +li[class] { + margin: 0; + padding: 0; +} + +/* Basic image rules +Don't size images in css, size their containers +Just make images take up the entire space you give them +in every context +*/ +svg { + height: 100%; + width: auto; + min-width: var(--tap-target); +} + +img { + width: 100%; + height: 100%; + max-width: 100%; + object-fit: cover; +} + +picture { + height: auto; + overflow: hidden; +} +/* +I would start breaking this up into component files now btw! +*/ +.showcase { + display: flex; + flex-flow: row wrap; + gap: var(--gap); +} +/* +Here's an example of a grid layout. Notice there's no margin, padding, or sizes given on elements +All the spacing and sizing is set on the template, and the elements +are just slotted in. +The little dots are how we precisely place and size white-space +https://www.interaction-design.org/literature/article/the-power-of-white-space +*/ + +.project { + display: grid; + grid-template: + "picture picture picture" var(--box) + "....... ....... ......." calc(var(--gap) / 2) + "....... heading ......." min-content + "....... blurb ......." auto / + var(--gap) var(--box) var(--gap); +} +.project__picture { + grid-area: picture; +} +.project__heading { + grid-area: heading; +} +.project__blurb { + grid-area: blurb; +} diff --git a/style.css b/style.css deleted file mode 100644 index c911f90c..00000000 --- a/style.css +++ /dev/null @@ -1,57 +0,0 @@ -/* Design tokens */ -:root { - --paper: hsla(251, 28%, 88%, 0.99); - --ink: hsla(244, 16%, 17%, 0.95); - --brand: hsla(0, 79%, 63%, 0.9); - --font: "Raleway", system-ui, sans-serif; - --gap: 20px; - --container: clamp(280px, calc(100vw - calc(var(--gap) * 2)), 1180px); -} -/* General Styles */ -html, -body { - scroll-behavior: smooth; - background: var(--paper); - color: var(--ink); - font-family: var(--font); -} -body { - display: grid; - margin: auto; - min-height: 100vh; - gap: var(--gap); - max-width: var(--container); -} -a, -a:any-link { - color: currentColor; - text-decoration: none; - border-bottom: 2px solid transparent; - transition: border-color ease-in-out 0.3s; -} -a:hover, -a:focus { - color: var(--brand); - border-color: currentColor; -} -/* Site header and navigation */ -body > header { - background: var(--paper); - display: flex; - justify-content: space-between; - align-items: center; - position: sticky; - top: 0; - z-index: 1; -} -nav ul { - display: flex; - list-style: none; - gap: var(--gap); -} - -/* Text readability */ -section p { - line-height: 1.5; - max-width: 55ch; -}