- Java 92.2%
- CSS 7.8%
| src | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| config.properties | ||
| pom.xml | ||
| README.md | ||
| sonar-project.properties | ||
FYSApp
Dit is een Maven project, wordt later nog uitgelegd wat het inhoud.
FXML zit in src/main/resources/fxml
Java Controllers zitten in src/main/java/nl/hva/fys/controller
Maven gebruiken
Dit project gebruikt de maven build tool. Dit is erg handig omdat je hiermee makkelijk depenencies kan toepassen. Import het project via github en dan open je die map via netbeans. Klaar.
Database
Ik heb een database server geinstalleerd met phpmyadmin op mijn eigen server. Je kunt inloggen op phpmyadmin via deze link. Gebruik hiervoor de onderstaande gegevens. Het is ook mogenlijk om je eigen database te gebruiken door het PHPMyAdminCreateScript uit te voeren.
De gebruikersnaam is fys en het wachtwoord is fysapp. Als je bent ingelogd kun je op de fys database klikken en dingen invoeren etc... Voor de config gebruik het volgende:
database.name=fys
database.username=fys
database.port=3306
database.prefix=jdbc\:mysql\://
database.password=fysapp
database.driver=com.mysql.cj.jdbc.Driver
database.host=lucadev.com
PDFBox
Voor het uitdraaien van PDF's gebruiken wij PDFBox. Volledige documentatie staat hier: https://pdfbox.apache.org/1.8/cookbook/documentcreation.html Het werkt simpel: Je maakt een document aan, voegt paginas toe en maakt een stream aan die alles vasthoud
PDDocument document = new PDDocument();
PDPage page = new PDPage();
document.addPage( page );
PDPageContentStream contentStream = new PDPageContentStream(document, page);
Daarna kun je beginnen met schrijven:
contentStream.beginText();
contentStream.drawString("Hello");
contentStream.endText();
En als laatst sluit je alles:
document.save("NaamBestand.pdf");
document.close();
Email service
Voor email gebruiken we mailgun. Voor mailgun hebben we een paar verschillende gegevens nodig waardoor we kunnen connecten met de server en mailtjes kunnen versturen. Gebruik hiervoor de onderstaande configuratie:
email.web=sandboxf0d4f01de06b4e318c0febfe9a7f5f87.mailgun.org
email.apikey=key-68111c31b146f7ef98306f4da45bcf6d
email.sender.address=postmaster@sandboxf0d4f01de06b4e318c0febfe9a7f5f87.mailgun.org
email.sender.name=FYS iS107v2
Configuratie
Om de taal, database details en andere mogelijke opties te gebruiken zonder die te hard coden of in de database te zetten gebruiken we een config.
De default configuratie staat in de resources map genaamd defaultconfig.properties. Als er nog geen bestand config.properties bestaat zal dit bestand gekopieerd worden en geladen worden. Deze staat in de gitignore dus geen last meer van veranderende database wachtwoorden.
Als je zelf een config value wilt gebruiken moet je eerst een Configuration object verkrijgen. Dit doe je op de volgende manier:
//Natuurlijk ook de juiste classes importeren!
Configuration config = ConfigurationService.getDefaultConfiguration();
Een voorbeeld hoe dit wordt toegepast staat in nl.hva.fys.services.DatabaseService
Voor de datatypes bestaan ook de setters. Vergeet alleen niet dat je de aanpassingen ook moet opslaan via configuration.save()
Het format van deze properties bestanden zijn als volgt:
some.cool.key=This is a value
Als je dus de string This is a value wilt gebruiken vraag je aan de configuratie:
configuration.getString("some.cool.key");
Translaties
Translaties gebruiken het zelfde type bestanden als de configuratie bestanden.
Om deze toe te passen in FXML vervang je de tekst met een % en vervolgens de key waarde zoals search.
Hierna moet je nog de vertaling voor search schrijven. De default-translatie staat in strings.properties onder de resources map.
Voor andere talen voeg je een andere suffix toe. Bij amerikaans engels is het dus:
strings_en_US.properties
Regels
- Kijk of je scherm niet er al in staat, zo niet zet hem erin.
- Voor databases gebruiken wij services zoals te zien in src/main/java/nl/hva/fys/services maak je eigen services aan en doe alleen daar je database. Niet in de controllers.
- Wanneer je je project commit check of je in de .gitignore file ook de specifieke project files die netbeans genereert er in zet. Deze moet je erin zetten omdat die niet geupload moeten worden naar github.
- De master branch is protected, dus niks kan direct gecommit worden. Wil je iets toevoegen/editen maak een aparte branch aan en daarna een pull request.
- Geef branches namen die een indicatie geven van wat er in die branch zit. Niet je eigen naam.