Jak powstał Destinations (cz. 1): pomysł, domena i stack

11.10.2026 · 2 min czytania

Nieco starszy projekt, nowa seria. Tym razem opowiem, jak powstał Destinations — aplikacja, która wyrosła wprost z mojej codziennej pracy.

Problem, który znam z pracy#

Jako szkoleniowiec regularnie sprawdzam, czy nowi pracownicy znają kierunki: jakie miasto kryje się pod danym kodem IATA i do jakiej strefy należy. Do tego trzeba testów. A robienie ich ręcznie, za każdym razem w innej wersji (żeby nikt nie ściągał od sąsiada), to syzyfowa, powtarzalna robota.

Pomysł#

Destinations robi dwie rzeczy:

  1. Generuje testy do druku z bazy destynacji — za każdym razem inny zestaw.
  2. Daje mi, jako szkoleniowcowi, panel do zarządzania bazą i drukowania tabel do nauki.

Czyli od razu są dwa światy: zwykły użytkownik, który tylko generuje test, oraz szkoleniowiec, który zarządza danymi. Ten drugi musi być schowany za logowaniem — ale o tym w kolejnych częściach.

Domena: czym w ogóle jest „destynacja”#

Zanim cokolwiek napisałem, musiałem nazwać rzeczy. Jedna destynacja to w moim świecie cztery informacje: kod lotniska (IATA), miasto, państwo i strefa, do której należy. W pierwszej wersji wyglądało to mniej więcej tak:

const destinations = [
  {
    abbreviation: "STN",
    expansion: "Londyn Stansted",
    country: "Wielka Brytania",
    zone: "Non-Schengen",
  },
  // kolejne destynacje
];

To uproszczony przykład — dostosuj pola do swoich danych, jeśli odtwarzasz projekt.

Stack i dlaczego akurat taki#

Świadoma decyzja: najpierw JavaScript, TypeScript później#

I tu ważna uwaga, bo wrócę do niej w części 2. Pierwszą wersję Destinations napisałem w JavaScripcie (JSX) — mimo że TypeScript już wtedy trochę znałem.

To nie było przeoczenie. To był wybór.

Innymi słowy: świadomie wziąłem na siebie trochę „długu technicznego”, żeby szybciej dowieźć wartość. A potem, już spokojnie, ten dług spłaciłem — przepisując projekt na TypeScript.

I to jest temat na część 2: jak wyglądała migracja z JS na TS, co mnie w JS uwierało i co TypeScript wyłapał, gdy już się za to zabrałem.

Więcej z tej serii

  1. 1.Jak powstał Destinations (cz. 1): pomysł, domena i stack
  2. 2.Jak powstał Destinations (cz. 2): z JavaScriptu na TypeScript
  3. 3.Jak powstał Destinations (cz. 3): Firebase — baza i logowanie
  4. 4.Jak powstał Destinations (cz. 4): chronione trasy w React Router
  5. 5.Jak powstał Destinations (cz. 5): generatory testów i CSS do druku