GithubHelp home page GithubHelp logo

hhspring's Introduction

Build Status

README

Deze Hartige Hap webapplicatie is gemaakt met het Spring MVC framework.

What is this repository for?

De applicatie demonstreert de volgende niet-functionele aspecten:

  • architectuur (gelaagde architectuur met MVC in de presentatielaag)
  • persistentie in de data access laag met behulp van het object-relation mapping tool JPA
  • transactionaliteit (methodes op de service interfaces)
  • tiling (header, footer, menu, body)
  • i18n (Engels en Nederlands)
  • security (autorisatie en personalisatie)
  • theming
  • input validatie
  • pagination (opgevraagde content wordt geretourneerd in pagina's)
  • ajax
  • RESTful web service
  • verschillende soorten test

Open eindjes:

  • onvoldoende tests (foei!)

How do I get set up?

Installatie van de ontwikkelomgeving "Spring Tool Suite":

  • Zorg dat je (de laatste versie) van JDK 8 geïnstalleerd hebt van http://www.oracle.com/technetwork/java/javase/downloads/index.html. Kies duidelijk of je de 32-bit of 64-bit versie wilt gebruiken.
  • De Spring bibliotheken kun je het beste downloaden door de bijhorende IDE te installeren die Spring Tool Suite (STS) heet. STS is gebaseerd op de Eclipse IDE. Als je STS installeert, blijft je eventuele andere Eclipse installatie behouden. Je hebt dan twee Eclipse installaties naast elkaar staan. STS kun je vinden op http://spring.io/tools/sts. Kies duidelijk of je de 32-bit of 64-bit versie wilt gebruiken.
  • De Hartige Hap applicatie maakt gebruik van Lombok. Lombok is een bibliotheek die de hoeveelheid benodigde boiler plate code vermindert, bijvoorbeeld getters/setters, waardoor je minder hoeft te typen. Hiervoor moet STS worden aangepast, anders begrijpt STS de broncode niet en geeft foutieve foutmeldingen. Om dit te doen:
    1. download lombok.jar van http://projectlombok.org/
    2. dubbelklik op lombok.jar
    3. klik op install/update.

Importeren van een bestaande applicatie in STS (als Maven project):

  • Als het goed is, bestaat de applicatie uit een src/ map en een pom.xml bestand.
  • In STS, File/Import/Maven/Existing Maven Projects en kies de map waar pom.xml staat.

Installatie van de database waar de applicatie gebruik van maakt:

  • De applicatie maakt gebruik van een MySQL database met de naam "hh".
  • De database moet aanwezig zijn om de applicatie te laten werken, maar tabellen hoeven niet handmatig te worden aangemaakt. Dat doet Hibernate, het object-relational-mapping tool voor je.
  • Mocht je een eerdere versie van de Hartige Hap webapplicatie geïnstalleerd hebben gehad, dan de oude database volledig weggooien en een nieuwe, lege database creëren, aangezien de tabellenstructuur mogelijk anders is.
  • In het bestand src/main/resources/datasource-jpa-tx.xml staat de configuratie om de database te benaderen, die je indien nodig kunt aanpassen, met name username, password en URL.
  • In het bestand datasource-jpa-tx.xml staat de property create. Met deze property worden de tabellen telkens weggegooid en opnieuw gecreëerd, als de applicatie wordt gedeployed. Als je dit niet wilt, verwijder dan deze property uit het bestand.

Gebruik van de applicatie:

  • deploy de applicatie:
    • rechter muisklik op project, "run as", "run on server"
    • check de console log op excepties
    • STS start automatisch een web browser op binnen STS
    • andere browser? Gebruik: http://localhost:8080/hh/
  • log in met gebruikersnaam "employee" en password "employee"
  • klik op het restaurant naar keuze
    • subsysteem bestelling: kies een tafel naar keuze, kies je gerechten, doe een of meer bestellingen, vraag om afrekenen
    • subsysteem keuken: plan bestelling, meld bestelling gereed
    • subsysteem bediening: meld bestelling geserveerd, meld rekening betaald
    • klanten subsysteem: CRUD op klanten
  • geïmplementeerde business rules:
    • een lege bestelling kan niet gedaan worden
    • een lege rekening kan niet afgerekend worden
    • een rekening met nog niet bestelde bestelling mag niet afgerekend worden
  • autorisatie en personalisatie:
    • er is ook een gebruiker "customer" met password "customer". Deze gebruiker heeft minder rechten
    • als je in het geheel niet bent ingelogd, mag je wel alles zien, maar mag je geen acties ondernemen

hhspring's People

Contributors

ercoargante avatar jketelaar avatar thom145 avatar z5y avatar

Watchers

 avatar  avatar  avatar

hhspring's Issues

Create more tests

  • MenuComponents
  • MenuItems
  • MenuItemDecorator
  • Notifications
  • Owner
  • Users
  • User roles

Missing translations

Missing translations for:

edit_profile=Edit profile
label_edit_profile=Edit your profile
label_username=Username
label_password=Password
label_roles=Roles
label_phone=Phone number
label_email=Email address
label_notification_type=Notification type```

Missing frontend

  • Add frontend for user creation
  • Allow creation of roles
  • Allow assignment of roles and users
  • Allow users to adjust their information, so they can set their own notification type
  • Minimal frontend for patterns
  • Overview of what the pre-defined menus contain

Production server config

We should ignore/remove the production server config, as that overrides and gives errors for development.

Maybe use DeployHQ for such config files

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.