In dieser Rubrik werden Projekte präsentiert, die auf Basis von Java Web Platform entwickelt wurden.
IntelliJ IDEA und Liferay IDE wurde bei der Entwicklung als IDE's verwendet.
Onboarding Tool
Digitale Bibliothek
Portlet "Handlungsfeld"
Portlet "Kennzahlen"
Portlets "Vorgänge","Dokuments" usw.
Spring MVC CRUD APP + Spring Data JPA
Es geht hier um ein Liferay Portlet, das von mir während meiner Ausbildung bei der eis Konzept AG implementiert wurde.
Technologien, die dafür benutzt werden können/sollten, um allgemein Liferay Portlets zu implementieren:
HTML, CSS, JavaScript, MyBatis/Hibernate oder einer anderer von modernen Java Persistence Frameworks um Datenbankzugriffe zu implementieren.
Liferay Portlets basieren auf Java Enterprise Edition mit der Unterstützung von Spring Framework. Bei Portlets wurden Frontend/Backend bzw. MVC Logik realisiert.
Als Javascript Framework wurde das DOJO Framework benutzt. Andere Javascript Frameworks (z.B. Angular JS, Angular 2, ReactJS u.w.) sollen angeblich auch dafür geeignet sein.
Für die Entwicklung wurde folgende Software benötigt:
Es geht hier um ein Liferay Portlet, das von mir während meiner Ausbildung bei der eis Konzept AG implementiert wurde.
Technologien, die dafür benutzt werden können/sollten, um allgemein Liferay Portlets zu implementieren:
HTML, CSS, JavaScript, MyBatis/Hibernate oder einer anderer von modernen Java Persistence Frameworks um Datenbankzugriffe zu implementieren.
Liferay Portlets basieren auf Java Enterprise Edition mit der Unterstützung von Spring Framework. Bei Portlets wurden Frontend/Backend bzw. MVC Logik realisiert.
Als Javascript Framework wurde das DOJO Framework benutzt. Andere Javascript Frameworks (z.B. Angular JS, Angular 2, ReactJS u.w.) sollen angeblich auch dafür geeignet sein.
Für die Entwicklung wurde folgende Software benötigt:
Es geht hier um Liferay Portlets, die von mir während meiner Ausbildung bei der eis Konzept AG implementiert wurden.
Technologien, die dafür benutzt werden können/sollten, um allgemein Liferay Portlets zu implementieren:
HTML, CSS, JavaScript, MyBatis/Hibernate oder einer anderer von modernen Java Persistence Frameworks um Datenbankzugriffe zu implementieren.
Liferay Portlets basieren auf Java Enterprise Edition mit der Unterstützung von Spring Framework. Bei Portlets wurden Frontend/Backend bzw. MVC Logik realisiert.
Als Javascript Framework wurde das DOJO Framework benutzt. Andere Javascript Frameworks (z.B. Angular JS, Angular 2, ReactJS u.w.) sollen angeblich auch dafür geeignet sein.
Für die Entwicklung wurde folgende Software benötigt:
Es war vorhanden eine Basis für eine Spring MVC CRUD Applikation (mit einer DB Tabelle "player"). Zur Basis des Projektes gehörten Spring Configurationsklassen, UI und JUnit Tests.
Das folgende Funktional habe ich realisiert:
Die Haupt Technologien, die ich bei dem Projekt verwendet habe:
Der Link auf GitHub
Das ist ein Spring Boot Projekt (Backend) + Angular Material (Frontend). PostgreSQL wurde als Datenbank verwendet.
Ein neuer Mitarbeiter hat eine gewisse Anzahl von Onboarding Aufgaben zu erledigen. Wenn alle diese Aufgaben vom Mitarbeiter erledigt sind, soll der Workflow ja beenden. Dabei wird der Mitarbeiter vom System ausgeloggt bzw. deaktiviert und per E-Mail benachrichtigt. Die Benachrichtigung erhält das Onboarding Team entsprechend auch.
Das Projekt auf GitHub
Das ist ein Spring Boot Projekt. Für Frontend wurde JSF (Primefaces & Bootsfaces) verwendet.
MySQL wurde als Datenbank verwendet.
Authentifizierte Benutzer dürfen verfügbare Bücher im System lesen (online), löschen, herunterladen und bewerten. Dabei gibt’s auch eine Möglichkeit, neue Bücher hinzuzufügen.
Hauptfunktionalität:
Mehr Details & Beschreibung zum Projekt finden Sie auf GitHub
In dieser Rubrik werden Projekte präsentiert, die auf Basis von Java Standard Edition Platform entwickelt wurden.
IntelliJ IDEA wurde bei der Entwicklung als IDE verwendet.
OCR Projekt
XML Generator
MP3 Player
SWING Kalkulator
Es geht hier um einen einfachen MP3player, den von mir implementiert wurde. Ziele des Projektes waren, dass ich Ihnen zeige, dass ich die SWING Technologie kenne, OOP Denken kann, Refactoring des Codes machen kann und zusätzliche extra Bibliotheken im Projekt verwenden kann.
Die Präsentation zum Projekt ist auf 3 Videos aufgeteilt:
1. Erste Video Präsentation -> eine Übersicht des Programmes (UI und Quellcode)
2. Zweite Video Präsentation -> ein Refactoring des Quellcodes in Intellij IDEA
3. Dritte Video Präsentation -> Fixen eines Buges
Der Link auf GitHub
Auf dem ersten Video zum Projekt wird eine Übersicht des Programmes gemacht. Zunächst wird angezeigt, wie das Programm aussieht bzw. funktioniert (in Netbeans). Dann wird den Quellcode in IntelliJ IDEA präsentiert.
Auf dem zweiten Video zum Projekt wird ein Refactoring des Quellcodes in Intellij IDEA angezeigt. Ziele, die ich mir bei dem Refactoring gesetzt hatte:
1. Jeder Klasse muss sich mit seine Arbeit beschäftigen.
2. Auf Grund des 1. Punkt wurden entsprechende Interfaces und dazu gehörende Hilfsklassen erstellt, dass das Programm bzw. der Quellcode gut erweiterbar ist und OOP (Style) entspricht.
Auf dem dritten Video wird es gezeigt, wie ein Bug im Projekt gefixed wurde.
Es geht hier um einen ganz einfachen Kalkulator, den von mir implementiert wurde. Der Kalkulator ist kein super funktioneller Kalkulator. Ziel ist: um die Beherrschung von SWING Technologie zu zeigen.
Der Link auf GitHub
Auf dem Video habe ich vergessen zu sagen, welche Listeners ich im Programm benutzt habe. Das waren: ActionListener, FocusListener und MouseAdapter. Noch ein paar Besonderheiten: 1. ich habe Reflection verwendet, um Skins zu laden. 2. Es wurde Polymorphie verwendet, um richtige Calc Operation auszusuchen.
Das Projekt wurde von mir bei der Firma saascom GmbH realisiert. Es ging um die Implementierung und Integration einer third-party OCR Komponente auf Java Basis. Dabei wurde eine SOAP Webserviceschnittstelle zur Integration bei internen Softwareanwendungen erstellt.
Hauptaufgaben beim Projekt:
1. Kommunikation und Diskussion mit dem Projektleiter bezüglich der Projektstruktur und -anforderungen
2. Selbstständige und tiefgreifende Marktanalyse geeigneter third-party Softwaretools für das Projekt
3. Selbständige und umfangreiche Einarbeitung in die technische Dokumentation (API) des ausgewählten third-party Softwaretools
4. Projektierung und Entwicklung des SOAP Projektes (Server und Client) für Windows und Linux OS
5. Testing der Funktionalität und Schnittstellen des Projektes mit JUnit Tests, Logs (log4j) und SoapUI
6. Erstellung der technischen und fachlichen Dokumentation für das Projekt
Open Source Dependencies (Komponenten) beim Projekt:
slf4j-log4j12, commons-io, org.apache.commons (commons-lang3, commons-pool2), org.apache.pdfbox, junit, org.assertj (assertj-core) und com.sun.xml.ws (jaxws-rt)
Hier wird die Struktur (Entwurf) der relationalen Datenbanken präsentiert, die von mir modelliert wurden.
MySQL Workbench wurde als Datenbank-Modellierungswerkzeug verwendet.
Virtuale Schule (E-Lernen)
Online Shop
Umfeld: Es geht um E-lernen. Das Projekt heißt "„Virtuale Schule“". Jeder wird für sich passende Kurse von bestimmtem Niveau im Bereich von Web-Programmierung finden. Falls man mit allen Kursen fertig ist, hat man eine Möglichkeit, ein großes Web Projekt mit anderen Studenten unter Verwaltung eines Mentors aufzubauen.
Pflichtenheft: Es muss die rationale Datenbank „Virtuale Schule“ mit folgenden Parameter bzw. Tabellen erzeugt werden:
1. Tabelle „student“. Dazu gehören das Verzeichnis allen Studenten und ihre Eigenschaften(sowohl eigene Daten als auch Anmeldedaten)
2. Tabelle „kontakt_typ“. Hier in der Tabelle werden Kontakttypen von Studenten angegeben. Dadurch dass jeder Student mehrere Kontanktypen hat (z.B. Mobil, Home, E-Mail, skype u.s.w) wird die Tabelle „kontakt_typ“ mit der Tabelle „student“ durch eine Zwischentabelle „student_kontakt“ verknüpft.
3. Tabelle “user_typ”. Jeder Student hat mehrere Types (ein Student kann noch Admin oder Mentor für andere Studenten sein). Dadurch dass Studentem viele Types haben, wird die Tabelle „user_typ“ mit der Tabelle „student“ durch eine Zwischentabelle „student_user_typ“ verknüpft.
4. Tabelle „kurs“. Die Tabelle „kurs“ enthält eine Liste von Kursen, die Studenten besuchen können (z.B. Mathe, Physik, Informatik – sql, html, css, javascript, angularjs, reactjs, java se, java ee, spring, liferay u.s.w.)
5. Tabelle „niveau“. Die Tabelle „niveau“ hat eine Liste von Niveaus der Kurse ( Ein Kurs kann entweder geringes, mittleres oder hoches Niveau haben)
6. Tabelle „aufgabe_liste“. In der Tabelle gibt es Listen von Aufgaben für Studenten (siehe auch die Tabelle „aufgabe“)
7. Tabelle „kurs_niveau“. Die Tabelle ist eine Zwischentabelle für die Tabellen: „niveau“ und „kurs“. Mehrere Kurse haben mehrere Niveaus.
8. Tabelle „kurs_niveau_aufgabeliste“. Die Tabelle ist eine Zwischentabelle für die Tabellen: „kurs_niveau“ und „aufgabe_liste“. Jedem Kurs vom bestimmten Niveau ist eine bestimmte Liste von entsprechenden Aufgaben zugeordnet.
9. Tabelle „student_knaufl“. Eine Zwischentabelle von der Tabelle „student“ und „kurs_niveau_aufgabeliste“. Die Tabelle muss erzeugt werden weil mehrere Studenten gleichzeitig mehrere Kurse besuchen können.
10. Tabelle „projekt“. Die Tabelle erhält eine Liste von Themen der möglichen Projekte für Studenten. Jedes Projekt wird außerdem von einem Mentor unterstützt.
11. Tabelle „projekt_role“. Jeder Student, der an einem Projekt teilnimmt, hat eine Möglichkeit, für sich selbst eine Rolle auszuwählen bzw. bestimmte Tätigkeit machen (z.B. Datenbank Projektierung, Frontend-Entwicklung, Backend-Entwicklung u.s.w.)
12. Tabelle „student_projekt“. Die Tabelle ist eine Zwischentabelle und erhält ein Verzeichnis von Studenten die zu bestimmten Projekten zugeordnet sind. Dadurch werden die Gruppen von Studenten gemacht die Projekte machen. Ein Student kann gleichzeitig an mehreren Projekten beteiligt sein. Die Tabelle „student_projekt“ bzw die Gruppen von Studenten müssen von Mentors erzeugt werden. Bedingung: Mentors machen Gruppen von besten Studenten für Ihre interessanten Projekte.
13. Tabelle „nachricht“. Mit der Hilfe von der Tabelle kann ein Student mit anderen Studenten kommunizieren.
CREATE DATABASE IF NOT EXISTS virtuale_schule;
/*virtuale_schule.student*/
create table virtuale_schule.student (
id int not null auto_increment,
name varchar(255) not null,
vorname varchar(255) not null,
geburtstag date not null,
geschlecht boolean not null,
login varchar(255) not null,
passwort varchar(255) not null,
primary key (id),
UNIQUE KEY(login)
);
/*virtuale_schule.projekt_role*/
create table virtuale_schule.projekt_role (
id int not null auto_increment,
projekt_role varchar(255) not null,
beschreibung varchar(255) not null,
primary key (id)
);
/*virtuale_schule.projekt*/
create table virtuale_schule.projekt (
id int not null auto_increment,
projekt_name varchar(255) not null,
beschreibung varchar(255) not null,
projekt_mentor_id int not null,
primary key (id),
FOREIGN KEY (projekt_mentor_id) REFERENCES student(id)
);
/*virtuale_schule.student_projekt*/
create table virtuale_schule.student_projekt(
student_id int not null,
projekt_id int not null,
student_projekt_role_id int not null,
primary key (student_id, projekt_id),
FOREIGN KEY (student_id) REFERENCES student(id),
FOREIGN KEY (projekt_id) REFERENCES projekt(id),
FOREIGN KEY (student_projekt_role_id) REFERENCES projekt_role(id)
);
/*virtuale_schule.user_typ*/
create table virtuale_schule.user_typ (
id int not null auto_increment,
user_typ varchar(255) not null,
beschreibung varchar(255) not null,
primary key (id)
);
/*virtuale_schule.student_user_typ*/
create table virtuale_schule.student_user_typ(
student_id int not null,
user_typ int not null,
primary key (student_id, user_typ),
FOREIGN KEY (student_id) REFERENCES student(id),
FOREIGN KEY (user_typ) REFERENCES user_typ(id)
);
/*virtuale_schule.kontakt_typ*/
create table virtuale_schule.kontakt_typ (
id int not null auto_increment,
kontakt_typ varchar(255) not null,
primary key (id)
);
/*virtuale_schule.student_kontakt*/
create table virtuale_schule.student_kontakt (
student_id int not null,
kontakt_id int not null,
kontakt varchar(255) not null,
primary key (student_id, kontakt_id),
FOREIGN KEY (student_id) REFERENCES student(id),
FOREIGN KEY (kontakt_id) REFERENCES kontakt_typ(id)
);
/*virtuale_schule.kurs*/
create table virtuale_schule.kurs (
id int not null auto_increment,
kurs varchar(255) not null,
beschreibung varchar(255) not null,
primary key (id)
);
/*virtuale_schule.niveau*/
create table virtuale_schule.niveau (
id int not null auto_increment,
niveau varchar(255) not null,
beschreibung varchar(255) not null,
primary key (id)
);
/*virtuale_schule.kurs_niveau*/
create table virtuale_schule.kurs_niveau (
id int not null auto_increment,
kurs_id int not null,
niveau_id int not null,
beschreibung int not null,
UNIQUE KEY(id),
primary key (kurs_id, niveau_id),
FOREIGN KEY (kurs_id) REFERENCES kurs(id),
FOREIGN KEY (niveau_id) REFERENCES niveau(id)
);
/*virtuale_schule.aufgabe_liste_status*/
create table virtuale_schule.aufgabe_liste_status (
id int not null auto_increment,
aufgabe_liste_status int not null,
beschreibung int not null,
primary key (id)
);
/*virtuale_schule.aufgabe_liste*/
create table virtuale_schule.aufgabe_liste (
id int not null auto_increment,
beschreibung varchar(255) not null,
primary key (id)
);
/*virtuale_schule.aufgabe*/
create table virtuale_schule.aufgabe (
id int not null auto_increment,
beschreibung_frage varchar(255) not null,
beschreibung_antwort varchar(255) not null,
aufgabe_liste_id int not null,
FOREIGN KEY (aufgabe_liste_id) REFERENCES aufgabe_liste(id),
primary key (id)
);
/*virtuale_schule.kurs_niveau_aufgabeliste*/
create table virtuale_schule.kurs_niveau_aufgabeliste(
id int not null auto_increment,
kurs_niveau_id int not null,
aufgabe_liste_id int not null,
primary key (kurs_niveau_id, aufgabe_liste_id),
UNIQUE KEY(id),
FOREIGN KEY (kurs_niveau_id) REFERENCES kurs_niveau(id),
FOREIGN KEY (aufgabe_liste_id) REFERENCES aufgabe_liste(id)
);
/*virtuale_schule.student_knaufl*/
create table virtuale_schule.student_knaufl(
student_id int not null,
knaufl_id int not null,
aufgabe_liste_status int not null,
primary key (student_id, knaufl_id),
FOREIGN KEY (student_id) REFERENCES student(id),
FOREIGN KEY (knaufl_id) REFERENCES kurs_niveau_aufgabeliste(id),
FOREIGN KEY (aufgabe_liste_status) REFERENCES aufgabe_liste_status(id)
);
/*virtuale_schule.nachricht*/
create table virtuale_schule.nachricht(
id int not null auto_increment,
from_id int not null,
to_id int not null,
nachricht varchar(255) not null,
date_from date not null,
primary key (from_id, to_id),
UNIQUE KEY(id),
FOREIGN KEY (from_id) REFERENCES student(id),
FOREIGN KEY (to_id) REFERENCES student(id)
);
Umfeld: Das Projekt heißt „Online Shop“. Kunden bestellen Waren. Waren können zum Anzeigen/Bestellen sortiert werden: nach Kategorien, nach Abc, nach Preis, nach besten Bewertungen von Kunden und nach Erscheinungsdatum. Waren können von verschiedenen Hersteller produziert werden und können verschiedene Lager haben. Außerdem können alle Waren von Kunden bewertet werden. Autorisierte Kunden können Waren bestellen. Eine Lieferung an Kunden besteht aus vielen Bestellungen. Die muss richtig durch einen Logistiker organisiert werden.
Pflichtenheft: Es muss die rationale Datenbank „Online Shop“ mit folgenden Parameter bzw. Tabellen erzeugt werden:
1. Tabelle „kunde“. Ein Kunde wird anhand Anmeldedaten (Login) identifiziert. Außerdem hat ein Kunde seine eigene private Daten (z.B. Vorname, Adresse usw.). Ein Kunde kann entweder Waren anschauen oder Waren bestellen, oder beides falls der Kunde im Online Shop autorisiert ist.
2. Tabelle „ware“. Die Tabelle erhält ein Verzeichnis von Waren, die im Online Shop verkauft werden kann. Waren haben verschiedene Kriterien, wonach die sortiert werden sollen um die für Kunden präsentieren zu können. Waren haben Ihre Läger (Tabelle „lager“), Ihre Hersteller (Tabelle „hersteller“) und Ihre Kategorien (Tabelle „ware_kategorie“).
3. Tabelle „ware_bewertung“. Die Tabelle ist eine Zwischentabelle für die Tabellen „ware“ und „kunde“. Anhand der Tabelle kann jede Ware von jedem Kunden bewertet werden.
4. Tabelle „bestellung“. Die Tabelle stellt sich als „Einkaufswagen“ von Waren dar. Jede Bestellung wird zu einer Lieferung zugeordnet (es kann nach PLZ machen) um dann später an Kunden schicken zu können.
5. Tabelle „ware_bestellung“. Eine Zwischentabelle zwischen Tabellen „ware“ und „bestellung“. Jeder Kunde kann vielen Bestellungen von vielen Waren (und Ihre Anzahl) machen.
6. Tabelle „payment_mittel“. Ein Kunde kann für seine Bestellung anhand verschiedenen Typen von Payment bezahlen (EC-Karte, PayPal, Web Money usw.)
7. Tabelle „lieferung“. Die Tabelle ist dafür da, um eine Lieferung an Kunden zu organisieren. Jeder Lieferung ist einen Logistiker (Tabelle „logistiker“) zugeordnet, der für eine konkrete Lieferung verantwortlich ist. Dabei hat jede Lieferung einen Status („kurz vom Abschicken“, „an Kunden abgeschickt“, „Zugestellt“ usw.)
8. Tabellen „fahrer“ und „lieferungs_auto“ . Jeder Lieferung (Tabelle „lieferung“) ist einen Fahrer und ein Auto anhand der Tabelle „lieferungs_auto_fahrer“ zugeordnet.
CREATE DATABASE IF NOT EXISTS shop;
/*shop.kunde*/
create table shop.kunde (
id int not null auto_increment,
name varchar(255) not null,
vorname varchar(255) not null,
geburtstag date not null,
geschlecht boolean not null,
adresse varchar(255) not null,
postleitzahl varchar(255) not null,
land varchar(255) not null,
login varchar(255) not null,
passwort varchar(255) not null,
primary key (id),
UNIQUE KEY(login)
);
/*shop.hersteller*/
create table shop.hersteller (
id int not null auto_increment,
name varchar(255) not null,
adresse varchar(255) not null,
anmerkung varchar(255) null,
primary key (id)
);
/*shop.ware_kategorie*/
create table shop.ware_kategorie (
id int not null auto_increment,
beschreibung varchar(255) null,
anmerkung varchar(255) null,
primary key (id)
);
/*shop.lager*/
create table shop.lager (
id int not null auto_increment,
beschreibung varchar(255) not null,
adresse varchar(255) not null,
primary key (id)
);
/*shop.ware*/
create table shop.ware (
id int not null auto_increment,
artikel int not null,
beschreibung date not null,
preis double not null,
anzahl_vorhanden int not null,
image_ware varchar(255) null,
kategorie_id int not null,
erscheinungsdatum date not null,
lager_id int not null,
hersteller_id int not null,
FOREIGN KEY (kategorie_id) REFERENCES ware_kategorie(id),
FOREIGN KEY (lager_id) REFERENCES lager(id),
FOREIGN KEY (hersteller_id) REFERENCES hersteller(id),
primary key (id),
UNIQUE KEY(artikel)
);
/*shop.ware_bewertung*/
create table shop.ware_bewertung (
id int not null auto_increment,
kunde_id int not null,
ware_id int not null,
kommentare varchar(255) not null,
primary key (kunde_id, ware_id),
FOREIGN KEY (kunde_id) REFERENCES kunde(id),
FOREIGN KEY (ware_id) REFERENCES ware(id),
UNIQUE KEY(id)
);
/*shop.payment_mittel*/
create table shop.payment_mittel (
id int not null auto_increment,
payment_mittel varchar(255) not null,
primary key (id)
);
/*shop.logistiker*/
create table shop.logistiker (
id int not null auto_increment,
name varchar(255) not null,
vorname varchar(255) not null,
geburtstag date not null,
geschlecht boolean not null,
login varchar(255) not null,
passwort varchar(255) not null,
primary key (id),
UNIQUE KEY(login)
);
/*shop.status_lieferung*/
create table shop.status_lieferung (
id int not null auto_increment,
beschreibung varchar(255) not null,
primary key (id)
);
/*shop.lieferungs_auto*/
create table shop.lieferungs_auto (
id int not null auto_increment,
auto_nummer int not null,
primary key (id),
UNIQUE KEY(auto_nummer)
);
/*shop.fahrer*/
create table shop.fahrer (
id int not null auto_increment,
name varchar(255) not null,
vorname varchar(255) not null,
geburtstag date not null,
geschlecht boolean not null,
login varchar(255) not null,
passwort varchar(255) not null,
führerschein_bis date not null,
primary key (id)
);
/*shop.lieferungs_auto_fahrer*/
create table shop.lieferungs_auto_fahrer (
id int not null auto_increment,
auto_id int not null,
fahrer_id int not null,
UNIQUE KEY(id),
FOREIGN KEY (auto_id) REFERENCES lieferungs_auto(id),
FOREIGN KEY (fahrer_id) REFERENCES fahrer(id)
);
/*shop.lieferung*/
create table shop.lieferung (
id int not null auto_increment,
preis double not null,
status_lieferung_id int not null,
lieferungs_date date not null,
logistiker_id int not null,
lieferungs_auto_fahrer_id int not null,
plz_gebiet varchar(255) not null,
anmerkung varchar(255) not null,
primary key (id),
FOREIGN KEY (logistiker_id) REFERENCES logistiker(id),
FOREIGN KEY (status_lieferung_id) REFERENCES status_lieferung(id),
FOREIGN KEY (lieferungs_auto_fahrer_id) REFERENCES lieferungs_auto_fahrer(id)
);
/*shop.bestellung*/
create table shop.bestellung (
id int not null auto_increment,
kunde_id int not null,
gesamte_preis_bestellten_waren double not null,
payment_mittel_id int not null,
lieferung_id int not null,
lieferungs_adresse varchar(255) not null,
anmerkung varchar(255) not null,
primary key (id),
FOREIGN KEY (kunde_id) REFERENCES kunde(id),
FOREIGN KEY (payment_mittel_id) REFERENCES payment_mittel(id),
FOREIGN KEY (lieferung_id) REFERENCES lieferung(id)
);
/*shop.ware_bestellung*/
create table shop.ware_bestellung (
id int not null auto_increment,
bestellung_id int not null,
ware_id int not null,
ware_anzahl int not null,
bestellungs_date date not null,
lieferungs_adresse varchar(255) not null,
primary key (bestellung_id,ware_id),
FOREIGN KEY (bestellung_id) REFERENCES bestellung(id),
FOREIGN KEY (ware_id) REFERENCES ware(id),
UNIQUE KEY(id)
);
In der Kategorie werden Projekte präsentiert, die anhand von Bootstrap, JS und bekannten JS Bibliotheken/JS Frameworks gemacht wurden.
Bei manchen Projekten wurden Google Maps API, OpenWeatherMap API oder Lufthansa API benutzt. Verwendung der API's waren aufgrund der RESTful Webservices organisiert.
Flugplan Lufthansa
Wettervorhersage
Ein Tagesplan für Ihr Zeitmanagement
Ihre Geolocation, Temperatur und Lokalzeit
Fahrplan DB (Fernverkehr)
Diese Webanwendung stellt Fahrplandaten, im ersten Schritt den SOLL-Fahrplan des Fernverkehrs (Direktverbindungen), zur Verfügung.
Es wurde dafür die Deutsche Bahn API benutzt.
Bitte suchen Sie 2 Haltestellen (Bahnhöfe) und Abfahrtzeit aus und drücken Sie den "Suchen" Knopf auf.
Diese Webanwendung stellt Flugplandaten, im ersten Schritt den SOLL-Flugpplan (Direktverbindungen), zur Verfügung.
Die Lufthansa API wurde dafür verwendet.
Bitte suchen Sie 2 Flughäfen und Abflugszeit aus und drücken Sie den "Flug Suchen" Knopf auf.
Lokale Zeit vom Abflug | Terminal vom Abflug | Lokale Zeit von der Landung | Terminal von der Landung | Flug Number |
Vermutliche Gründe warum Sie leider keine Suchergebnisse angezeigt bekommen haben:
1. Sie haben 2 gleiche Flughäfen ins Suchfeld angegeben.