Git Product home page Git Product logo

ibadr49 / interactive-functionality-4every1 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fdnd-task/the-web-is-for-everyone-interactive-functionality

0.0 0.0 0.0 1.75 MB

Ik heb een interactieve toepassing die voor iedereen toegankelijk is ontworpen en gemaakt.

Home Page: https://shy-blue-chameleon-slip.cyclic.app

License: MIT License

JavaScript 14.85% CSS 38.75% EJS 46.39%
nodejs clientside ejs express serverside css partials rest-api

interactive-functionality-4every1'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

Vinimini | Mini Notitie

๐Ÿ“š Inhoudsopgave

Beschrijving

Ik heb een Notitie formulier gemaakt waar de gebruiker "ouders" notities kunnen typen en achterlaten.

  • Userstory: Als ouder wil ik in een dagboek aantekeningen kunnen maken zodat ik niet vergeet wat er is gebeurd.

Gebruik

Je kunt deze formulier gebruiken om een notities te schrijven en te posten, je kan je notitie ook terug zien op de zelfde pagina.

Kenmerken

Voor dit project heb ik gebruik gemaakt van node.js | Express | Ejs | client-side JavaScript en tijdens het bouwen van mijn interactie probeerde ik de progressive enhancement methode te volgen.

Progressive Enhancement is een benadering van webdesign en ontwikkeling die zich richt op het bouwen van de kernfunctionaliteit van een website op een manier die werkt voor alle gebruikers, ongeacht hun apparaat of browsermogelijkheden.

Zie hieronder hoe ik deze formulier heb gemaakt:

  • Html
<div class="note">
  <h1>Mini Notities</h1>

  <% if (typeof(error) != 'undefined') { %>
  <strong>Er ging iets mis!</strong>
  <% } %>

  <div class="form">
    <form action="/agenda" method="post">
      <input type="hidden" name="persoonId" value="clemozv3c3eod0bunahh71sx7">
      <fieldset class="notitieFieldset">
        <label>
          Titel <span>(Notitie)</span>
          <input id="input" type="text" required name="titel" />
        </label>

        <label>
          Notitie <span>(Beschrijving)</span>
          <input id="input" type="text" required name="beschrijving" />
        </label>

        <label
          >Datum
          <input id="input" type="datetime-local" required name="datum" />
        </label>

        <label
          >Herinnering
          <input id="input" type="datetime-local" required name="herinnering" />
        </label>
      </fieldset>

      <button class="notitieSubmit" type="submit">Toevoegen</button>
    </form>
  </div>
  <h1> Jouw Notities</h1>
  <section class="test9">
    <% notities.forEach(notitie => { %>
      <article class="test8">
         <h3>Titel:</h3> 
         <p> <%= notitie.titel %> </p>
         <h3>Notitie:</h3> 
         <p> <%= notitie.beschrijving %></p>    
       </article>
         <% }); %>
  </section>
</div>
  • NodeJs
app.get('/agenda', (request, response) => {
  const url2 = 'notities?id=clemozv3c3eod0bunahh71sx7'
  const notitieUrl = url + url2 
  
  fetchJson(notitieUrl).then((data) => {
    response.render('agenda', data)
  })
})

// Post note (notitie) to API
app.post('/agenda', function (req, res, next) {

  req.body.afgerond = false
  //req.body.persoonId = 'clemozv3c3eod0bunahh71sx7'
  req.body.datum = req.body.datum + ':00Z';
  req.body.herinnering = [req.body.herinnering + ':00Z']
  console.log(req.body)
  
  postJson(url + '/notities', req.body).then((data) => {

    // console.log(JSON.stringify(data))

    let newNotitie = { ... req.body }
    
    if (data.success) {
      res.redirect('/agenda') 
      // TODO: squad meegeven, message meegeven
      // TODO: Toast meegeven aan de homepagina
    } else {
      const errormessage = `${data.message}: Mogelijk komt dit door de slug die al bestaat.`
      const newdata = { error: errormessage, values: newNotitie }
      
      res.render('agenda', newdata)
    }
  })
});
  • Css Styling
.note{
  border-radius: 10px;
  box-shadow: 2px 2px 20px var(--lightGreen);
  padding: 10px;
  margin: 14px;
  margin: 0 auto;
  align-items: center;
  width: 80%;
  margin-bottom: 2rem;
}

.notitieFieldset{
  display: grid;
  gap: 1rem;
  background-color: var(--black);
  border: none;
  margin-bottom: 1em;
  background: #e4f2f2;
  border: 1px solid #b5dbdc;
}

.note h1{
  text-align: center;
  color: var(--lightGreen);
}

Installatie

Ga eerst naar nodejs.org en installeer de Node ontwikkelomgeving. Voor dit project heb ik gebruik gemaakt van 18.14.0 LTS, download de benodigde bestanden en doorloop het installatieproces. Daarna open Visual Studio Code - terminal en installeer Node doormiddel van het commando npm innit, voer hierna npm install uit, om de pagina te open start je een server op door middel van npm start en als de server weer gesloten moet worden kan je control + c / ^c gebruiken op mac.

Bronnen

Licentie

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

interactive-functionality-4every1's People

Contributors

koopreynders avatar ibadr49 avatar joostf avatar ju5tu5 avatar

interactive-functionality-4every1's Issues

Notities toevoegingen. Op en aanmerkingen

Ik zou bij het toevoegen van een notitie het label: "Titel (notities titel)" gewoon naar "Titel notitie" veranderen

Bij het "Notitie" Label zelf de input box groter maken. Het is eenmaal geen notitie van 2 woorden maar vaak meerdere zinnen. Maak hier dus visueel ruimte voor.

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.