Zadanie rekrutacyjne - Julia Winiarska#53
Open
juliawiniarska wants to merge 3 commits intotelemedico:masterfrom
Open
Zadanie rekrutacyjne - Julia Winiarska#53juliawiniarska wants to merge 3 commits intotelemedico:masterfrom
juliawiniarska wants to merge 3 commits intotelemedico:masterfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implementacja backendu - API kursów walut z integracją NBP
Czas pracy: około 5 godzin
Feedback: Zadanie było napisane w jasny sposób, więc nie miałam problemów ze zrozumieniem co muszę wykonać. Najwięcej czasu zajęło mi kwestia braku kursów NBP w weekendy lub święta. ale dodałam po prostu pobieranie z wcześniejszego dnia. Dorzuciłam też cache, aby zmniejszyć liczbę zapytań do API.
Komentarze dot. mojego podejścia: Na początku stworzyłam plik NBPClient, który służy do pobierania kursów walut, następnie dodałam plik RateService, który zawiera logikę czyli obliczanie marż i historię z 14 dni. Kolejnymi dodanymi plikami są: RateCalculator liczący kursy kupna i sprzedaży według zasad kantoru i RateController, w którym dodałam dwie nowe ścieżki /api/rates i /api/history{code} do pobierania danych dla frontendu. W pliku routes.yaml dopisałam ścieżki do wyżej wymienionych endpointów.
Następne kroki: Zrobienie frontendu, czyli tabeli i wykresu
Implementacja frontendu - dashboard z tabelą i wykresem
Czas pracy: około 4 godziny
Feedback: Część frontendowa była bardzo prosta do wykonania, dzięki dobremu wykonaniu backendu. Najwięcej czasu zajęło mi dopracowanie wyglądu i responsywności, aby aplikacja była wygodna i wyglądała profesjonalnie.
Komentarze dot. mojego podejścia: Zaczynając od początku to stworzyłam komponent Dashboard, który pobierane sane z endpointów backendu. Dane pokazywane są w tabeli z nagłówkami (średni kurs, kupno, sprzedaż, data NBP), dodana jest też możliwość wyboru daty, a przyszłe dni są zablokowane. Następnie dodałam dwie funkcje: eksportowanie raportu do pliku CSV i generowanie raportu do druku. Na stronie znajduje się również opisany wykres o zakresie 14 dni. Dla spójności zmieniłam kolory wszystkich elementów.
Następne kroki: Przygotowanie testów
Testy - backend API
Czas pracy: około 1 godzina
Feedback: Testy integracyjne były łatwe do napisania, ponieważ struktura Api nie jest skomplikowana.
Komentarze dot. mojego podejścia: Napisałam testy sprawdzające dwa endpointy:
Testy uruchomiłam na Dockerze, wszystkie przeszły pomyślnie.
Podsumowanie
Całe zadanie podzieliłam na trzy etapy: backend, frontend i testy. Całość jest spójna i kompletna.