GithubHelp home page GithubHelp logo

j3ss3hva / user-experience-enhanced-website Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fdnd-task/enhanced-website

0.0 0.0 0.0 593 KB

mijn site

Home Page: https://user-experience-enhanced-website-t0gy.onrender.com/

License: MIT License

JavaScript 26.16% CSS 39.36% EJS 34.48%

user-experience-enhanced-website's Introduction

Fork deze leertaak en ga aan de slag. Onderstaande outline ga je gedurende deze taak in jouw eigen GitHub omgeving uitwerken. De instructie vind je in: docs/INSTRUCTIONS.md

Titel

Oba

Inhoudsopgave

Beschrijving

Deze sprint zijn wij verder gegaan om voor Oba een gebruikers pagina te maken. Het word een pagina waar jij als admin de users binnen de familie kan beheren, items kan lenen, de status van een gebruiker bekijken (bijvoorbeeld of hij zijn item moet inleveren of niet), recensies kan achterlaten en toevoegen aan je favoriete.

Gebruik

Je begint bij de index(de overzichts pagina met allemaal items. Hierbnij heb je de mogelijkheid om op je eigen account dingen toe tevoegen aan iets. klik je op een item dan word je naar zijn detail pagina gestuurd en kan je vervolgens zelf kiezen wat je precies met die item wil doen. Je bent zelf een admin dat betekent dat jij een soort van leider bent in je familie. Dat betekent dat je alles kan beheren aan alle accounts die zich bevinden in jouw famillie omgeving.

Kenmerken

Dingen die wij gebruikten is de directus cms waar wij onze dat hebben toegevoegd bijvoorbeeld de items met al hun info en plaatjes, een family lijst met namen + arrays etc.

de code zelf is in ejs vrij klein omdat, ik veel gebruik heb gemaakt van een for each loop voor de items, en users bijvoorbeeld hier:

ejs/html

je ziet hier vrij weinig qua code maar, met de for each loop doet hij alles wat onder de <% data.filter(item => item.item_type === 'book').forEach(book => { %> staat keer het aantal boeken die er zijn.

       <h2>Boeken</h2>
        <% data.filter(item => item.item_type === 'book').forEach(book => { %>
            <li onclick="window.location.href='./detail/<%= book.id %>'">
                <h3><%= book.title %></h3>
                <img src="https://fdnd-agency.directus.app/assets/<%= book.afbeelding %>" alt="<%= book.title %> Image">
                โ‚ฌ<%= book.price %>
            </li>
        <% }); %>

css

Voor deze sprint ben ik een beetje bezig geweest met iets dat heet progressive enhancement. Progressive enhancement betekent dat je verbeteringen toevoegd zodat een bepaald iets toegankelijk en werkend is op elke browser. het testen op verschillende browsers is wat ik als eerst deed. ik kwam namelijk bij firefox tegen dat de navbar die ik heb een onnodige scrollbar hebt. Ook het scrollen zelf werkte niet met mobile formaat op fire fox dus ik heb het volgende gedaan:

De @-moz-document url-prefix() zorgt ervoor dat de volgende aanpassingen binnen zijn {} alleen voor firefox gelden. Ik heb hem zo gemaakt dat hij uiteindelijk precies hetzelfde eruit ziet als bijvoorbeeld in chrome

@-moz-document url-prefix() { 
    @media screen and (max-height: 47.0em) {
      .sidebar .menu-bar {
        overflow-x: hidden;
        scrollbar-width: none;
      }
      
    }
  }

javascript

Deze sprint heb ik ook mijn eerste client side script gemaakt voor dit project

Sinds ik het voor elkaar heb gekregen om items toetevoegen aan een lijst heb ik daarbij ook een functie gemaakt die een popup weergeeft om te laten weten aan een gebruiker dat je item aan de lijst is toegevoegd

 const listpopup = body.querySelector(".item-added") 
const closelist = body.querySelector(".item-added button") 
const currentUrl = window.location.href;
const button = document.querySelector(".add");
const filter = document.querySelector('.filter')

closelist.addEventListener("click" , () =>{
    listpopup.classList.add("closed");
    filter.classList.remove('filter-active')
})


function setButtonText() {
    // Haal de URL op van de huidige pagina
    

    // Controleer of de URL het "added=true" query parameter bevat
    if (currentUrl.includes("added=true")) {
      // Dynamisch de tekst van de knop instellen
      
      button.innerText = "added";
      listpopup.classList.add("show");
      filter.classList.toggle('filter-active')
    }
  }

  // Roep de functie aan zodra de pagina geladen is
  window.onload = setButtonText;

Installatie

  1. clone de code. klik op de groene knop code en clone het of download zip.
  2. als je node hebt open je de terminal. Boven aan vind je de terminal button of klik ctrl + `
  3. dan type npm start of npm run dev om de server te starten
  4. wil je de server sluiten doe dan dit in de terminal ctrl + c

Bronnen

encouraging-slacks-ant.cyclic.app/

Licentie

This project is licensed under the terms of the MIT license.

user-experience-enhanced-website's People

Contributors

j3ss3hva avatar joostf avatar ju5tu5 avatar koopreynders avatar krijnhoetmer avatar

user-experience-enhanced-website's Issues

Code review

index.ejs

style.css

  • @font-face moet je als eerste schrijven, zodat die als eerst word ingeladen op een pagina

Code review 19/04

EJS, Server.js, JS

Alles dat me opviel is al genoemd door Samara en Yu Jing ๐Ÿ˜ญ

CSS

div,
img,
article {
  border-radius: 6px;
}

je kan zulke dingen beter op de volgende manier schrijven:

div, img, article {
  border-radius: 6px;
}

Dit heeft te maken met performance, hoe kleiner je CSS bestand hoe sneller het inlaad, dus als je meerdere elementen selecteert, doe ze lekker op 1 lijn!

Kijk ook eens ff naar CSS Nesting, ik zie dat je

.family article img {
  width: 100px;
  height: 100px;
  object-fit: cover;
  border-radius: 50%;
}

.family article div {
  margin-left: 2em; 
}


.family article div h2{
  color: var(--primary-color);
}

.family article div p{
  font-size: 0.5em;
}

Hebt gedaan, wat ik kan begrijpen maar kijk of je het met nesting misschien kan verkorten/verduidelijken (bron: CSS Nesting

issues code review

engels alles.

verander let van lijst form naar const

savedItem veranderen naar formData

Responsive Images

Dit doe je uitstekend, je maakt goed gebruik van responsive images door andere formaten te gebruiken die beter zijn. Goed bezig!

<source srcset="https://fdnd-agency.directus.app/assets/<%= book.afbeelding.id %>?&format=avif" type="image/avif">
<source srcset="https://fdnd-agency.directus.app/assets/<%= book.afbeelding.id %>?&format=webp" type="image/webp" >

gebruik maken van een height en width die ook op de server bij de image staat

<img src="https://fdnd-agency.directus.app/assets/<%= item.afbeelding %>" alt="<%= item.title %> Image" height="300" width="200">

je kan kijken of je de image width of height kan aanpassen naar de hoogte en breede van de image die op de server staat bekijk dit voorbeeld van krijn

https://github.com/krijnhoetmer/server-side-rendering-server-side-website

https://github.com/krijnhoetmer/server-side-rendering-server-side-website/blob/ad1d076d9fb2bb89cc5ad58b2f898668027201da/views/pizzas.ejs#L10 de specifieke lijn

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.