# Ticketsystem in Java programmieren



## IchBraucheHilfe (19. Jul 2007)

Hallo,
Ich muss ein Ticketsystem in java programmieren.
Das Ticketsystem soll folgendermaßen aussehen:
Es soll ein internes Ticketsystem für auftauchende Probleme werden (innerhalb der Firma).

Optionen:
- Ticket anlegen
- Ticket versenden(über E-Mail am besten Outlook)
- Ticket mit Datenbankanbindung (interne Daten der Mitarbeiter)
- Ticket speichern

Da ich Anfänger in Java bin und noch nicht richtig weiß wie ich anfangen soll bzw. wie man dies am besten realisiert,
bräuchte ich eure Hilfe, also wäre für Tips oder beispiel quellcode sehr dankbar.

Im Voraus schon mal vielen Dank


----------



## Zed (19. Jul 2007)

Schritt für Schritt durchdenken und Schrtt für Schritt das Problem angehen. 

Ich würde mit Tickets erstellen anfangen. 

Überleg dir wie das Objekt Ticket aussehen soll. Eine Möglichkeit die Tickets zu erstellen sei es Intranet oder eine Netzwerk Application. Tickets verwalten wäre auch ein großer Punkt. 

Selber einarbeiten und ggf. hier konkrete Fragen mit einer Problemstellung stellen.


----------



## IchBraucheHilfe (19. Jul 2007)

Ich bin gerade dabei mir zu überlegen wie Ticket anlegen aussehen soll und zwar habe ich es mir folgendermaßen vorgestellt:
Ticket erstellen()
beeinhaltet:
- Textbox mit Namen des Mitarbeiters 
- Textbox Betreff:
- Textbox Problem:

Button:
Nachricht Senden

was hälst du davon?


----------



## Zed (19. Jul 2007)

Grob richtig aber ne Menge an Daten die fehlen.

- Was ist mit Datum/ Zeit der Erstellung/Beendigung
- Ist das Ticket noch offen/gelöst? 
- Mitarbeiter der das Ticket bearbeitet bzw. Abteilung

edit 
Noch eingefallen Kontaktdaten.

Denke genau drüber nach was du brauchst den im nachhinein ist es nur Stressig alles zu erweitern.

edit 2
Ich galube wir reden etwas aneinader Vorbei. Ich rede nicht von einer GUI ich rede nur von einer Classe Ticket


----------



## Murray (19. Jul 2007)

Du solltest nicht mit dem Entwurf der GUI beginnen.

Überleg dir erstmal, welche Daten zu einem Ticket gehören, und welche Workflows benötigt werden (Ticket erfassen, Ticket einem zuständigen Mitarbeiter zuweisen, Rückfragen stellen, Erledigt melden, ...).


----------



## The_S (19. Jul 2007)

Du solltest als Anfänger generell nciht damit beginnen ein Ticket-System zu schreiben  .


----------



## Zed (19. Jul 2007)

Ach ja für die Oberfläche würde ich wenn es Webbasiert ist JSF/JSP nehmen. Dahinter vielleicht ne Hybernate Datenbank um die Tickets zu hinterlegen.

Das Grundgerüst natürlich mit Java / Servlets/ Beans realisieren. 

Plan schonmal 6 Monate ein.


----------



## IchBraucheHilfe (19. Jul 2007)

ohh stimmt daran hab ich gar nicht gedacht.
- ich brauche noch ein Datum für Ticket erstellt und ein Datum für ticket abgeschlossen
- Abteilung kann man auch mit aufnehmen 
- offen/gelöst ist auch ein wichtiger Punkt 

Bearbeiter des Tickets wollte ich in der Klasse 'Ticket lösen' einbringen


----------



## IchBraucheHilfe (19. Jul 2007)

JSF/JSP hat das was mit SWING zu tun oder lieg ich da völlig falsch


----------



## IchBraucheHilfe (19. Jul 2007)

ich hab keine 6 monate zeit höchsten 3 WOchen muss grafisch nicht so anspruchsvoll sein


----------



## Murray (19. Jul 2007)

In drei Wochen kannst du vielleicht ein fertiges Ticketsystem aufsetzen, aber bestimmt keins programmieren.


----------



## Zed (19. Jul 2007)

Ich würde das Ticket nicht in verschiedene Classen spliten.

Wenn die Tickets stark Abweichen von Abteilung zu Abteilung bzw von Problem zu Problem könnte das Stichwort Vererbung da eine kleine Abhilfe sein. Aber ich würde es nicht komplizierter machen als die Aufgabe eingentlich schon ist. 

Ticket lösen könnte ich mir so vorstellen. Mitarbeiter öffnet ein Ticket (das gewnschte Object wir aus der DB geholt).
Gibt ein Text ein "Problem gelöst und blablabla" sezt einen Hacken Problem gelöst. Das object wird daraufhin mit einem Attributt versehen solved=true. Optional könnte er noch ein Attribut setzen wird bearbeitet und eben später auf solved setzen wenns erledigt ist. 

Du brauchst ausserdem noch einen Weg der verhindert das mehere Mitarbeiter am selben Ticket sitzen.

Edit:
Als Anfänger es in 3 wochen zu schaffen, dass ist nicht möglich.

Swing ist für Java Applicationen, JSP/JSF ist würs Web bzw. Geschäftsprozesse die mit dem Browser erledigt werden sollen.


----------



## IchBraucheHilfe (19. Jul 2007)

Also meinst du alles in eine Klasse?

Ticket lösen() hab ich mir genauso vorgestellt.


----------



## Zed (19. Jul 2007)

Die Classe Ticket besitzt keinen Workflow. Sie besitzt nur Attribute die etwas über den Status des Tickets was aussagen.

Variablen und geter/seter. Du musst dir dann noch einen Container konstruieren für die Classe Ticketmit eben lösen() erstellen() etc.


----------



## IchBraucheHilfe (19. Jul 2007)

geter/seter ????


----------



## Zed (19. Jul 2007)

oh ha

```
//geter
	public String getXslOption() {
		return xslOption;
	}

	/**
	 * seter
	 */
	public void setXslOption(String xslOption) {
		this.xslOption = xslOption;
	}
```


----------



## The_S (19. Jul 2007)

Lass es mich zusammenfassen:

- Du bist ziemlicher Anfänger (noch nie was von Getter/Setter und Servlets gehört)
- Du bist dir nicht mal selbst über den genauen Aufwand im Klaren
- Du weißt nicht, was alles genau rein muss
- Du willst mit der GUI anfangen und hast so wie ich das rausgelesen habe auch kein Interesse daran eine eigene Ticket-Klasse für die Daten (keine GUI) zu erstellen
- Du hast einen Zeitrahmen von 3 Wochen

das ist nicht mal möglich, wenn du sofort anfängst und Tag und Nacht ohne Unterbrechung arbeitest!


----------



## IchBraucheHilfe (19. Jul 2007)

ist das ein Funktion geter/seter oder meinst du damit:
getTicket
setTicket


----------



## IchBraucheHilfe (19. Jul 2007)

nein Ich will nicht mit der GUI anfangen von mir aus kann es auch ohne sein


----------



## IchBraucheHilfe (19. Jul 2007)

fange heut erst damit an deswegen bin ich mir noch nicht ganz sicher was rein soll und was nicht


----------



## The_S (19. Jul 2007)

@IchBraucheHilfe

n Ticketsystem ohne GUI :shock: !? Ändert auch nichts an der Tatsache, dass du das knicken kannst

@Zed

Es heißt getter und setter nicht geter und seter  .


----------



## Zed (19. Jul 2007)

Klar getter und setter

Wer schnell tippt der macht auch schnell Fehler 



Ich hoffe mal jetzt kannst du dir da was drunter vorstellen.

```
public class Ticket(){

  boolean solved= false;

public void setSolved (boolean  solved){
  this.solved=solved;
}
public boolean getSolved(){
 return solved;
}

}
```


----------



## babuschka (19. Jul 2007)

Generell sollte man sich mit demjenigen, der den Auftrag erteilt hat im Klaren sein, was für Funktionalitäten benötigt werden und das ganze am besten schriftlich festhalten.
Ansonsten hat das Ganze ohnehin wenig Aussicht.


----------



## Zed (19. Jul 2007)

Ich denke mal der er ist etweder Prakti oder Werkstudent.

Da ist das so normal. Betreuer kommt. Wir brauchen das überleg dir was. 

Das kommt auch noch dazu. Ist ja net so was du nur ein Ticketsystem machen musst sonder die Doku/Systemstruktur wahrscheinlich gleich mit. Da kannst gleich zu deinem Betreuer gehen und sagen das 3 Wochen nie Ausreichen. Du brauchst 3 Monate um mit den ganzen Techniken vertraut zu werden und 3 Monate für die Umsetzung + Doku


----------



## IchBraucheHilfe (19. Jul 2007)

ja so ähnlich ist es auch


----------



## IchBraucheHilfe (19. Jul 2007)

egal ich lass mich deswegen nicht entmutigen, ich hab auch schon etwas in c++ gearbeitet, ich werd das schon irgendwie schaffen auch wenn ich etwas länger brauche.

Trotzdem finde ich das nett das ihr mir hilft


----------



## IchBraucheHilfe (19. Jul 2007)

ich habe ein Buch über Java2 von der uni hannover.
welche Themen brauche ich den für dieses Ticketsystem?
also AWT und Swing wollt ich mir ankucken
was bräuchte ich dafür noch(falls es nicht in dem Buch steht das ich mir noch eins kaufen kann)


----------



## The_S (19. Jul 2007)

Als Anfänger musst du mindestens ein Buch von vorne bis hinten lesen! Schau dir mal die Java-Insel auf www.galileocomputing.de an. Die kannst du auch kostenlos am PC lesen!


----------



## Zed (19. Jul 2007)

Du solltest am Anfag mit deinem Betreuer abklären was er sich vorstellt. 

1 Möglichkeit die ich sehe ist. 
Eine Anwendung die im Browser abläuft. Tickets schreiben. 
Tickets bearbeiten könnte auch im Browser passieren eventl. auch in einem seperaten Programm. Die beide nutzen natürlich dann die selbe DB

2. Möglichkeit: Ein Server Programm und Clientprogramme. Eins mit minimalen Möglichkeiten (Tickets erstellen). Das 2 mit eben allen Möglichkeiten für die Servicemitarbeiter. 

Für Möglichkeit 1 ganz klar JSP/JSF envtl. auch XSLT für die Darstellung wenn du die Tickets im XML Format lagerst.

Für Möglichkeit 2 Java mit Swing oder vielleicht sogar MFC/C++

Das Serverprogramm würde ich auf alle fälle mit C++/C machen.


----------



## Roar (19. Jul 2007)

hm, eigentlich hab ich schon angefangen zu schreiben dass ihr irgendwie blödsinn redet und statt so demotivierend zu sein lieber mal konstruktive anfängerhilfen geben solltet anstatt sowas "Du bist ziemlicher Anfänger (noch nie was von Getter/Setter und Servlets gehört) "; "Als Anfänger musst du mindestens ein Buch von vorne bis hinten lesen!"; "Plan schonmal 6 Monate ein. "
aber nach dem letzten post hab ich keine lust mehr :applaus:


----------



## IchBraucheHilfe (19. Jul 2007)

die erste Möglichkeit hört sich gut an


----------



## Timmah (19. Jul 2007)

GELÖSCHT


----------



## IchBraucheHilfe (19. Jul 2007)

wie GELÖSCHT was soll denn das


----------



## IchBraucheHilfe (19. Jul 2007)

finde java insel nicht wo kann ich das auf www.galileocomputing.de nachlesen


----------



## SlaterB (19. Jul 2007)

gelöscht heißt 'geschriebenes wieder entfernt, ignorieren',
falscher Inhalt oder gar nur aus Versehen was geantwortet

http://www.galileocomputing.de/openbook/javainsel6/


----------



## Murray (19. Jul 2007)

www.galileocomputing.de/openbook/javainsel6/

/EDIT: Oops, zweiter


----------



## IchBraucheHilfe (19. Jul 2007)

danke


----------



## The_S (20. Jul 2007)

@Roar

Hör mal, wenn man Java-Anfänger ist, ist es schlichtweg unmöglich ein Ticket-System in 3 Wochen zu planen, entwerfen, programmieren und testen!


----------



## Roar (20. Jul 2007)

nö, es verlangt ja auch niemand einen konkurrenten zu mantis o.Ä. aber außerdem stimm ich mit deiner definition von anfänger ("Du bist ziemlicher Anfänger (noch nie was von Getter/Setter und Servlets gehört) ") eh nicht zu


----------



## The_S (20. Jul 2007)

Da fängts ja schonmal an ... keiner weiß, wie umfangreich das Ganze werden soll.

Er hat ja selber gesagt, dass er Anfänger ist. Und wenn man noch nichts von Gettern und Settern gehört hat, bestätigt das diese Aussage nochmal.


----------



## Der Müde Joe (20. Jul 2007)

Kann dir mal ein wenig Hilfe geben. Meine letzte Arbeit war ein Ticketsystem.
Das Projekt läuft nun ca 2 Jahre (ich 6Mte)

Technologien:

JavaSE
Hibernate (OR-Mapper)
Struts
Velocity (TemplateEngine)
Spring
Tomcat
etc...

Das ganze wird auch eingesetzt und kann gekauft werden *Schleichwerbung*.
Als Anfänger sehe ich kaum eine möglichkeit da etwas Schlau zu machen.
Zumal die Anforderungen (wie auch immer?) recht heftig sein können.
ITIL?
Was braucht das System alles? 
UserDB?
Mailsystem?
workflow-basiert?
Knowledgebase?
CMDB? was ist kaputt und gibt immer Tickets?
Fremdsysteme (Discovery....)
und die Liste würde noch viel länger werden....

Naja....langer Worte kurzer Sinn....
Kann sehr Aufwendig sein.


----------



## Gast (23. Jul 2007)

Was wäre denn ein gutes Anfänger Projekt, welches man auch innerhalb von 2 - 3 Wochen realisieren kann???


----------



## Zed (23. Jul 2007)

Die Plannung kann man denke ich in 3 Wochen hinbekommen


----------



## SlaterB (23. Jul 2007)

z.B. ein Ticketsystem ohne GUI, Email und DB..

irgendwas mit wenig Eingaben und viel internen Datengewurschtel (Collections)+ eigene Klassen/ Objekte, die miteinander agieren

Dateisytem (Ordern), oder Textdateien bearbeiten, Strings sortieren, zerlegen, analysieren,
jegliche mathematische Aufgaben, Kombinatorik, Statistik, Simulation


----------



## IchBraucheHilfe (23. Jul 2007)

Was wäre denn noch ein typisches Anfängerprojekt auser ein Ticketsystem


----------



## SlaterB (23. Jul 2007)

mein Post 7 Min. vor dir gesehen?


----------



## NTB (23. Jul 2007)

Vielleicht müssen wir einfach mal davon absehen "TicketSystem" als Titel zu verwenden. Unter einem TicketSystem stell ich mir auch ein recht umfangreiches System vor. Um aber die Idee beizubehalten, aber auf einen Anfänger einzustellen, kann man das ganze doch runterschrauben, indem man das vielleicht eher als eine Art Todo-Liste mit erweiterten Möglichkeiten erstellt. Zunächst mal in eine einzelne Anwendung (ohne Server etc)

D.h. "Ticket" einstellen (mit Attributen wie Zeit, Zuständigkeit, Beschreibung etc) und Möglichkeit zur Beantwortung und schliesslich zum "lösen" in Form von abhaken. Man braucht also nicht mehr Funktionen als "Ticket erstellen" und "Ticket bearbeiten". 

Dann würde sich das in der Struktur doch schnell runterbrechen lassen, auf ein Objekt "Ticket" mit eben den Gettern und Settern und einem BusinessController, der eben die Tickets verwaltet (z.b. in einer Liste hält, neue Tickets erstellt und vorhandene aus der Liste such und verändert wieder speichert) und schliesslich eine ganz einfache Swing GUI. Das finde ich, kann man schaffen und ist genau das richtige, für den Einstieg in Java.


Vorher zum Betreuer gehen und erklären, dass sich während der Einarbeitungsphase herausgestellt hat, dass in der gegebenen Zeit von drei Wochen nicht mehr möglich ist. Auch das gehört zu einem guten Entwickler, finde ich, dass er eben auch einschätzen kann, wenn die Anforderungen zu hoch sind. Das ist ja auch nichts schlimmes.
Das läuft im Leben eines Programmierers ja oft so:
"Du hast 15 Tage Zeit."
"Oh, ich brauche 30"
"Gut, machs in 7, mehr zahlt der Kunde nicht!"


----------



## IchBraucheHilfe (23. Jul 2007)

Ja, das hört sich gut an ich werd mich daran mal versuchen.
Muss ja auch nicht zu komplex sein.
Hauptsache ich hab ein Ergebnis mit dem man etwas anfangen kann.


----------



## ARadauer (23. Jul 2007)

jetzt mal ganz ehrlich so tragisch ist das dann auch wieder nicht oder?

ticketsystem! ist ein sehr dehnbarer begriff, hab mal innerhalt eines nachmittages einen php shop geschrieben. kommt immer auf den funktionsumfang an.

ok wir reden hier nicht über konzert tickets oder? also user hat ein problem und sendet ein ticket und support bearbeitet es dann und support bietet im besten fall eine lösung.

ok eine jsp seite mit der man ein neues tickets senden kann und bestehende betrachten kann.
vielleicht eine kleine swing gui für den support der die tickets lesen kann und bearbeiten kann.

dann halt überlegen wie ein ticket aussehen kann. ticket hat einen titel, einen ersteller ein erstelldatum, und dann eine reihe von nachrichten die ihm angehänget sind. eine nachricht einen autor, datum, us, text.
tipp: nachrichten seperat von den tickets in der db halten

dann vielleicht noch user in der db verwalten, kannst dir ja überlegen obst das brauchst.


schau dir mal das mvc pattern an und versuch eine kleine swing anwendung zu schreiben, mit der man tickets betrachten, bearbeiten und erstellen kann.
für die gui empfehl ich dir jformdesigner, das kann man 3-4 mal evaluieren, da hast genug zeit.

ich würde anfangs einmal mit DAOs für die speicherung in die db anfangen.

später wenn das funktioniert, kannst ja noch mal schaun, obst eine jsp seite schaft mit der man tickets posten kann.
=============
also ich würd nun so vorgehen:
1. mit dem Betreuer die genauen Funktionen absprechne und schriftlich festhalten
2. die datenstrukturen überlegen für objekte und db
3. die ungefähre architektur der anwendung, model, view, controller
dann kannst ja schon mal ein wenig testen.
4. mal ein paar test datensätze in die datenbank geben
5. mal eine kleine mvc anwendung mit der du die datensätze bearbeiten kannst.
6. und dann halt erweitern....

was solltest du durchgehen:
bissal grundlagen, wie collections usw... was klassen und interfaces sind weißt du oder?
jdbc, DAO
das mvc pattern


also ich find das eine gute praktikumsaufgabe


----------



## NTB (23. Jul 2007)

Sorry, total offtopic...
...aber da passiert was mit meiner Hutschnur:



			
				ARadauer hat gesagt.:
			
		

> jetzt mal ganz ehrlich so tragisch ist das dann auch wieder nicht oder?



Für jemanden der einen kleinen Shop in einem Nachmittag schreibt, natürlich nicht. Hier geht es aber um jemanden, der nicht wußte, was die Begriffe Getter und Setter sind. Da musst Du schon die Verhältnismäßigkeit sehen. Was meinst Du, wie lange so  jemand braucht, um überhaupt die von mir beschriebenen Funktionen zu schreiben, ganz von Deinem ganzen Kauderwelsch.
Ich gehe mal davon aus, dass er auch noch nie mit einer Datenbank was gemacht hat und nicht weiß, was SQL ist. D.h. der Gute ist mal eben einen kompletten Tag damit beschäftigt, seine ersten SQL Statements, mit Java abzusetzen. Und bitte jetzt nicht mit irgendeinem Persistenzschichtframework kommen - wer die Grundlagen nicht versteht, sollte mit sowas auch nicht gleich anfangen. Ganz zu schweigen von dem ganzen anderen lächerlichen Kram.
Genauso "mal eben das MVC Pattern durchgehen" - äh... der Mensch hat noch nie programmiert, der stellt sich als erstes die Frage: "Pattern? Passt das gut zu Pfannkuchen?", bevor er auf die Idee kommt, "MVC" auseinanderzuschlüsseln.

Wenn man Überflieger ist, und auf einmal doch schneller als erwartet ist: Erweiterungsmöglichkeiten gibt es immer...


----------



## ARadauer (24. Jul 2007)

ok hast auch wieder recht.
aber noch nie programmiert ist übertrieben, er hat ja schon bissal erfahrungen in c++.

wär auch interessant, was das für ein praktikum ist und in welchem rahmen das abgehalten wird....


----------



## IchBraucheHilfe (24. Jul 2007)

Also: 
1. ich hab schon programmiert
2. Ich hab schon mit Datenbanken gearbeitet (Access, Oracle)
3. Hab mit SQL schon Abfragen programmiert 
4. Weiß was pattern ist

Ich bin kein kompletter Anfänger nur neu in der Java Plattform


----------



## NTB (24. Jul 2007)

Oh, dann sorry, das war der Eindruck, den ich hatte. Das geht auch an ARadauer.
Na dann mal auf an das komplexe Ticketsystem.


----------



## IchBraucheHilfe (24. Jul 2007)

Kein problem, konntet ihr ja nicht wissen.
Ich habe jetzt angefangen in Swing ein paar übungen durch
zuarbeiten(Taschenrechner usw.).


----------



## IchBraucheHilfe (24. Jul 2007)

Mit ActionListener und WindowListener


----------



## IchBraucheHilfe (24. Jul 2007)

Bin ich da jetzt auf dem richtigen weg, oder ist das Zeitverschwendung und ich sollte mich lieber auf andere Sachen beschränken.


----------



## Zed (24. Jul 2007)

Vom GUI her würde ich net anfangen eher von dem Object Ticket und dessen container


----------



## ARadauer (24. Jul 2007)

a taschenrechner ist was gutes zum anfangen. bissal zum üben


----------

