Geoweb: Party Planner Vandewoude Alexander Vanhelmont Niels Vanweddingen Vincent Vercammen Bart Vissers Veerle 1 december 2006
Inhoudsopgave 1 Inleiding 1.1 Projectbeschrijving . . . . . . . . . . . . . . . . . . . . . . . .
3 3
2 Ontwerpproces 2.1 Planning . . . . . . . . . . . . . . . . . 2.2 Party Planner . . . . . . . . . . . . . . 2.3 Bronnen . . . . . . . . . . . . . . . . . 2.3.1 Map24 . . . . . . . . . . . . . . 2.3.2 Google Maps . . . . . . . . . . 2.3.3 Yahoo Maps . . . . . . . . . . 2.3.4 Gouden gids . . . . . . . . . . 2.4 vakintegratie . . . . . . . . . . . . . . 2.5 Demonstratiedag . . . . . . . . . . . . 2.5.1 Benodigdheden . . . . . . . . . 2.6 Use cases . . . . . . . . . . . . . . . . 2.6.1 Registreren . . . . . . . . . . . 2.6.2 Uitregistreren . . . . . . . . . . 2.6.3 Inloggen . . . . . . . . . . . . . 2.6.4 Uitloggen . . . . . . . . . . . . 2.6.5 Locatie zoeken . . . . . . . . . 2.6.6 Activiteit aanmaken . . . . . . 2.6.7 Inschrijven voor activiteit . . . 2.6.8 Uitschrijven voor activiteit . . 2.6.9 Groep aanmaken . . . . . . . . 2.6.10 Inschrijven in groep . . . . . . 2.6.11 Een lid accepteren in de groep 2.6.12 Uitschrijven uit een groep . . . 2.6.13 Info opvragen van een groep . .
4 4 4 5 5 5 5 5 6 6 6 6 6 6 7 7 7 7 8 8 8 9 9 9 9
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
3 Hardware-Architectuur 10 3.1 Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.2 Database server . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.3 Webserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1
3.4 3.5
Mailserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gouden gids- en map24-server . . . . . . . . . . . . . . . . . .
4 Software-architectuur 4.1 Componenten . . . . . . . . . . . . . . 4.1.1 Component Map . . . . . . . . 4.1.2 Component Screenscraper . . . 4.1.3 Component Communication . . 4.1.4 Component Database manager 4.1.5 Component User system . . . . 4.1.6 Component Saving . . . . . . . 5 Nabeschouwing
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
11 11 12 12 12 14 15 15 18 23 24
6 Appendix 25 6.1 Mashups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 6.1.1 Frappr Maps . . . . . . . . . . . . . . . . . . . . . . . 25 6.1.2 City of Albuquerque . . . . . . . . . . . . . . . . . . . 25
2
Hoofdstuk 1
Inleiding 1.1
Projectbeschrijving
De opdracht voor P&O3 is een mashup aanmaken, deze combineert de informatie van meerdere bronnen. GeoWeb is zo’n applicatie waarbij een interactieve kaart wordt gemaakt. De Party Planner gebruikt een kaart van Leuven en de gegevens van de Gouden Gids. De applicatie maakt het mogelijk om caf´ e’s en restaurants per categorie op de kaart weer te geven. Een gebruiker die zich aanmeldt op de website kan een afspraak aanmaken op een bepaalde locatie. Deze afspraken worden getoond op de kaart, zodat de andere gebruikers ze kunnen bekijken.
3
Hoofdstuk 2
Ontwerpproces 2.1
Planning
Figuur 2.1: Gantt-chart
2.2
Party Planner
Een gebruiker, die zich aanmeldt op de webpagina van de Party Planner, kan gebruik maken van een interactieve kaart van de stad Leuven. Caf´ e’s, bioscopen en restaurants kunnen op de kaart getoond worden. Men kan een groep oprichten of zich inschrijven voor een bestaande gebruikersgroep. Elke gebruiker is automatisch lid van de algemene groep ’publiek’. Een gebruiker kan een activiteit plannen op een bepaalde locatie en deze bekend maken aan iedereen (groep publiek) of aan een selectie van gebruikersgroepen. Deze activiteit zal dan voor alle ge¨ınformeerde gebruikers zichtbaar worden in een checkbox-tree . Deze gebruikers kunnen de activiteit laten
4
weergeven op de kaart. Daarna kunnnen ze zich inschrijven om deel te nemen aan de activiteit. Informatie over de activiteit zoals locatie, datum, deelnemers,... kan steeds opgevraagd worden. De activiteiten die voorbij zijn, worden automatisch verwijderd.
2.3 2.3.1
Bronnen Map24
Map24 is eenvoudig te implementeren in een eigen applicatie. Het geeft overzichtelijke wegenkaarten en biedt de mogelijkheid om te zoeken op adres, wat op zijn beurt extra toepassingen biedt. Een ander voordeel is de goede documentatie en tutorials die op de website te vinden zijn. Het nadeel is dat er geen satellietfoto’s beschikbaar zijn. Map24 biedt geen ondersteuning voor de weergave van 3D-voorwerpen. http://devnet.map24.com/manuals/ doku.php?id=ajax:1.0:hlapi
2.3.2
Google Maps
Via javascript kunnen de Google Maps heel eenvoudig opgevraagd en aangepast worden. Voor een gewone java-applicatie is dit echter niet zo simpel te gebruiken. De documentatie is niet zo uitgebreid als bij de andere kaarten, dit is een nadeel. http://www.google. com/apis/maps/
2.3.3
Yahoo Maps
Yahoo Maps Api biedt dezelfde functionaliteit als google maps en MAP24, maar ziet er op het eerste zicht wel gemakkelijker uit. Het heeft als voordeel dat er een flash-versie beschikbaar is. Het voordeel aan Yahoo is dat het satellietbeelden kan tonen en kan zoeken op adres. http://developer.yahoo.com/maps/
2.3.4
Gouden gids
Op deze site kan je winkels via naam opzoeken, het adres wordt dan teruggegeven. Je kan ook een bepaalde categorie aanduiden, zodat je een uitgebreide lijst met details (adres + telefoonnummer) krijgt. Zoekresultaten kunnen gesorteerd worden op afstand ten opzichte van een bepaalde locatie. http://www.goudengids.be
5
2.4
vakintegratie
Voor dit project werd theorie uit verschillende vakken zoals methodiek van de informatica en informatieoverdracht en -verwerking gebruikt om een praktische toepassing te realiseren. Theorie uit het vak methodiek van de informatica werd aangewend om op een gestructureerde manier een concreet probleem om te zetten naar een design voor een bruikbare applicatie. Signaaloverdracht en verwerking geeft de theoretische achtergrond voor het zo effici¨ ent mogelijk versturen van de nodige informatie.
2.5 2.5.1
Demonstratiedag Benodigdheden
pc, java sdk 1.5, internetverbinding voor 2 laptops
2.6 2.6.1
Use cases Registreren
Beschrijving: De gebruiker registreert zich in het systeem om gebruik te kunnen maken van de functionaliteit van gebruikersgroepen om eigen activiteiten te kunnen toevoegen e.d.. 1. Klik op de knop registreren. 2. De gebruiker vult de velden in (naam, gebruikersnaam, adres, wachtwoord en email). 3. De gebruiker klikt op bevestigen. 4. Het systeem slaat de details op in de database.
2.6.2
Uitregistreren
Beschrijving: Uitschrijven uit de service. 1. Klik op de knop uitschrijven. 2. De gegevens van de ingelogde persoon worden verwijderd uit het systeem. 3. De inlogpagina wordt weergegeven.
6
2.6.3
Inloggen
Beschrijving: Inloggen in het systeem om gebruik te kunnen maken van de functionaliteit van gebruikersgroepen en om eigen activiteiten te kunnen toevoegen. 1. De gebruiker vult zijn gebruikersnaam en wachtwoord in, in de daartoe voorziene velden. 2. Het systeem vergelijkt die gegevens met de gegevens in de database en meldt de gebruiker aan of geeft een foutmelding. 3. De hoofpagina wordt weergegeven.
2.6.4
Uitloggen
Beschrijving: Uitloggen uit het systeem zodat een andere gebruiker zich kan inloggen. Bovendien wordt er vermeden dat de eigen gegevens misbruikt worden. 1. Klik op de knop uitloggen. 2. De inlogpagina verschijnt opnieuw.
2.6.5
Locatie zoeken
Beschrijving: We willen een plaats tonen op de kaart en de details ervan weergeven. 1. Per categorie wordt er een lijst met alle items getoond. Vink een item aan. 2. Het item wordt getoond op de kaart. 3. Klik op de naam om de details van dit item te tonen. 4. Informatie over dit item wordt uit de database gehaald en getoond in een pop-up.
2.6.6
Activiteit aanmaken
Beschrijving: We willen een activiteit toevoegen aan de database. Deze kan publiek of privaat zijn en dus zichtbaar op de kaart ofwel voor iedereen, ofwel enkel voor de gebruikers van de geselecteerde gebruikersgroepen. 1. Klik op de knop activiteit aanmaken. 2. Vul de velden in (naam, beschrijving, datum). 7
3. Duidt een locatie aan en vink de deelnemende groepen (publiek of privaat) aan. 4. De gegevens worden in de database geplaatst. 5. Map marker wordt toegevoegd op de kaart (met daarin ook de informatie over de toegevoegde activiteit).
2.6.7
Inschrijven voor activiteit
Beschrijving: Inschrijven voor een activiteit zodat je zeker kan deelnemen. 1. Klik op de activiteit. 2. Duidt de optie inschrijven aan. 3. De gebruiker wordt opgenomen als deelnemer aan de activiteit.
2.6.8
Uitschrijven voor activiteit
Beschrijving: Uitschrijven voor een activiteit als je beslist om toch niet deel te nemen. 1. Klik op de de activiteit. 2. Duidt de optie uitschrijven aan.
2.6.9
Groep aanmaken
Beschrijving: De gebruiker kan een eigen gebruikersgroep aanmaken waar andere leden zich bij kunnen aansluiten. Degene die de groep heeft aangemaakt is automatisch ook de beheerder van de groep. In een groep kunnen feestjes aangemaakt worden en specifieke afspraken voor activiteiten worden bepaald. 1. Klik op de knop groepen beheren. 2. Klik op de knop nieuwe groep aanmaken. 3. Vul alle details van de nieuwe groep in (groepsnaam). 4. De nieuwe groep wordt aangemaakt in de database. Degene die de groep aanmaakt wordt automatisch beheerder en lid van de groep.
8
2.6.10
Inschrijven in groep
Beschrijving: Een gebruiker schrijft zich in een groep in. 1. Klik op de knop groepen beheren. 2. Klik op de knop inschrijven. 3. De gebruiker krijgt een lijst met alle groepen. 4. Klik op de gewenste groep om u in te schrijven voor die groep. 5. Een aanvraag wordt verstuurd naar de beheerder van de groep.
2.6.11
Een lid accepteren in de groep
Beschrijving: Een gebruiker schrijft zich in in een groep. De beheerder krijgt een melding dat iemand zich wil inschrijven en kan accepteren of weigeren. 1. De beheerder krijgt een melding als iemand zich wil inschrijven in zijn groep. 2. Hij kan accepteren of weigeren. 3. Bij acceptatie wordt de gebruiker toegevoegd aan de groep.
2.6.12
Uitschrijven uit een groep
Beschrijving: Het lidmaatschap van een bepaalde groep opzeggen. 1. Klik op de knop groepen beheren. 2. Klik op de knop uitschrijven. 3. Duidt de gewenste groep uit de lijst aan. 4. Het systeem zal de betreffende gebruiker uitschrijven uit deze groep.
2.6.13
Info opvragen van een groep
Beschrijving: Info opvragen van een bepaalde groep waarvoor een gebruiker ingeschreven is. 1. Klik op de knop groepen beheren. 2. Klik op de betreffende groep. 3. Selecteer de knop info. 4. Informatie van die groep wordt opgevraagd en weergegeven.
9
Hoofdstuk 3
Hardware-Architectuur
Figuur 3.1: hardware-diagram
3.1
Client
De client draait op de pc van elke gebruiker. De informatie wordt opgehaald uit de goudengids en map24server die niet door ons beheerd worden. Login-, activiteiten- en mapgegevens worden opgehaald uit respectievelijk een database server en de map24 server.
3.2
Database server
Deze server zal de database bevatten waarin de login- en activiteitengegevens van de gebruikers zullen bewaard worden. 10
3.3
Webserver
Hierop wordt het map.html document bewaard om kaartgegevens van map24 te kunnen benaderen in onze applicatie. De URL naar de map.html file moet geregistreerd zijn bij map24. Het is praktischer om dezelfde file te gebruiken voor al de clients, zodat de gebruiker er niet in kan gaan knoeien en wijzigingen snel en effici¨ ent kunnen worden doorgevoerd.
3.4
Mailserver
Met deze server gaat verbinding gemaakt worden om de (automatisch gegenereerde) emails te versturen. Deze server is optioneel.
3.5
Gouden gids- en map24-server
Deze servers bevatten de locatie- en mapgegevens. Deze servers worden niet door ons beheerd. De client zal elke keer opnieuw verbinding maken met de gouden gids omdat het op die manier eenvoudiger gaat zijn om uitbreidingen toe te voegen. Als alle data op de server bewaard wordt, zou er bij een uitbreiding die het bijvoorbeeld mogelijk maakt om caf´ e’s in heel Belgi¨ e te zoeken nodig zijn om zowel de client als de database aan te passen. Door de client de verantwoordelijkheid te geven zijn eigen gegevens te verzamelen kan dit eenvoudig ge¨ımplementeerd worden.
11
Hoofdstuk 4
Software-architectuur
Figuur 4.1: software-diagram
4.1 4.1.1
Componenten Component Map
Toont, controleert en manipuleert de kaart met alle gegevens van het programma. 1. Methode: addLocation Voegt een locatie (met tooltip) toe aan de kaart. • Argumenten mapItem mapItemobject (locatie/activiteit/...) 12
Figuur 4.2: componenten-diagram • Precondities Er moet een actieve internet verbinding zijn. Map24 service moet beschikbaar zijn. • Postcondities Marker van het mapItemobject wordt toegevoegd aan de kaart met de juiste specificaties, afhankelijk van het subtype. 2. Methode: removeLocation Verwijdert een welbepaalde locatie (met tooltip) van de kaart. • Argumenten mapItem mapItemobject (locatie/activiteit/...) • Precondities Er moet een actieve internet verbinding zijn. Map24 service moet beschikbaar zijn. • Postcondities Marker van het mapItemobject wordt verwijderd van de kaart. 13
3. Methode: hideLocation Past de visibility aan van een bestaand mapItem naar ’invisible’. • Argumenten mapItem mapItemobject (locatie/activiteit/...) • Precondities Er moet een actieve internet verbinding zijn. Map24 service moet beschikbaar zijn. • Postcondities Marker van het mapItemobject wordt onzichtbaar gemaakt op de kaart zonder deze te verwijderen. 4. Methode: showLocation Past de visibility van een mapItem op de kaart aan naar ”visible”. • Argumenten mapItem mapItemobject (locatie/activiteit/...) • Precondities Er moet een actieve internet verbinding zijn. Map24 service moet beschikbaar zijn • Postcondities Marker van een onzichtbaar gemaakt mapItemobject wordt terug zichtbaar gemaakt op de kaart.
4.1.2
Component Screenscraper
De screenscraper maakt verbinding met de gouden gids database en haalt alle info,die op de kaart dient weergegeven te worden, op. 1. Methode: getData Haalt informatie uit de html pagina’s van de gouden gids op. • Argumenten String what String where • Precondities Er moet een actieve internet verbinding zijn. De website van de gouden gids moet beschikbaar zijn. • Postcondities De gevonden data wordt geretourneerd als een array van plaatsobjecten.
14
4.1.3
Component Communication
Communicatie met de gebruiker in de vorm van verwittigingsemails e.d. 1. Methode: sendEmail Verzend een e-mail naar een gebruiker. • Argumenten to from subject body • Precondities Er moet een actieve internet verbinding zijn. • Postcondities Indien de verbinding met de mailserver gelukt is, is de e-mail verzonden.
4.1.4
Component Database manager
Deze component dient voor de interactie tussen het programma en de database 1. Methode: getUser Haalt de data van een welbepaalde user op uit de database. • Argumenten String username • Precondities Er moet een actieve internet verbinding zijn. De database moet beschikbaar zijn. • Postcondities Geeft de data van de bepaalde user terug als een user object. 2. Methode: getUsergroups Geeft de usergroups terug waarvoor deze user ingeschreven is. • Argumenten user userobject • Precondities Er moet een actieve internet verbinding zijn. De user bestaat. De database is beschikbaar.
15
• Postcondities De usergroepen, waarvoor de user is ingeschreven worden teruggegeven in een array van usergroup objecten. 3. Methode: verifyPassword Bepaalt of het wachtwoord voor deze welbepaalde user juist of fout is. • Argumenten User user String password • Precondities Er moet een actieve internet verbinding zijn. De database is beschikbaar. De user bestaat. • Postcondities Geeft true of false naargelang het wachtwoord juist of fout is. 4. Methode: getActivities Haalt de activiteiten op van een welbepaalde usergroup uit de database. • Argumenten Usergroup usergroep • Precondities Er moet een actieve internet verbinding zijn. De database moet beschikbaar zijn. De usergroep bestaat. • Postcondities Geeft alle activiteiten terug, die gevonden zijn in de database voor deze usergroup, in een array van activiteitobjecten. 5. Methode: addUser Voegt een user toe aan de database. • Argumenten User user • Precondities Er moet een actieve internet verbinding zijn. De database moet beschikbaar zijn. • Postcondities De user wordt toegevoegd aan de database. 6. Methode: addUsergroup Voegt een usergroup toe aan de database. • Argumenten Usergroup usergroupobject 16
• Precondities Er moet een actieve internet verbinding zijn. De database is beschikbaar. • Postcondities De usergroep wordt toegevoegd aan de database. 7. Methode: addActivity Voegt een activiteit toe aan de database. • Argumenten Activiteit activiteit • Precondities Er moet een actieve internet verbinding zijn. De database moet beschikbaar zijn. • Postcondities Voegt een activiteit toe aan de database. 8. Methode: editUser Past de data van een welbepaalde user aan en slaat deze veranderingen op in de database. • Argumenten User username • Precondities Er moet een actieve internet verbinding zijn. De user moet bestaan. De database moet beschikbaar zijn. • Postcondities De veranderingen voor deze user worden opgeslaan in de database. 9. Methode: editUsergroup Past de gegevens voor een bepaald usergroep aan, in de database. • Argumenten Usergroup usergroupobject • Precondities Er moet een actieve internet verbinding zijn. De usergroup moet bestaan. De database is beschikbaar. • Postcondities De gegevens voor de usergroup worden aangepast in de database 10. Methode: editActivity Past de data van de activiteit aan, in de database. 17
• Argumenten Activiteit activiteit • Precondities Er moet een actieve internet verbinding zijn. De database moet beschikbaar zijn. De activiteit bestaat. • Postcondities Past de gegevens voor de activiteit aan, in de database.
4.1.5
Component User system
Deze component (als uitbreiding) bevat alle functionaliteiten die verbonden zijn aan een user en usergroep systeem. (inloggen, groepen joinen/verlaten, activiteiten toevoegen,activiteiten bekijken,. . . ) 1. Methode:registrateUser Voegt een user die zich net geregistreerd heeft toe aan het systeem. • Argumenten String name String surname String username String password String email Address address • Precondities Er moet een actieve internetverbinding en een verbinding met de database zijn. • Postcondities De user is toegevoegd aan de database. De huidige gebruiker is de net geregistreerde gebruiker. 2. Methode:addUserToGroup Voegt een gebruiker toe aan een gebruikersgroep. • Argumenten User user Group usergroup • Precondities Er moet een actieve internetverbinding en een verbinding met de database zijn. Zowel de gebruiker als de groep moeten bestaan. • Postcondities De gebruiker is toegevoegd aan de lijst van leden in de groep. De groep is toegevoegd aan de lijst van groepen van de gebruiker. 18
3. Methode:removeUserFromGroup Verwijdert een gebruiker uit een groep. • Argumenten User user Group usergroup • Precondities Er moet een actieve internetverbinding zijn, en een verbinding met de database. Zowel de gebruiker als de groep moeten bestaan. • Postcondities De gebruiker is verwijderd uit de lijst met leden van de groep. De groep is verwijderd uit de lijst met groepen van de gebruiker. 4. Methode:editUser Past de gegevens van een bestaande gebruiker aan. • Argumenten String name String surname String username String password String email Address address • Precondities Er moet een actieve internetverbinding zijn, en een verbinding met de database. 5. Methode:removeUserFromSystem Verwijdert een user uit het systeem. • Argumenten User user • Precondities Er moet een actieve internetverbinding zijn, en een verbinding met de database. De gebruiker moet bestaan. • Postcondities De gebruiker bestaat niet meer. 6. Methode:addUsergroup Voegt een usergroup toe aan het systeem. • Argumenten String groupname User manager 19
• Precondities Er moet een actieve internetverbinding zijn, en een verbinding met de database. De beheerder moet een bestaande gebruiker zijn. • Postcondities De groep is toegevoegd aan de database. 7. Methode:getUsersFromGroup Vraagt alle gebruikers op uit een bepaalde groep. • Argumenten Group usergroup • Precondities Er moet een actieve internetverbinding zijn, en een verbinding met de database. De groep moet een bestaande zijn. • Return Alle gebruikers, die tot deze groep behoren, worden in een arraylist teruggegeven als userobjecten. 8. Methode:getGroupsFromUser Vraagt alle groepen op waartoe deze gebruiker behoort. • Argumenten User user • Precondities Er moet een actieve internetverbinding zijn, en een verbinding met de database. De gebruiker moet bestaan. • Return Alle groepen die gevonden zijn worden in een arraylist teruggegeven als groupobjecten. 9. Methode:getGroups Vraagt alle groepen op die opgeslagen zijn in de database. • Precondities Er moet een actieve internetverbinding zijn, en een verbinding met de database. • Return Alle groepen die gevonden zijn in de database worden in een arraylist teruggegeven als groupobjecten. 10. Methode:addActivity Voegt een activiteit toe aan het systeem. 20
• Argumenten String name String description Location location String date ArrayList groups String imgUrl • Precondities Er moet een actieve internetverbinding zijn, en een verbinding met de database. De gebruiker moet bestaande zijn. • Postcondities De activiteit is toegevoegd aan de database. 11. Methode:removeActivity Verwijdert een activiteit uit het systeem. • Argumenten Activity activity • Precondities Er moet een actieve internetverbinding zijn, en een verbinding met de database. De gebruiker en de activiteit moeten bestaan. 12. Methode:joinActivity Voegt een activiteit toe aan de activiteitenlijst van de gebruiker die zich inschrijft. • Argumenten Activity activity • Precondities Er moet een actieve internetverbinding zijn, en een verbinding met de database. De groep moet een bestaande zijn. 13. Methode:leaveActivity Verwijdert een activiteit uit de activiteitenlijst van de gebruiker die zich uitschrijft. • Argumenten Activity activity • Precondities Er moet een actieve internetverbinding zijn, en een verbinding met de database. De activiteit moet bestaan. 21
14. Methode:getActivitiesFromUser Vraagt de activiteiten van een gebruiker op. • Argumenten User user • Precondities Er moet een actieve internetverbinding zijn, en een verbinding met de database. De gebruiker moet bestaan. • Return De activiteiten waaraan de gebruiker deelneemt worden teruggegeven in een arraylist. 15. Methode:getActivitiesFromGroup Vraagt de activiteiten van een groep op. • Argumenten Group group • Precondities Er moet een actieve internetverbinding zijn, en een verbinding met de database. De groep moet bestaan. • Return De activiteiten, die gepland zijn voor deze groep, worden teruggegeven in een arraylist. 16. Methode:login Een gebruiker logt in met deze functie. • Argumenten String username String password • Precondities Er moet een actieve internetverbinding zijn, en een verbinding met de database. • Postcondities Indien de login procedure goed ging, dan is de gebruiker de huidige gebruiker. 17. Methode:logout De huidige gebruiker logt uit met deze functie. • Precondities Er moet een actieve internetverbinding zijn, en een verbinding met de database. De gebruiker moet ingelogt zijn. 22
• Postcondities De gebruiker is uitgelogd. Er is geen huidige gebruiker.
4.1.6
Component Saving
Via deze component wordt informatie in verband met locaties opgehaald uit de gougden gids. De locaties worden lokaal opgeslagen. Deze component gaat dan ook moeten controleren of zijn informatie nog up-to-date is, en indien nodig updaten. 1. Methode:getLocations Vraagt alle locaties op van een bepaalde stad. • Argumenten String stad • Precondities Er moet een werkende internetverbinding zijn. De stad moet herkend worden door de gouden gids. • Postcondities Alle data uit de goudengids wordt opgehaald en opgeslagen in een arrayList in de saving component. 2. Methode:getLocations Geeft alle opgeslagen locaties terug in een arraylist. • Argumenten • Precondities De locaties zijn reeds succesvol ge¨ınitialiseerd door deze methode met parameter aan te roepen, bij het starten van het programma. • Postcondities Alle locaties worden in een arraylist, per categorie teruggegeven. 3. Methode:getLocations Vraagt alle locaties op van een bepaalde stad. • Argumenten String stad • Precondities Er moet een werkende internetverbinding zijn. De stad moet herkend worden door de gouden gids. • Postcondities Alle data uit de goudengids wordt opgehaald en opgeslagen in een arrayList in de saving component.
23
Hoofdstuk 5
Nabeschouwing
24
Hoofdstuk 6
Appendix 6.1 6.1.1
Mashups Frappr Maps
Frappr Maps kan gebruikt worden door communities om een overzicht te krijgen van de geografische spreiding van hun ledenbestand. Heel concreet wil dit zeggen dat het een intu¨ıtieve interface biedt die het mogelijk maakt voor de leden om hun woonplaats, of elke andere locatie die ze met hun community members willen delen, op de map kunnen aanduiden. Elke community kan zo’n map aanmaken en die wordt dan alleen door de members gebruikt. Een leuke feature is dat men ook foto’s kan toevoegen. Een nadeel is wel dat er geen beveiliging of controlemechanisme ingebouwd is. Iedereen kan zich op eender welke map bij zetten, ook als dit niet gewenst is. http://www.frappr.com/?a=createmap2&mapid=2697023
6.1.2
City of Albuquerque
Deze gebruikersinterface is ’e’en van de oudste en meest voorkomende die voor gis-doeleinden gebruikt worden. Het voordeel is dat voor personen die hiermee bekend zijn, dit een overzichtelijke manier is om de vele mogelijkheden te tonen. Het grote nadeel is dat de meeste mensen liever een eenvoudige/teletubbyachtige interface zoals google maps in hun vaandel dragen. http://www.cabq.gov/ gis/
25