Skip to content

Releases: robertnitu02/accesa-raro-internship-2023

Weather Application v1.0

Choose a tag to compare

Weather Application v1.0

  • Au fost create modele pentru răspunsul de la API (WeatherModel & WeatherForecastModel).
  • Adăugate funcții de getWeather în funcție de parametru (funcții pentru vreme în funcție de: numele orașului, coordonate latitudine & longitudine și forecast)
  • Optimizat numărul de apeluri la API pentru a nu depăși cele 60 apeluri / minut impuse de planul grauit OpenWeather API.
    • La apăsarea butonului de "Arată vremea" sau la apăsarea tastei ENTER în input se verifică dacă numele orașului introdus în input să fie diferit față de ce îi este afișat la momentul respectiv.
    • Forecast-ul este primit de la API doar în momentul în care se primește rezultat de la acțiunea butonului "Arată vremea", iar apoi este afișat pe Web în funcție de numărul de zile dorit.
  • Limbă
    • Se poate schimba prin intermediul butonului din dreapta sus care indică limba curentă în care este afișată aplicația.
    • Aplicația angular are tehnologia ngx translate ce permite afișarea pe mai multe limbi (română sau engleză) cu ajutorul unui pipe.
    • Mesajele sunt traduse într-un fișier JSON făcând modificarea acestora foarte ușoară.
  • Temele aplicației
    • Tema este schimbată în funcție de starea vremii din respectivul oraș/regiune. Am folosit Id-urile primite de API și am creat un dicționar care face legătura între Id și temă (ex: id-ul de vreme 300 este asimilat cu vreema de ploaie ușoară ș.a.m.d)
    • În funcție de starea zilei (zi sau noapte) chenarul zonei de input este schimbat în funcție de orașul ales/regiunea aleasă (iconița din API are terminația 'n' sau 'd', indicând starea zilei)
    • Aceste teme au fost realizate în SCSS cu mixin.
  • Favorite
    • Adăugarea orașelor/regiunilor la favorite este făcută cu ajutorul unui dicționar.
    • În funcție de numărul de orașe/regiuni de la favorite, container-ul va avea un scrollbar pentru navigare.
    • Ștergerea unei inserări se face cu un simplu click pe respectivul oraș.
  • Aplicația angular este structurată pe componente, având 5 componente.
    • Comunicarea între componente este făcută cu Input (pentru weather & forecast Data și numele orașului din input) și cu Local Storage (în cazul componentei de Favorite)
  • Local storage-ul este folosit pentru a salva limba utilizatorului, lista de favorite și tema.
  • Aplicația este responsive pentru Desktop cât și pentru Mobile.
  • Până se primește răspuns de la API, se va afișa o componentă cu un spinner ce indică utilizatorului să aștepte până i se afișează informația.
  • Aplicația folosește variabile și mixin din fișierul variables.scss.

Toate contribuțile la această versiune pot fi văzute aici:
https://github.com/robertnitu02/accesa-raro-internship-2023/commits/weather-application-v1.0