Webapplikasjon for å registrere arbeid gjort for ukelønn, og registrere utbetalinger av ukelønn.

Steinar Bang 95f9ddb2ae Attempted to make the ukelonn.xhtml page a mobile page. il y a 8 ans
ukelonn.api 2795da2b58 Injected an OSGi logservice into the Ukelonn webapp. il y a 8 ans
ukelonn.bundle 95f9ddb2ae Attempted to make the ukelonn.xhtml page a mobile page. il y a 8 ans
ukelonn.bundle.postgresql.db e5b27344ca Merge branch 'work/db-changes-for-password-salt' into work/using-primefaces-with-hashed-passwords il y a 8 ans
ukelonn.bundle.test.db 80626d4d60 Added hashed passwords and hash salt to the sample users of the derby test database. il y a 8 ans
ukelonn.gogoshell 596f4dfd08 Merge branch 'work/adding-postgresql-and-karaf' into using-primefaces il y a 8 ans
ukelonn.karaf aa53c23b9c Added apache-shiro and pax-shiro to the ukelonn feature. il y a 8 ans
ukelonn.rebundled 107743d729 Moved maven plugin versions to the top POM. il y a 8 ans
ukelonn.tests 03bc1eb742 Updated primefaces version from 5.1 to 5.3. il y a 8 ans
.gitignore 55452caa2c Ignore derby.log in ukelonn.bundle project. il y a 8 ans
LICENSE 3590109739 Initial commit. il y a 8 ans
README.org cf30a2e3da Updated README feature:repo-add examples. il y a 8 ans
pom.xml 03bc1eb742 Updated primefaces version from 5.1 to 5.3. il y a 8 ans

README.org

Ukelonn: en webapplikasjon for ukelønn

Tanken er at ungene skal kunne registrere jobber de gjør i hjemmet og at foreldrene kan registrere utbetalinger av ukelønn og andre måter lønna blir betalt på (f.eks. utlegg/lån og ekstra datapakker til mobil).

Webapplikasjonen er skrevet for å bli kjørt i en OSGi runtime, og er ment å være responsive slik at den er lett å kjøre på mobiltelefoner og nettbrett.

Hva ligger på de forskjellige branchene

    I øyeblikket er det to hoved-brancher:
  1. using-primefaces
  2. Denne branchen bruker [[https://en.wikipedia.org/wiki/JavaServer_Faces][JSF]] med [[http://www.primefaces.org/][primefaces]] og er i skrivende stund den som er kommet lengst
  3. using-rendersnake
  4. Denne branchen er ment å være "back to basic" og bruke [[http://rendersnake.org/][rendersnake]] sammen med en REST-ful backend, men den er i skrivende stund ikke forbi "hello world"-stadiet

Jeg har også plan om å lage en branch med en versjon som bruker vaadin istedenfor primefaces, men den er foreløpig på plan-stadiet

Utsjekk og bygg

    Dette trengs for å laste og kjøre programvaren
  1. Installer det som trengs:
  2. git: https://git-scm.com/download/win
  3. Java SDK 1.8: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
  4. Apache maven:
  5. Download: https://maven.apache.org/download.cgi
  6. Install: https://maven.apache.org/install.html
  7. Run: https://maven.apache.org/run.html
  8. Gjør en klon av git-repositoriet
  9. #+BEGIN_EXAMPLE mkdir %HOME%\git cd %HOME%\git git clone https://github.com/steinarb/ukelonn.git #+END_EXAMPLE
  10. Åpne et kommandolinje-vindu og skriv følgende kommandoer:
  11. #+BEGIN_EXAMPLE cd %HOME%\git\ukelonn git checkout using-primefaces mvn clean install cd ukelonn.gogoshell mvn install pax:provision #+END_EXAMPLE
  12. Åpne en nettleser på http://localhost:8090

Beskrivelse av koden

(Beskriver versjonen fra using-primefaces)

    Prosjektet er et maven-prosjekt med følgende struktur:
  • pom.xml
  • Dette er topp-prosjektet som definerer alle versjoner av programvare som brukes og alle versjoner av avhengigheter og felles-oppsett for plugins.
  • ukelonn.api/pom.xml
  • Dette er en OSGi-bundle som definerer to OSGi-servicer: UkelonnService og UkelonnDatabase
  • ukelonn.bundle/pom.xml
  • Dette er selve webapplikasjonen. Siden dette er en JSF-applikasjon så er dette en WAR og ikke en JAR, men det er også en OSGi-bundle som krever en UkelonnDatabase service og som eksponerer en UkelonnService service
  • ukelonn.bundle.test.db/pom.xml
  • Dette er en ikke-persistent SQL-database i minnet som setter opp forventet skjema og fyller opp databasen med test-data. Dette er en fullt funksjonell database, men ingenting blir persistert mellom kjøringer. Den brukes til test både av webappen i gogoshell og brukes som en vanlig jar-fil i enhetstestene i ukelonn.bundle
  • ukelonn.bundle.postgresql.db/pom.xml
  • Dette er en OSGi-bundle som forventer å finne en PostgreSQL-base som brukeren som kjører webappen har rettigheter til og som har en database "ukelonn" med forventet skjema
  • ukelonn.tests/pom.xml
  • Dette er en Pax Exam integrasjonstest som sjekker at OSGi-bundlene starter og at de tilbyr riktig service.
  • ukelonn.gogoshell/pom.xml
  • Dette er en POM for å starte webappen kjørende i gogoshell. Dvs. en fullt funksjonell OSGi-kontainer som blir startet på nytt hver gang maven starter den
  • ukelonn.karaf/pom.xml
  • Dette er en POM som lager en "feature"-fil for [[http://karaf.apache.org/][Apache karaf]]
  • ukelonn.rebundled/pom.xml
  • Hver gang man trenger en avhengighet som ikke er en OSGi-bundle kan man "rebundle" avhengigheten ved å lage et nytt underprosjekt av dette prosjektet

Kjøring på apache karaf

Kjøring på apache karaf med testdatabasen

Kjøring på apache karaf med PostgreSQL

    Framgangsmåte:
  1. Klon og bygg webapplikasjonen (regner med at linux-brukere klarer å oversette til noe passende):
  2. #+BEGIN_EXAMPLE mkdir %HOME%\git cd %HOME%\git git clone https://github.com/steinarb/ukelonn.git cd %HOME%\git\ukelonn git checkout using-primefaces mvn clean install #+END_EXAMPLE
  3. [http://karaf.apache.org/download.html][Last ned Karaf 4.0.7]], pakk ut den nedlastede distribusjonen og start karaf fra kommandlinja
  4. Gjør pax-web (servlet-kontainer-støtte for OSGi) tilgjengelig som "karaf features", hentet fra maven:
  5. #+BEGIN_EXAMPLE feature:repo-add mvn:org.ops4j.pax.web/pax-web-features/4.2.7/xml/features #+END_EXAMPLE
  6. Gjør ukelonn-webapplikasjonen tilgjengelig for karaf, som "karaf features", hentet fra maven:
  7. #+BEGIN_EXAMPLE feature:repo-add mvn:no.priv.bang.ukelonn.karaf/ukelonn-all/LATEST/xml/features #+END_EXAMPLE
  8. Installer avhengighetene:
  9. #+BEGIN_EXAMPLE feature:install pax-jsf-support feature:install pax-jdbc feature:install pax-jdbc-derby #+END_EXAMPLE
  10. Installer webapplikasjonen:
  11. #+BEGIN_EXAMPLE feature:install ukelonn.api feature:install ukelonn.bundle.test.db feature:install ukelonn.bundle #+END_EXAMPLE
  12. Koble en nettleser mot http://localhost:8181/ukelonn/
  13. For en vanlig bruker, brukernavn/passord: jad/1ad
  14. Vanlig bruker kan registrere nye jobber og sjekke saldo
  15. For en administrator-bruker, brukernavn/passord: on/ola12
  16. Administrator-bruker kan registrere utbetalinger, legge inn nye jobbtyper og endre eksisterende, legge inn nye utbetalinger og justere på eksisterende, og legge inn brukere og endre på eksisterende brukere
  17. Dette krever at man har en lokal PostgreSQL-installasjon med følgende innstillinger:
  18. En database med navn "ukelonn" der brukeren karaf kjører med har alle rettigheter
  19. Følgende tabeller må være i databasen ukelonn: https://github.com/steinarb/ukelonn/tree/using-primefaces/ukelonn.bundle.test.db/src/main/resources/sql/tables
  20. Følgende views må være i databasen ukelonn: https://github.com/steinarb/ukelonn/tree/using-primefaces/ukelonn.bundle.test.db/src/main/resources/sql/views

Lisens

    Framgangsmåte:
  1. Klon og bygg webapplikasjonen (regner med at linux-brukere klarer å oversette til noe passende):
  2. #+BEGIN_EXAMPLE mkdir %HOME%\git cd %HOME%\git git clone https://github.com/steinarb/ukelonn.git cd %HOME%\git\ukelonn git checkout using-primefaces mvn clean install #+END_EXAMPLE
  3. [http://karaf.apache.org/download.html][Last ned Karaf 4.0.7]], pakk ut den nedlastede distribusjonen og start karaf fra kommandlinja
  4. Gjør pax-web (servlet-kontainer-støtte for OSGi) tilgjengelig som "karaf features", hentet fra maven:
  5. #+BEGIN_EXAMPLE feature:repo-add mvn:org.ops4j.pax.web/pax-web-features/4.2.7/xml/features #+END_EXAMPLE
  6. Gjør ukelonn-webapplikasjonen tilgjengelig for karaf, som "karaf features", hentet fra maven:
  7. #+BEGIN_EXAMPLE feature:repo-add mvn:no.priv.bang.ukelonn.karaf/ukelonn-all/LATEST/xml/features #+END_EXAMPLE
  8. Installer avhengighetene:
  9. #+BEGIN_EXAMPLE feature:install pax-jsf-support feature:install pax-jdbc feature:install pax-jdbc-derby #+END_EXAMPLE
  10. Installer webapplikasjonen:
  11. #+BEGIN_EXAMPLE feature:install ukelonn.api feature:install postgresql feature:install ukelonn.bundle.postgresql.db feature:install ukelonn.bundle #+END_EXAMPLE
  12. Koble en nettleser mot http://localhost:8181/ukelonn/
  13. For en vanlig bruker, brukernavn/passord: jad/1ad
  14. Vanlig bruker kan registrere nye jobber og sjekke saldo
  15. For en administrator-bruker, brukernavn/passord: on/ola12
  16. Administrator-bruker kan registrere utbetalinger, legge inn nye jobbtyper og endre eksisterende, legge inn nye utbetalinger og justere på eksisterende, og legge inn brukere og endre på eksisterende brukere

Lisensen er Eclipse Public License - v 1.0. Jeg kunne tenkt meg GPL i en eller annen variant, men da måtte jeg passe på hvilke lisenser som var kompatible og det ble for mye jobb.