Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SeasyHQ test assignment - Ondrej Husar #1

Open
wants to merge 25 commits into
base: main
Choose a base branch
from

Conversation

OHUSAR
Copy link

@OHUSAR OHUSAR commented Mar 28, 2021

Task bol zabavny, vyskusal som si niektore nove veci. Snazil som sa ho robit poriadne v ramci moznosti a rozsahu. O niektorych veciach, ktore nie su dotiahnute viem (niektore spomeniem).

Setup prebehol bez problemov. Jedina "zaludna" vec (resp. taka, co ste nezamyslali) bola, ze v packages/be/src/root.ts chybal v typeDefs amenity.schema.

Po setupe som sa musel vo viacerych veciach zorientovat. Vsetko bolo samozrejme pekne nasetupovane, cize to nebolo nic extra zlozite. Kazdopadne, prvy krat som pouzival niektore kniznice (a patterny), cize som si trochu pozeral knex, apollo-server a relay dokumentacie. Najpr. som si rozchodil niektore queries a testoval v Playgrounde, potom viac FE veci. Commitoval som viac-menej priebezne, cize aj v commitoch je vidno workflow a cca straveny cas.

Pouzil som niektore komponenty z MUI (hlavne form components), ale core stylovania som spravil v sass + css-modules. Stranka by mala byt responzivna, aj ked som developoval desktop-first. Jediny vyrazny design bug o ktorom viem je ten, ze v poslednom riadku s 2mi kartickami (je tam space-between).

Pri vytvarani novej mariny je vo formulare mapa. Na mape je marker a pri jeho posuvani sa nastavuje pomocou geocodingu mesto a stat. Zaroven sa pouziva poloha markera ako zem. vyska a sirka. Posuvanie markera nie je uplne uzasne UX + to tam nie je nikde vysvetlene. Zaroven, na backende je spravena validacia dat, ale na frontende nie je. Pri nespravnych parametroch to len vyhodi chybu.

Paginacia pri marinach je spravena na FE velmi primitivne minimalisticky - iba sa zvacsuje first a refetchuju sa vsetky mariny. Na backende je spravena Connection, ale implementuje iba forward paginaciu. Aj ked som na backende spravil "query all marinas in a city" a "query all marinas in a country", nepridal som to ako dalsi endpoint/filter na FE, snad to tak staci.

Nerobil som SSR a ani autentifikaciu. Stravil som na tom velku cast soboty a nedelu podvecer a vyzadovalo by to viac casu. Aj ked som uz tieto koncepty implementoval, pochopitelne tu je setup trochu iny :)

Ondrej


Feature Summary

use cases for frontend

  • aligned to screenshots design (desktop) as closely as possible (see design)
  • list of all marina with cards
  • marina detail page

nice to have:

  • responsive (mobile version)
  • map (mapboxgl preferred)

simple ssr reactdom with rendertostream with koa (or next.js if you want to set it up)

use cases for backend

  • query marinas, cities, countries, amenities, photos and their relevant properties
  • query all marinas in a city
  • query all marinas in a country
  • add marina mutation with validation (e.g. yup)

nice to have:

account schema (requires mutation for account table)
authentication + authorization for add marina mutation

  • pagination

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant