Wat komt er kijken bij het bouwen van een onderdeel in Terrafile?

Zoekfunctie en overzichtspagina
Bij het invoeren van een wetenschappelijke naam zou u, net als bij het toevoegen van een dier, suggesties uit de wetenschappelijke namendatabase moeten krijgen. De wetenschappelijke namen hebben een nummer dat bij de dieren wordt opgeslagen om de wetenschappelijke naam te registreren. Dus als de naam is gekozen, moet de code in de database met wetenschappelijke namen kijken welk nummer bij die naam hoort. Met dit nummer moet hij in de database van de dieren kijken welke dieren dit nummer in hun gegevens hebben en in dat geval ook of de kolom met de plaatsingsdatum gevuld is. Als dat zo is, moet hij die dieren tonen op datum aflopend. Als er ook een plaatsnaam is ingevuld, dan moet de code, als hij een dier heeft gevonden met een wetenschappelijke naam en een plaatsingsdatum, nagaan welke eigenaar bij dat dier hoort en of de woonplaats van deze persoon overeenkomt met de naam in het zoekveld. Dan hoeft hij alleen die dieren met en het nummer van de wetenschappelijke naam met een ingevoerde plaatsingsdatum te tonen waarvan de huidige eigenaar in de gezochte plaats woont op aflopende plaatsingsdatum. De code moet dan alleen bepaalde gegevens tonen en een knop met "Bekijk dier" die linkt naar een pagina waar dit dier getoond wordt. Deze pagina bestaat niet echt, maar moet worden gegenereerd met de informatie die we al hebben.

Pagina van het dier
Wij weten welk dier getoond moet worden en kunnen de code de juiste gegevens uit de database laten halen. En om x aantal andere dieren van dezelfde soort te tonen, moet de code ze ook ophalen en tonen. Dan moet de code controleren of de pagina gevonden is via Terrafile zelf, want dan is die persoon ingelogd. Of via een zoekmachine, want dan is die persoon niet ingelogd. Hier zou de juiste knop "Login/account aanmaken" moeten staan, of "Opmerking". Omdat deze pagina ook gevonden moet worden door zoekmachines, moeten we deze pagina andere restricties geven dan de andere pagina's. Als iemand klikt op "Inloggen/account aanmaken" dan moet de inlogpagina getoond worden zodat mensen kunnen inloggen of een account kunnen aanmaken. Wanneer op de knop "Reageer" wordt geklikt, moet het formulier (al dan niet op een nieuwe pagina) worden weergegeven. Wanneer dit is voltooid, wordt de informatie naar de aanbieder gemaild met de juiste informatie in het onderwerp zodat de aanbieder aan de titel van de mail kan zien waar het over gaat.

Dier overdragen of verwijderen van de marktplaats
Als het dier wordt verkocht en overgedragen, moet de kolom met de plaatsingsdatum worden leeg gemaakt. Dit betekent dat wij ook de code van het overdragen moeten aanpassen. Naast alle functies die er al zijn, moet er tijdens het overdragen voor gezorgd worden dat die kolom geleegd wordt (als die ingevuld is, want een dier dat niet op de marktplaats staat moet natuurlijk ook kunnen worden overgedragen) dus dat het dier niet meer op de marktplaats getoond wordt. Maar wat als je plotseling besluit dat je het dier niet kwijt wilt? Dan zou het handig zijn als je het dier (of dieren) ook van de marktplaats zou kunnen halen door het dier aan te vinken en een knop onder "Acties" met "Dier niet meer aanbieden". Die knop moet dus ook de functie krijgen om de kolom met de plaatsingsdatum leeg te maken.

Testen en debuggen
Nu we alles op zijn plaats hebben, is het tijd om de code in de testomgeving te plaatsen. En dan kan het testen beginnen. Werkt alles? Worden de juiste gegevens getoond? Komen de e-mails goed aan? Kan de aanbieder op die e-mail reageren zodat deze de geïnteresseerde direct bereikt. Als alles klopt en werkt, kan de code worden overgezet naar de live versie. We zijn nu 40 uur later.

Ik hoop dat je nu een idee hebt van hoeveel werk erin zit, alleen in dit kleine stukje. Dan heb ik het nog niet eens gehad over wat we al hebben gebouwd. Aangezien we dit nog in de vrije uren moeten doen, kan je begrijpen dat ook al is het 40 uur werk, we dit niet in 1 week kunnen ontwerpen en bouwen.

Voor vragen of opmerkingen kunt u altijd contact met ons opnemen.

Het idee, wat gaan we bouwen?
Het begint allemaal met een idee of wens, dit kan zijn van ons uit of vanuit een gebruiker. Maar dat maakt voor het proces niet uit. In dit geval willen we een marktplaats-achtige omgeving maken waar gebruikers hun dieren kunnen aanbieden of kunnen zoeken naar bepaalde dieren en hier reageren als er interesse is. We willen dit bouwen zodat deze pagina's ook door zoekmachines worden opgepakt, dit moeten dus geen gesloten pagina's worden zoals de rest van Terrafile.

Planning
Nu moeten we gaan bedenken wat er allemaal moet kunnen binnen deze functie en hoe het in de praktijk moet gaan werken.

Om te beginnen moeten gebruikers vanuit de lijst met hun eigen dieren de dieren die ze aan willen bieden kunnen aanvinken en met een knop "Dieren aanbieden" onder de knop "Acties" moeten deze dieren op de marktplaats verschijnen. Ook moeten gebruikers bij het bewerken van een dier een prijs en een omschrijving kunnen ingeven.

Gebruikers die dieren zoeken moeten op een pagina kunnen zoeken op een wetenschappelijke naam en woonplaats. Voordat ze gaan zoeken zien ze een x aantal dieren die al aangeboden worden, waarschijnlijk de laatste toegevoegde?! Als ze een of allebei de zoekopdrachten hebben ingevuld moeten de juiste dieren en eventueel die dieren in een bepaalde plaats getoond worden. Daar komt beknopte, maar wel belangrijke data te staan over het dier. Daarbij moet er ook een knop komen met "Bekijk dier" waarmee ze naar een pagina gaan met meer informatie, de prijs en de omschrijving. Deze pagina's moeten ook door zoekmachines getoond kunnen worden. Daarom moeten er, naar gelang hoe de pagina gevonden is, via een zoekmachine of via Terrafile zelf, een knop komen met "Inloggen/account maken" of "Reageer". Als men is ingelogd en men klikt op "Reageer" moet er een pagina komen (of wellicht uitschuiven op de pagina zelf?) met de mogelijkheid een reactie te geven. Deze moet naar de aanbieder gemaild worden met als titel "Reactie op wetenschappelijke naam + administratienummer via Terrafile". De aanbieder moet via "Beantwoorden" in zijn/haar mailprogramma terug kunnen reageren. Pas als de aanbieder het goed vind kan deze zijn/haar contactgegevens mailen naar de eventuele koper. Via Terrafile mogen geen contactgegevens getoond worden, alleen de woonplaats van de aanbieder om het zoeken in je eigen omgeving makkelijker te maken. Ook is het wel mooi om daaronder een x aantal aangeboden dieren te laten zien met dezelfde wetenschappelijke naam.

Wat moet er allemaal aangepast en gemaakt worden?
Nu we weten hoe alles moet functioneren moeten we gaan kijken wat er aangepast moet worden en wat er gebouwd moet worden.

Om te beginnen moet de database waar de dieren in opgeslagen staan uitgebreid worden met extra kolommen. Namelijk een voor de prijs, een voor de omschrijving en een met een datum waarop het dier op de marktplaats gezet is. Met deze laatste kunnen we controleren of een dier aangeboden wordt. Is deze gevuld, dan wordt hij aangeboden, is hij leeg, dan niet. Ook moeten de velden bij het bewerken van een dier uitgebreid worden met een veld voor de prijs en de omschrijving. Deze moeten bij het opslaan ook opgeslagen worden in de database natuurlijk.

Dan moet de knop "Acties" uitgebreid worden met een knop "Dieren aanbieden" met een functie om alle dieren die op dat moment zijn aangevinkt in de database te voorzien van de datum van die dag en een tijdstip.

Zo, nu kunnen dieren aangeboden worden. Nu moeten we zorgen dat ze getoond en gevonden kunnen worden. Er moeten dus 3 pagina's ontworpen worden:

  1. Een overzichtspagina met bovenin een zoekfunctie en daaronder de laatste x aantal aangeboden dieren.
  2. Een pagina voor het dier zelf met daaronder andere aangeboden dieren van dezelfde soort.
  3. Een pagina op te reageren.

Deze ontwerpen moeten omgezet worden naar HTML zodat ze ook gebruikt kunnen worden, ook met mobiele appaten moet rekening gehouden worden. Als de pagina's naar HTML gezet zijn kunnen we de functies/acties gaan bouwen.

Terrafile wordt gesteund en aanbevolen door: