Skip to main content
← Takaisin blogiin

Konepellin alla: MIK:n uusi jäsen- ja toiminnanohjausjärjestelmä

Malmin Ilmailukerho
mik-ngtekniikkaprojekti
Konepellin alla: MIK:n uusi jäsen- ja toiminnanohjausjärjestelmä

mik.fi:n rinnalla kerhossa on kasvanut jo puolentoista vuoden ajan toinen, huomattavasti suurempi ohjelmistoprojekti: mik-ng. Se ei ole julkinen verkkosivu, vaan kerhon oma järjestelmä jäsenten, varausten, laskutuksen, lentopäiväkirjan ja kaluston hallintaan — kaikki samassa paikassa, kerhon itsensä rakentamana ja ylläpitämänä.

Kuvakaappaus mik-ng:n konesivulta, jossa näkyvät OH-STL ja OH-IHQ tietoineen: sijainti, polttoainetyyppi, tuntihinta ja huoltoon jäljellä oleva aika
mik-ng:n konesivu — kaikki oleellinen tieto koneesta yhdellä silmäyksellä

Kymmenen vuoden historia oman järjestelmän takana

mik-ng ei ole kerhon ensimmäinen oma järjestelmä — se on jatkoa jo vuodesta 2010 asti käytössä olleelle extranetille. Sen taustalla oli alun perin laskutuksen helpottaminen: sitä ennen koneiden paperiset matkapäiväkirjat piti skannata ja lähettää tilitoimistolle laskutusta varten. Ensimmäinen extranet rakennettiin WordPressin päälle PHP:llä, ja lentopäiväkirjan lisäksi siihen kuului varauskalenteri sekä konestatussivu — joka alkuun oli yksinkertaisesti verkkokameran kuva kerhotalon fyysisestä statustaulusta. Myöhemmin mukaan tuli muitakin ominaisuuksia, kuten lentopaketit.

Samaa alkuperäistä sivustoa päivitettiin vuosien varrella lähinnä uudempien PHP-versioiden verran. Isompi harppaus otettiin vuonna 2020, kun kerho siirtyi sähköiseen kirjanpitoon: laskutus vaihtui puoliksi manuaalisesta Helposti Lasku -palvelusta Simplbooksiin. Samalla projekti siirrettiin Gitiin, käyttöönotto automatisoitiin Ansible-skripteillä ja järjestelmälle rakennettiin oma testiympäristö — sitä ennen PHP:tä oli totuttu kirjoittamaan suoraan tuotantoon.

Miksi kerho rakentaa omaa järjestelmää?

Lentokerhon arki koostuu monesta osasta, jotka helposti hajaantuvat eri palveluihin: jäsenrekisteri, konevaraukset, lentopäiväkirja, laskutus, huoltoseuranta, kokouspöytäkirjat. mik-ng:n idea on tuoda nämä yhteen järjestelmään, jota kerho itse omistaa ja kehittää — ei valmiiseen, jäykkään SaaS-tuotteeseen sidottuna, vaan omilla ehdoilla, kerholaisten itsensä koodaamana.

Projektiryhmä kartoitti myös valmiita markkinoilla olevia vaihtoehtoja, mutta koska kerholla oli ollut oma järjestelmä jo vuosikymmenen ajan, sille oli ehtinyt kertyä paljon omia toimintatapoja, jotka eivät istuneet suoraan valmiisiin tuotteisiin. Ratkaisuun vaikutti myös käytettävissä olevien vapaaehtoisten määrä: arvioitiin, että uuden perusjärjestelmän rakentaminen omin voimin olisi mahdollista niillä resursseilla, joita kerholla oli tarjota. Tekoälyavusteinen koodaus ei tuolloin, alkuvuodesta 2025, vielä ollut lähelläkään sitä tasoa, jolla se on tänään — sen rooli projektissa kasvoi vasta myöhemmin, kuten tuonnempana käy ilmi.

Taustalla on myös selkeä tavoite: vähentää vapaaehtoisten manuaalista työtä automatisoimalla mahdollisimman paljon, ja tarjota kerhon päätöksentekijöille aiempaa parempaa ja selkeämpää dataa toiminnan tueksi.

Projektin alku ja kasvu

Kerhon hallitus antoi Niko Ikoselle tehtäväksi uudistaa kerhon extranetin, sillä vanha järjestelmä oli alkanut oireilla — suurelta osin sen palveluntarjoajaan liittyvien ongelmien vuoksi. Niko on toiminut projektissa product ownerina alusta lähtien. Hän kutsui vapaaehtoisia mukaan, ja projektin ensimmäiseen palaveriin 28.2.2025 kokoontuivat hänen lisäkseen Mikko Nurmi, Juho Kolehmainen ja Chris Whellams. Mikko perusti projektille monorepo-rakenteen, ja pian perässä Chris rakensi kehitysympäristön perustaa (Postgres, Docker, käynnistysskriptit). Niko alkoi kesäkuussa 2025 myös itse koodata projektissa product owner -roolinsa ohella, ja huhtikuussa 2026 mukaan tuli vielä Joseph Russell, joka on sittemmin ollut keskeisessä roolissa muun muassa push-ilmoitusten ja testikattavuuden rakentamisessa.

Puolentoista vuoden aikana projektiin on kertynyt yli 1180 committia, lähes 400 GitHub-issueta ja yli 700 pull requestia — jälki siitä, että kyseessä on aktiivinen, jatkuvasti käytössä ja edelleen kehittyvä järjestelmä, ei kertaprojekti.

Mitä mik-ng osaa tänään

Kaavio kahdeksasta mik-ng:n osa-alueesta React/Express/PostgreSQL-ytimen ympärillä: jäsenet, varaukset, laskutus, kalusto, polttoaine, kokoukset, tilastot, muistutukset
Yksi järjestelmä, kahdeksan toisiinsa kytkeytyvää osa-aluetta
  • Jäsenhallinta ja kirjautuminen ilman salasanoja — kirjautuminen tapahtuu sähköpostiin lähetettävällä kertakäyttölinkillä
  • Varaukset ja lentopäiväkirja kalustolle
  • Laskutus, joka on integroitu kirjanpito-ohjelmisto Simplbooksiin
  • Kalusto- ja huoltoseuranta, mukaan lukien massa- ja tasapainolaskenta ja koneiden huoltotietojen hallinta
  • Polttoaineen hinnat ja kehitteillä oleva laajempi nestehallintajärjestelmä
  • Kokoukset ja poikkeamailmoitukset
  • Kokeet ja kulukorvaukset — teoriakokeiden tekeminen ja kululaskujen jättäminen samassa järjestelmässä
  • Tilastot ja dashboardit kerhon toiminnan seurantaan, sekä pieni kerhokauppa
  • Push-muistutukset tulevista varauksista selaimen kautta — jäsen voi ottaa ilmoitukset käyttöön omalla laitteellaan, ja järjestelmä muistuttaa automaattisesti tulevasta lennosta sähköpostin lisäksi

Tekninen pohja on TypeScript-painotteinen pnpm-monorepo: React ja Vite frontendissä, Node.js ja Express backendissä, PostgreSQL tietokantana ja Flyway sen skeemamuutosten hallintaan. Kehitysympäristö pyörii Dockerissa.

Miten muutokset päätyvät tuotantoon

Julkaisuprosessi on automatisoitu. Pull requestit katselmoidaan omilla GitHub-työnkuluillaan sekä backendille että frontendille, ja kun muutos mergetään päähaaraan, versio tagitetaan automaattisesti package.json:in versionumerosta. Julkaisu etenee ympäristöjen DEV → TEST → PROD läpi DigitalOceanin alustalla, ja tuotantoon vieminen vaatii aina erillisen, manuaalisesti käynnistettävän hyväksynnän — ei mitään pääsee tuotantoon vahingossa yhdellä mergellä. Tietokannasta otetaan lisäksi automaattiset varmuuskopiot omalla, erikseen ajastetulla työnkulullaan.

Aikajana ja tekoälyn vaiheittainen käyttöönotto

Aikajana helmikuusta 2025 elokuuhun 2026: projektin perustaminen, Copilot-ohjeistus, koodausagentin käyttöönotto ja Claude Coden liittyminen
mik-ng:n virstanpylväät reilun puolentoista vuoden ajalta
  • Helmikuu 2025 — Hallitus antaa Nikolle tehtäväksi uudistaa extranetin, ensimmäinen projektipalaveri kokoaa tiimin ja Mikko avaa mik-ng-monorepon
  • Maaliskuu 2025 — Chris liittyy mukaan koodaamaan, kehitysympäristön perusta rakentuu
  • Kesäkuu 2025 — Laskutus ja lentopäiväkirjan synkronointi tulevat mukaan, ominaisuustahti kiihtyy
  • Elokuu 2025 — Tiimille kirjataan ensimmäiset GitHub Copilot -ohjeet: ensimmäinen askel kohti systemaattista tekoälyavusteista kehitystä
  • Maaliskuu 2026 — Copilotin autonominen koodausagentti alkaa avata omia pull requesteja, ei vain ehdottaa täydennyksiä
  • Huhtikuu 2026 — Joseph liittyy, push-muistutukset julkaistaan
  • Touko–kesäkuu 2026 — Claude Code otetaan käyttöön kehitystyössä, ja CLAUDE.md yhdistää sekä Copilotin että Claude Coden noudattamat ohjeet yhdeksi lähteeksi
  • Elokuu 2026 — Frontendin testikattavuutta viedään monivaiheisella urakalla vastaamaan backendin jo pitkään ylläpitämää tasoa

Tekoälyn rooli on kasvanut vaiheittain: ensin kirjoitetuista ohjeista tekoälyavustimille, sitten agenttiin joka tekee ehdotuksia, ja lopulta agentteihin jotka avaavat itsenäisesti pull requesteja katselmoitavaksi. Elokuuhun 2026 mennessä yli 250 committia mik-ng:ssä kantaa Claude Coden allekirjoitusta rinnakkain ihmistekijöiden kanssa — huomattavasti enemmän kuin julkisella verkkosivulla, mikä kuvastaa hyvin sitä, kuinka paljon suurempi ja aktiivisempi projekti mik-ng on.

Mitä on tulossa seuraavaksi?

Avoimien GitHub-issueiden perusteella kehitys jatkuu ainakin näillä suunnilla:

  • Laajempi nestehallintajärjestelmä, joka kattaa polttoaineen lisäksi muutkin kerholla käytettävät nesteet
  • Reaaliaikainen polttoainedata Nummelan (EFNU) kentältä suoraan järjestelmään
  • Frontendin testikattavuuden vieminen loppuun — iso, monivaiheinen urakka, josta merkittävä osa on jo julkaistu elokuussa 2026
  • Yhteisen koodin refaktorointi, jolla puretaan päällekkäisiä datankäsittelyratkaisuja eri osien väliltä

Ei valmis, jatkuvasti käytössä

mik-ng ei ole “valmis” sanan perinteisessä merkityksessä — se on työkalu, jota kerhon vapaaehtoiset kehittävät samalla kun sitä käytetään päivittäin. Avoimia GitHub-issueita on tätä kirjoittaessa reilut kolmekymmentä, pienistä käytettävyyskorjauksista isompiin kokonaisuuksiin. Jos kiinnostuit ja haluat olla mukana rakentamassa, ota yhteyttä kerhon tekniseen tiimiin!