Kulturhus
En av landets små kommuner har fått et nytt kulturhus med kinosal,
teatersal og forsamlingssal, samt liten kafe.
Kjernevirksomheten er å arrangere forskjellige typer arrangementer, som
teater, barneforestillinger, foredrag, debattkvelder og politiske møter m.m. i tillegg til å vise filmer i kinosalen.
Dere har fått i oppdrag å lage et dataprogram som skal lette driften av kulturhuset.
Oppdragsgiveren (kommunen) har store forventninger til programmet.
De viktigste oppgavene vil være registrering av alle arrangementer,
billettsalg, opplysningsvirksomhet mot publikum, samt promotering av kulturhuset.
Oppdragsgiver ønsker videre at man lett skal kunne hente ut informasjon fra systemet,
og at det skal genereres historikk og forskjellige typer statistikk, slik at de kan bruke resultatene til å
planlegge kommende sesonger.
REGISTRERING
Programmet skal kunne registrere alle arrangementer som avholdes i kulturhuset.
Det er umulig å forutsi hvor mange det kan dreie seg om.
Programmets datastruktur må ikke sette noen begrensninger på antallet som kan registreres.
Registrering av lokale
Kulturhuset har forskjellige lokaler der arrangementene kan avholdes
og informasjon om disse må være registrert i dataprogrammet.
For hvert lokale skal det registreres:
- lokalets navn
- type (kino, konsertsal, foredragssal, teatersal osv.)
- antall plasser
- om lokalet har nummererte plasser eller ikke
Registrering av kontaktperson
Alle arrangementer skal ha en kontaktperson (ikke blant de ansatte ved kulturhuset men knyttet til arrangementet).
For hver kontaktperson skal følgende registreres:
- navn, telefonnummer og e-post-adresse og eventuelt nettside
- type arrangement vedkommende er tilknyttet (teater, film, arrangement, debatt, foredrag, osv.)
- navn på firma/ensemble/virksomhet vedkommende er tilknyttet
- tekst som inneholder andre relevante opplysninger om personen
Registrering av arrangement
For alle arrangementer skal følgende registreres:
- kontaktperson
- type arrangement (teater, film, arrangement, debatt, foredrag, osv.)
- navn på arrangement
- artister/personer som skal delta i arrangementet
- program
- sted (hvilket lokale)
- tidspunkt
- billettpris (For enkelhets skyld kan dere anta at alle billetter på et arrangement
har samme pris.)
- billettsalg (solgte/usolgte billetter).
Registrering av billettsalg
Programmet må kunne registrere salg av billetter til et valgt arrangement.
Hver solgte billett skal registreres med eventuelt plassnummer, navn på lokale, dato og klokkeslett, pris
og telefonnummer for den som har kjøpt/reservert billetten. (For enkelhets
skyld kan dere gjerne anta at i lokaler med nummererte plasser er alle billetter nummerert kontinuerlig
fra 1 og oppover.)
For at det skal være mulig å generere historikk,
skal et arrangement være registrert også etter at det er avholdt.
BILLETTINNTEKTER
Oppdragsgiveren ønsker at det skal lagres opplysninger om billettinntektene,
som f.eks. hvor stor prosent av billettene som ble solgt på hvert arrangement, samt
hvor store de samlede billettinntektene er.
KALENDER
Oppdragsgiveren ønsker at det skal lages en kalender, tilgjengelig
for publikum, som viser sesongens program i kronologisk rekkefølge.
PROMOTERING
Oppdragsgiveren ønsker seg høyere besøkstall i kulturhuset og ønsker seg derfor
muligheten for å legge ut smakebiter på hva som foregår i form av
musikk, bilder, videoer, anmeldelser av arrangementer osv.
SLETTING
Det må være mulig å avlyse et arrangement, f.eks. på grunn av
sykdom. Alle registrerte data for arrangementet skal da slettes fra
dataprogrammets datastruktur. Men før sletting, skal det skrives ut (på skjermen) en
liste over eventuelle solgte billetter til arrangementet, slik at kjøperne kan kontaktes
og få refundert sine penger. (Dette skal ikke foretas av dataprogrammet,
men av dem som bruker det.)
LAGRING
Skrive data til fil
For at dataene som ligger lagret i dataprogrammets interne datastruktur ikke skal
gå tapt når dataprogrammet avsluttes, må alle data lagres på fil. Lagring på fil må
foretas i forbindelse med hver dataprogramavslutning. Det kan dessuten være ønskelig
å kunne foreta lagring på fil også under dataprogrammets kjøring.
Lese data fra fil
Hver gang dataprogrammet startes, må alle dataene som ligger lagret på fil leses
inn i dataprogrammets interne datastruktur.
SØKEMULIGHETER OG INFORMASJON
Oppdragsgiveren ønsker seg et dataprogram med gode og fleksible søkemuligheter.
Aktuelle ønsker er:
Informasjon om
- alle data om en valgt arrangement
- alle data om et valgt lokale
- alle data om en gitt kontaktperson
- alle artister/personer som skal delta i et gitt arrangement
- alle arrangementer: navn, type, sted og tidspunkt
- alle arrangementer innen en valgt type
- alle kontaktpersoner innen en valgt type
- alle arrangementer i en gitt tidsperiode
- ???
STATISTIKK
Det er ønskelig at dataprogrammet skal kunne skrive ut ulik statistikk, som for eksempel:
- prosentvis belegg på arrangementene i et gitt lokale
- totalt antall arrangementer (tidligere og framtidige) arrangert i hvert lokale
- liste over de 10 mest inntektsbringende arrangementene
UTVIDELSESMULIGHETER
Opplistingen av søkemuligheter og statistikk er å betrakte som eksempler.
Dere står fritt når det gjelder hva dere vil implementere og også fritt i å
supplere dataprogrammet med andre søkemuligheter.
Oppdragsgiver har nevnt som et ønske å få registrert anmeldelser(eventuelt med terningkast)
av avholdte arrangementer. Disse kan eventuelt knyttes til arrangementer og/eller
kontaktpersoner. Det vil da være mulig å generere statistikk på grunnlag av
dette, for eksempel ut fra av terningkast.
For øvrig er oppdragsgiver interessert i alle forslag til utvidelser som
dere måtte ha, selv om det vil føre for langt å implementere dem i denne
omgang.
OPPGAVENS OMFANG
Oppgavens størrelse vil være avhengig av hvor mye av oppdragsgiverens krav
og ønsker dere implementerer. For de fleste vil den bli alt for omfattende hvis alt skal
implementeres fullt ut. En av utfordringene blir derfor å gjøre fornuftige valg
for HVA som implementeres og HVA som kan utelates. Det er imidlertid viktig at
programmet kan kompletteres på et seinere tidspunkt (for eksempel av en annen
programmerer) uten at det må gjøres vesentlige forandringer i den eksisterende koden.
Kravene fra oppdragsgiver er veiledende. Dere kan legge til og trekke fra
alt etter som dere finner det hensiktsmessig. Oppdragsgiver ønsker imidlertid at
dere skal komme med forslag til utvidelser av programmet. Dere står også fritt
til å implementere mer funksjonalitet enn det som er beskrevet i det følgende.
Dersom dere implementerer mindre enn det som er beskrevet, må det gå klart fram
av dokumentasjonen hva som er utelatt og hvordan dere har prioritert.
Programmet SKAL være en vanlig java-applikasjon, ikke en web-applikasjon.
Dere kan likevel tenke dere at de forskjellige vinduene (JFrames) skal brukes
av forskjellige personer og la et av vinduene representere kulturhusets nettside
(selv om det er en JFrame og ikke en web-side).
For å få noen ideer til oppgaven kan dere ta en titt på noen av nettstedene til
andre kulturhus: