Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yaroslavtsebro/weather-app
https://github.com/yaroslavtsebro/weather-app
Last synced: 4 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/yaroslavtsebro/weather-app
- Owner: yaroslavTsebro
- Created: 2024-12-14T09:46:35.000Z (9 days ago)
- Default Branch: master
- Last Pushed: 2024-12-14T09:53:35.000Z (9 days ago)
- Last Synced: 2024-12-14T10:25:52.856Z (9 days ago)
- Language: TypeScript
- Size: 0 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
How to run:
docker compose up --buildExtra:
1. added config module
2. added hash module (as for me its better to use argon2 or node:crypto, but didnt have enough time)
3. added jwt module
4. added 2 token auth (email + google oauth)
5. added favorites module
6. added cron job for deletion not relevant data
7. used strategy pattern
8. changed logger to winston impl (not enough time to add custom impl)
9. Gateway (nginx)
10. OthersWhat could be done to improve code quality:
1. move using nest exceptions into using custom exceptions (now its 30%)
2. tie more to interfaces
3. add more tests
4. check code after some amount of time and make changes
5. create separate env's
6. configure ci/cd (i could do it)Task:
Створити проджект на nest який буде фетчити дані із
https://openweathermap.org/api/one-call-3#current
І записувати в БД
Продежект повинен мати 2 доступні АПІ
- POST який приймає lat, lon, part витягує дані із weatherAPI і записує в БД
- GET який приймає дані lat, lon і part і по цим даним витягує дані із БД і повертає
у відповіді
Вимоги до проджекта
- для GET АПІ використовувати interceptor nest для форматування відповіді у вигляді
**IN SOME CASES RESPONSE CANT BE TRANSFORMED INTO THIS FORM (MY NOTE)**
{
"sunrise":1684926645,
"sunset":1684977332,
"temp":292.55,
"feels_like":292.87,
"pressure":1014,
"humidity":89,
"uvi":0.16,
"wind_speed":3.13
}
- продект повинен мати Dockerfile і запускатись під докером
- в якості БД використовувати Postgres дані можна зберігати в JSON форматі
- unit tests опціонально