Prosjektstruktur - ScrumTeam2/MinVakt GitHub Wiki
Prosjektstruktur
Dette dokumentet beskriver hvilke biblioteker og rammeverk vi bruker til prosjektet, i tillegg til fil- og katalogstruktur.
Rammeverk
- JAX-RS (Jersey) for REST-API
- JUnit for enhetstesting
- JQuery for å lettere skrive god JavaScript-kode
Biblioteker
commons-dbutils.commons-dbutils
- Inneholder hjelpemetoder for databasetilkoblingermysql.mysql-connector-java
- Databasedriver for MySQLorg.json.json
- Lar oss parse og serialisere JSON-datacom.fasterxml.jackson.core.jackson-annotations
- Lar oss bruke @JsonIgnore for å ignorere visse feltorg.springframework.spring-test
- Inneholder MockHttpServletRequest som vi bruker for REST-enhetstestingcom.sun.mail.javax.mail
- Mail-API vi bruker for å sende mailorg.quartz-scheduler.quartz
- Lar oss sette opp oppgaver som skal kjøres til sepsifikke tider. Bruker for innsending av timelisterorg.slf4j.slf4j-jdk14
- Bibliotek for logging i Jerseyorg.apache.tomcat.tomcat-catalina
- Inneholder et Tomcat-filter for XSS-headerecom.googlecode.owasp-java-html-sanitizer.owasp-java-html-sanitizer
- Brukes til å filtrere ut HTML fra inputorg.apache.tomcat.tomcat-jdbc
- Har funksjonalitet for databasetilkoblingspool.
Struktur
All ordinær Java-kode ligger i src/main/java
-mappen i rotmappen til prosjektet, mens alt av testkode (Java) ligger i src/test/java
-mappen.
Hele backend-delen av prosjektet ligger i prosjektpakken no.ntnu.stud.minvakt
. I denne pakken finnes følgende underpakker:
- Databasekommunikasjon:
src/main/java/no/ntnu/stud/minvakt/database
- REST-kode:
src/main/java/no/ntnu/stud/minvakt/services
- Dataklasser (Entiteter):
src/main/java/no/ntnu/stud/minvakt/data
- Backend-logikk:
src/main/java/no/ntnu/stud/minvakt/controller
- Hjelpeklasser/verktøy:
src/main/java/no/ntnu/stud/minvakt/util
- Jersey-spesifikk kode:
src/main/java/no/ntnu/stud/minvakt/jersey
Det finnes også konfigurasjonsfiler for backend:
- Servlet-konfigurasjonen:
src/main/webapp/WEB-INF/web.xml
- MinVakt-konfigurasjon (database og mail):
src/main/webapp/WEB-INF/MinVakt.properties
Frontend-delen av prosjektet kan finnes i src/main/webapp
, og har følgende struktur:
- JavaScript-kode:
src/main/webapp/js
- HTML-kode:
src/main/webapp/html
- CSS-kode:
src/main/webapp/css