From d5a6ceeab938dc5d699f765bd378bc77e8a9a31a Mon Sep 17 00:00:00 2001 From: Martti Soininen Date: Wed, 26 Jun 2024 09:31:42 +0300 Subject: [PATCH] Add Finnpilot to references --- public/img/affiliates/finnpilot.png | Bin 0 -> 8852 bytes src/routes/references.tsx | 11 +++++++++++ 2 files changed, 11 insertions(+) create mode 100644 public/img/affiliates/finnpilot.png diff --git a/public/img/affiliates/finnpilot.png b/public/img/affiliates/finnpilot.png new file mode 100644 index 0000000000000000000000000000000000000000..1a492b7ffb4ddc7be36276293c4f8ace851459dd GIT binary patch literal 8852 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 literal 0 HcmV?d00001 diff --git a/src/routes/references.tsx b/src/routes/references.tsx index 0aa470c..bbf11b1 100644 --- a/src/routes/references.tsx +++ b/src/routes/references.tsx @@ -38,6 +38,17 @@ const references: FeaturedCustomer[] = [ platforms: ["Web"], techs: ["Java", "Spring", "Hibernate", "Angular", "Elasticsearch"] }, + { + name: "Finnpilot", + logo: , + brief:

Finnpilot Pilotage Oy on Suomen valtion kokonaan omistama erityistehtäväyhtiö. Sillä on lakisääteinen yksinoikeus luotsaustoiminnan harjoittamiseen.

, + extended: <> +

Olemme tehneet Finnpilotin kanssa ohjelmistokehitystä jo vuodesta 2016. Kehityksen kohteena on luotsinvälityksen toiminnanohjausjärjestelmä, johon kuuluu mm. mobiili työaikakirjausten teko, iOS-laitteilla toimiva luotsien sovellus, julkisesti tarjottava liikenneluettelo sekä luotsintilausten tekeminen verkossa tarjottavan palvelun kautta.

+

Pitkän projektin aikana järjestelmä on muuttanut muotoaan Windows Server -pohjaisesta ratkaisusta aidoksi pilvipalveluksi Azuressa. Toteutusteknologia on käyttöliittymää myöten uudistettu, kehittyvän liiketoiminnan tuottamia muutoksia tuotu uusina toiminnallisuuksina käyttöön ja vanhaa koodia poistettu tai yksinkertaistettu tarpeen mukaan. Järjestelmä on ollut koko kehityksen ajan tuotantokäytössä, mikä on asettanut kovat vaatimukset tekemisen tasolle ja tavoille.

+ , + platforms: ["Web + Mobile"], + techs: ["Kotlin", "Azure", "Angular"], + }, { name: "Runteq", logo: ,