Skip to content

If you are new at development and don't know what to do to demonstrate your skills this repo is to you :D

License

Notifications You must be signed in to change notification settings

gutocosta/devJR-portfolio-starter

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 

Repository files navigation

devJR-portfolio-starter

If you are new at development and don't know what to do to demonstrate your skills, this repo is to you :D

How this works?

This repo gives ideas to small apps that can show different fields of basic programming to create your initial portolio. Also shows how to create those apps and where to find the knowledge enough to do it. ENJOY!

Table of Contents

Frontend

I assume that you already have basic knowledge in basic (html, css and js). Frontend development you will need to demonstrate your skills with:

  • CSS technologies
    • CSS3
    • Bootstrap
    • Layout Systems
    • Pre-processors
  • JavaScrip
    • DOM
    • AJAX
    • CRUD
    • API consuming
    • Design Patterns/important JS features
    • Frontend frameworks(optional)

PS: Each topic of this repo has several options, so you can choose wich one fits your goal with coding.

Backend

Needs data here.

Frontend

To create some interesting css projects you can dig into some important aspects of css beyond basics, that they are:

  1. CSS3
  1. Bootstrap
  • Where to learn: GetBootstrap.
  • Small examples: simple examples.
  • What you can do: You can do a responsive page using bootstrap col-system with 3 different components of bootstrap.
  1. Layout systems (flexbox and grid)
  • Where to learn: Flexbox and GRID.
  • Small examples:
  • What you can do: You can create a page a little more complex layout with several columns and responsive to not just phones but also tablets.
  1. Pre-processors (sass or less)
  • Where to learn: Sass and Less.
  • Small examples:
  • What you can do: You can translate some of your older projects to sass or less and compare the difference between them and css.
  1. DOM
  1. AJAX requests
  • Where to learn: MDN and W3Schools.
  • Small examples:
  • What you can do: You can create a folder with 2 others folders inside it. Than create a file that has a dropdown menu where the options are the folders name(using ajax) and when clicked shows the content of the folder.
  1. CRUD

TODO using DOM and es2015:

HTML

<body>
    <h1>Simple Todo List</h1>

    Name:
    <input id="formAdd" type="text" name="name">
    <button onclick="add()">Add</button>
    </br>
    <div id="todoList">
        <ul id="list">

        </ul>
    </div>

    <script src="todo.js"></script>
</body>

JS:

createLiElement = (value) => {
    const ul = document.getElementById("list");
    const li = document.createElement("li");
    const children = ul.children.length + 1;
    const buttonDelete = document.createElement("button");
    const buttonUpdate = document.createElement("button");
    buttonDelete.innerHTML = "Delete";
    buttonDelete.onclick = deleteBtn;
    buttonUpdate.innerHTML = "Update";
    document.getElementById("formAdd").value = '';
    buttonUpdate.onclick = (e, addEventListener) => updateBtn(closure(), e);
    li.setAttribute("id", children);
    const closure = () => {
        return {
            ul: ul,
            li: li,
            buttonDelete: buttonDelete,
            buttonUpdate: buttonUpdate
        }
    }
    li.appendChild(document.createTextNode(value + ' '));
    li.appendChild(buttonDelete);
    li.appendChild(buttonUpdate);
    ul.appendChild(li)
};

add = () => {
    const addValue = document.getElementById("formAdd").value;
    return (addValue === null || addValue === '') ? alert('Please fill this form') : createLiElement(addValue);
};

deleteBtn = (e) => {
    const liId = e.path[1].id;
    const elem = document.getElementById(liId);
    elem.parentNode.removeChild(elem);
};

updateBtn = (closure, e) => {
    const value = document.getElementById("formAdd").value;    
    return (value === null || value === '') ? alert('Write in the field!') : (() => {
        const liId = e.path[1].id;
        const elem = document.getElementById(liId);
        closure.buttonDelete.innerHTML = "Delete";
        closure.buttonDelete.onclick = deleteBtn;
        closure.buttonUpdate.innerHTML = "Update";
        const div = document.createElement("div");
        const item = closure.li.appendChild(div);
        item.setAttribute("id", liId);        
        div.appendChild(document.createTextNode(value + " "))
        div.appendChild(closure.buttonDelete);
        div.appendChild(closure.buttonUpdate);
        elem.parentNode.replaceChild(item, elem);
        document.getElementById("formAdd").value = '';        
    })();
};
  1. API consuming
  • Where to learn: Using ajax, using jquery or using axios(this one needs to know NPM and node modules manegement, it is optional to use this).
  • Small examples:
  • What you can do: You can make a search field that receives a string, and returns some information from some public API here.
  • Sample:
//This shows in the console random jokes about Chuck Norris.
(function loadDoc() {
      var xhttp = new XMLHttpRequest();
      xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
        var obj = JSON.parse(this.response);  //Parser to extract just the information that i want.
            console.log(obj.value.joke); 
        }
      };
      xhttp.open("GET", "http://api.icndb.com/jokes/random", false);
      xhttp.send();
    } )()
  1. Patterns and important JS features
  1. Frameworks frontend

PS: Site with todolists implemmented in several js frameworks: http://todomvc.com/

About

If you are new at development and don't know what to do to demonstrate your skills this repo is to you :D

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published