Cykelfærgen Flensborg Fjord
Web design / development & SoMe marketing
Tech: HTML, CSS, JS, PHP, MySQL
Die Fahrradfähre Flensburger Förde hat einen neuen Webmaster gesucht der ihre Webseite überarbeiten und regelmässig aufdem laufenden halten konnte.

Beskrivelse
I slutning af 2019 overtog jeg opgaven som webmaster hos cykelfærgen Flensborg fjord. Jeg besluttede mig at for udvikle den nye hjemmeside i PHP, det giver mig muligheden af at have filerne for de forskellige sprog dansk, tysk og engelsk.
Designet skulle være moderne, responsive samt skabe mere
Borgere på hhv Broagerland og på tysk side har de seneste 30 år skiftevis forsøgt at genoplive drømmen om færgesejlads på Flensborg Fjord, uden dog at kunne trænge helt igennem med deres projekt.
Hvorfor valgte jeg PHP
Det gjorte jeg på baggrund af at jeg gerne ville have en dynamisk hjemmeside. Som kunne render indhold baserende på sprog valg og hvor jeg kunne inkludere andre filer som der kan have specific indhold. Jeg ville også gerne have at hjemmesiden skulle kunne hente data fra en database, som jeg kunne opdatere og vedligeholde, sammentidligt skulle det indhold, som f.eks. deres sejlplan, Server-Side renderes for SEO optimereing.
Sejlplan Funktion
Det senest optimering som jeg fik udviklet på hjemmesiden, er et nyt design for sejlplanen. Jeg fik om struktueret databasen nyt for at kunne håndteren forskellige sejlplaner, både og havne.
Jeg fik også udviklet en ny funktion som gør det muligt at hente sejlplanen for en specifik rute, og vise den på hjemmesiden. Ved hentning af sejlplanen, laver jeg flere INNER JOINs på databasen, for at kunne hente alle de nødvendige informationer, så som færgen på ruten, ruten, gyldigheden af sejlplanen samt alle havne med ens tilsvarende afgang.
<?php
function Timetable($route){
$title = "Sejlplan";
$currentDate = date("Y-m-d");
/* Getting the route & the stops */
$sql = "SELECT
fs.route_id,
fn.ferry_name,
ferry_route.days,
fs.departure_harbor,
fs.arrival_harbor,
ferry_route.id AS ferryRouteId,
ferry_route.active_from AS active_from,
ferry_route.active_to AS active_to,
ferry_route.name AS routeName,
departure_harbor.name AS departure_harborName,
arrival_harbor.name AS arrival_harborName,
fs.id AS fs_id,
GROUP_CONCAT(fs.departure_time ORDER BY fs.departure_time SEPARATOR ', ') AS departure_times,
GROUP_CONCAT(fs.arrival_time ORDER BY fs.arrival_time SEPARATOR ', ') AS arrival_times,
GROUP_CONCAT(route_active_date.active_from ORDER BY route_active_date.active_from SEPARATOR ', ') AS active_date_from,
GROUP_CONCAT(route_active_date.active_to ORDER BY route_active_date.active_to SEPARATOR ', ') AS active_date_to,
price.price_dkk AS price_dkk,
price.price_euro AS price_euro
FROM
timetable fs
INNER JOIN
routes ferry_route ON fs.route_id = ferry_route.id
INNER JOIN
ferries fn ON ferry_route.ferry = fn.id
INNER JOIN
harbor departure_harbor ON (fs.departure_harbor = departure_harbor.id)
INNER JOIN
harbor arrival_harbor ON (fs.arrival_harbor = arrival_harbor.id)
INNER JOIN
route_active_date ON ferry_route.id = route_active_date.route_id
INNER JOIN
ticket_prices price ON ferry_route.id = price.route_id
WHERE
ferry_route.display_to >= '$currentDate'
AND
ferry_route.display_from <= '$currentDate'
AND
ferry_route.name = '$route'
OR
ferry_route.id = '$route'
AND
ferry_route.display_to >= '$currentDate'
AND
ferry_route.display_from <= '$currentDate'
GROUP BY
fs.departure_harbor,
fs.arrival_harbor
ORDER BY
departure_times,
departure_harborName
DESC";
...
echo '
<section>
<h2 class="timetable-heading">'.$title.'</h2>
</section>
';
}
?>
ER-Diagram til Sejlplanen
Forbedring til SQL selction
For at forbedre koden og SQL selction af en rute kunne jeg lave et view i databasen og lave en SELECT på dette view.
Database Struktur
Strukturen på databasen er sådan at jeg har en tabel for havne, en tabel for sejlplanen og en tabel for ruter. Med denne struktur kan jeg nemt og hurtigt tilføje nye sejlplaner og havne. Sejlplanen tabellen indeholder alle afgange og ankomster for alle ruter, ruten kollonden har en foreign key som peger på havne tabellen´s.
Reklame video
Jeg fik produceret en lille reklamevideo for cykelfærgen. Med denne klip er intentionen at bygge og skabe mere opmærksomhed.