StudentApp ontwikkelt zich verder

Hallo wereld!

Opnieuw een vooruitgangsrapport over het studenten data systeem, of StudentApp. Kort voor applicatie, niet te verwarren met de Android variant.

Inmiddels is het programma een stuk gevorderd sinds de vorige post. Een van de belangrijkste aanvullingen is die van een save systeem. Want, wat heb je aan een database die elke keer als je hem sluit alles vergeet wat je hebt gedaan?

Vrij weinig.

De informatie wordt opgeslagen in een map in C:\StudentenDataManager. Natuurlijk is dit niet de meest professionele oplossing en zou het beter zijn als de gebruiker zelf een map kan aanwijzen, maar voor nu werkt dit prima. De gegevens worden opgeslagen in een zelf bedacht XML-format en kunnen vervolgens door de code weer gebruikt worden om de objecten opnieuw aan te maken.

studenten data in XML-format

Ook wordt er nu bij het inloggen gekeken naar het wachtwoord. Voor nu laat ik dit wachtwoord echter standaard ingevuld zijn bij het opstarten zodat ik het niet steeds opnieuw hoef te typen. Het is voor nu dan ook voor elke gebruiker hetzelfde. Wat is het wachtwoord? Het wachtwoord is “dataridder” natuurlijk, wat anders?

Hoe kun je dit wachtwoord nou niet goed krijgen?

De studenten kunnen nu dan dus ook inloggen op hun persoonlijke account via hun studentennummer en zich in- en uitschrijven voor vakken. Ook kan de administrator nu studenten verwijderen in plaats van alleen toevoegen en zijn er meer gegevens om in te vullen. De studentengegevens en de inschrijfgegevens worden nu ook weergegeven in een TableView. Een JavaFX component dat gegevens presenteert in een tabel. Had je nooit geraden, of wel?

Schrijf je in voor plezier!
Voeg al je vrienden toe aan het systeem!

TableView was iets complexer dan de andere interface componenten van JavaFX om te leren gebruiken. Er is een enorme hoeveelheid aan opties en er is makkelijk een klein boek vol aan uitleg en documentatie over te vinden. Tegelijkertijd is het echter ook niet al te moeilijk om uit te vogelen zo lang je je maar richt op de informatie die je nodig hebt om te beginnen en je niet laat afschrikken of afleiden door de rest. Dat is een algemeen advies, maar wat TableView betreft, zorg eerst dat je een tabel op je interface hebt zonder je druk te maken over functionaliteit en maak dan een ObservableList van de gegevens waar je hem mee wilt vullen. ObservableList klinkt ingewikkeld maar is in principe niets anders dan een ArrayList voor in een tabel. Zorg ervoor dat de kolommen de juiste data presenteren en vergeet niet om alle data daadwerkelijk zowel aan de ObservableList toe te voegen als de list aan de tabel toe te voegen. En klaar is kees!

Dat zijn de belangrijkste aanvullingen tot nu toe. De code is te vinden op https://github.com/SamsonCodes/StudentenData/tree/morechanges. Dat is alles voor nu.

Tot de volgende keer!

Thank you Simple Programmer!

Hello world,

Today I want to give special thanks to Simple Programmer for creating the blogging course that helped me start my own blog. Seriously, I’m not sure when or if I had gotten around to it if it weren’t for this email course. I would seriously recommend it to anyone who wants to start his or her own blog. You can find the course here. Oh, and did I mention it is absolutely FREE?

As you may or may not have noticed already, I am writing this blog post in English. Somehow it just seemed fitting. The blogging course is in English, Simple Programmer is in English as well, and although John Sonmez, the founder of Simple Programmer, is a very smart man, I don’t think he has gotten around to learning Dutch yet.

About the course: This course will help you through the entire process of setting up your blog, from coming up with a theme to writing your first blog post to actually getting people to read it. Along the way you will get valuable advice for what to write about, how to come up with ideas and how to stay consistent.

About Simple Programmer: Well, you can go and look at the about page yourself here. But In short, it is a website dedicated to helping software developers, programmers and other IT professionals improve their careers and live better lives. But in all honesty, this website doesn’t just help programmers and IT professionals, it helps anyone who reads it. I have also followed John Sonmez on Youtube for quite some time now and he gives plenty of good free advice there too. So if you are interested in that, go check by clicking on any one of the previous links I so painstakingly scattered throughout this post for you.

I know I have given you a lot of links and praise now. It is because I really think it is good content, I am not getting paid for this or anything.

I wish!

That is all for now.

Until next time!

 

 

Vooruitgangsrapport Studenten Datasysteem

Gegroet Dataridders,

Ik ben inmiddels begonnen aan het programmeren van mijn studenten datasysteem. En hoewel ik nog niet al te ver ben gekomen is de eerste opzet er al wel.

Het was lastiger dan ik van te voren had gedacht om met JavaFX te werken. Ik was veel tijd kwijt aan het zoeken naar een opzet met de interface en een soort game-loop in afzonderlijke threads. Ik had eerst dan ook deze loop in de main thread en wilde de JavaFX applicatie in een afzonderlijke class en thread doen maar dat gaf een hoop foutmeldingen die ik niet wist op te lossen. Dus heb ik het uiteindelijk maar omgedraaid en heb ik de JavaFX applicatie als main class genomen en ben ik van plan geen game-loop meer te gebruiken, maar alle achtergrond activiteit te laten activeren als respons op de user input.

Tot nu toe heb ik een simpel inlogscherm, een invoerscherm voor het invoeren van studenten en een titelscherm voor het aanmelden voor vakken voor studenten. Voor nu wordt bij het inlogscherm alleen de naam als input gecontroleerd. De naam Admin laat je inloggen in het invoerscherm, en een ‘s’ gevolgd door het id nummer, bijvoorbeeld s10000 (het eerste nummer dat gebruikt wordt), laat je als student inloggen mits je in het systeem staat. In beide schermen kun je ook uitloggen en terug naar het inlogscherm gaan. Hieronder zijn wat screenshots van de applicatie zoals hij er nu uitziet. Zie https://github.com/SamsonCodes/StudentenData voor de code.

Inlogscherm

Log in als admin
Ingelogd als admin
Student toegevoegd
Log in als student s10000
Ingelogd als student

Dat is alles voor nu. Tot de volgende keer!

Project Aankondiging: Studenten Datasysteem

Gegroet Dataridders,

Kort geleden ben ik een gratis cursus begonnen op Udemy: Practice Java by Building Projects. Een van de opdrachten in deze cursus betreft het maken van een Studenten Datamanagement Systeem.

Nu zijn de eisen bij deze opdracht vrij laagdrempelig. Het de bedoeling om een applicatie in Java te schrijven die het mogelijk maakt om via de console studentendata in te voeren, aldus voor een fictieve beheerder, en daarnaast om studenten in staat te stellen om zich in te schrijven voor vakken. Elk object binnen deze applicatie heeft slechts een paar variabelen en functies nodig, en ik had de applicatie dan ook binnen een uurtje geschreven. De code is te vinden op https://github.com/SamsonCodes/Business-Applications

Wat dat betreft was deze cursus dus een beetje een anticlimax tot dusver, hoewel het qua kwaliteit wel prima in orde is en een goed beginpunt is voor beginners. Maar later kreeg ik het idee om deze en de andere opdrachten in deze cursus tot een nieuw niveau te brengen en applicaties te schrijven die de praktijk dichter benaderen. Applicaties met een daadwerkelijke user-interface, in plaats van de console, en met wachtwoord beveiliging, meer en meer realistische variabelen etc. En dit idee heeft dan ook mede bij gedragen aan de keuze voor het beginnen van een blog over datasystemen.

Om te beginnen zal ik dit dus doen voor het studenten datasysteem. In tegenstelling tot de code op Github zal ik dit waarschijnlijk gaan doen in Netbeans in plaats van Eclipse. Ik heb namelijk de meeste ervaring met Netbeans en heb voor deze projecten alleen Eclipse gebruikt om er wat meer ervaring mee op te doen, voor het geval dat ik er ooit weer eens mee moet werken. Maar ik vindt Netbeans persoonlijk veel fijner om in te werken.

Ter voorbereiding op dit project ben ik ook al begonnen met experimenteren met de JavaFX bibliotheek en heb ik een tutorial gevolgd op docs.oracle.com. In deze tutorial heb ik geleerd om een simpel inlogscherm te maken en hoe hem te exporteren naar bruikbare applicaties, alhoewel ik voor dat laatste nog wat extra onderzoek zal moeten doen. Hoe dan ook, ik heb besloten om deze applicatie te gaan maken met JavaFX aangezien de consensus online leek te zijn dat deze bibliotheek de toekomst is en de Swing bibliotheek (mijn go-to tot dusver) het verleden. Bovendien was mijn eerste indruk van JavaFX ook vrij positief, het is simpel genoeg om te leren en de opties voor stijlopmaak met CSS spraken me ook aan.

Wellicht zal dit project niet het enige zijn waar ik mij in de nabije toekomst mee bezig zal houden, maar het zal wel mijn hoofdproject zijn. Hoe ver ik het nu precies ga brengen weet ik niet nog niet. Ik heb geen ervaring met het maken van deze systemen en enkel ervaring met het gebruiken van deze systemen als student. Verder zal ik het moeten doen met wat er op het internet over te vinden is. Maar ik ga zo goed mogelijk mijn best doen om het op een applicatie te laten lijken die daadwerkelijk gebruikt zou kunnen worden. Mogelijk wordt het zelfs een applicatie die daadwerkelijk gebruikt KAN worden.

Maar dat zien we nog wel. Voor nu, verwacht regelmatige updates over dit project (ik zal minimaal een bericht per week publiceren, maar niet per se allemaal over dit project), totdat ik het als compleet beschouw. Dat is alles voor nu.

Tot de volgende keer!

Dataridder is online

Hallo wereld,

Mijn naam is Samson en dit is Dataridder. Op deze site zal ik jullie informeren over alles wat te maken heeft met het programmeren van data opslag en analyse applicaties.

Op dit moment ben ik hier zelf nog niet al te ervaren mee, maar ik ben al wel een aardige Java ridder, en heb al met verschillende andere talen en tools geëxperimenteerd. Deze site zal dus samen met mij groeien, en hoe meer ik leer, hoe meer jullie van deze site zullen kunnen leren.

Tot de volgende keer!