pjatk21 / alt-api

Twórz zapytania do planu zajęć PJATK w ciągu milisekund. Dobra alternatywa dla oryginalnej strony z 2010. :shipit:
https://altapi.kpostek.dev
7 stars 0 forks source link
docker mongodb nestjs nodejs pjatk react typescript

Warning

Ten projekt został porzucony, nie jest oficjalnie hostowany i nie będzie rozwijany.

Jego następcą został CaaTS.

AltapiHeading

Twórz zapytania do planu zajęć PJATK w ciągu milisekund. Dobra alternatywa dla oryginalnej strony z 2010.

GitHub Workflow Status (branch) Code Climate maintainability Code Climate technical debt GitHub top language GitHub commit activity wakatime

> *Status projektu:* __maintenance__
> *Nowy projekt: [Puppy](https://github.com/pjatk21/puppy-api)*
> *Obecny projekt będzie wciąż utrzymywany do lutego 2023, jednakże nie będzie aktywnie rozwijany*

Różnice względem oryginalnego planu

Aplikacja

AltapiIcon_192

Moja implementacja vs. implementacja uczelni

ICS Feed

Główną różnicę z tym co dostarcza stara stronka, jest możliwość subskrybowania kalendarza. Wtedy każda zmiana jest automatycznie aktualizowana w aplikacji kalendarza bez potrzeby ponownego wgrania planu zajęć.

Również same dane dostarczane przez usługę się różnią:

Screenshot 2022-04-03 at 13 32 18

Po prawej znajdują się wydarzenia dostarczone przez altapi, a po lewej te dostarczone przez stronę PJATKa

JSON API

API potrafi odpowiadać na zapytania w stylu "jakie są zajęcia w planie dla grup x, y, z od dnia do dnia" lub "jakie są zajęcia dla wykładowcy x danego dnia"

Wszystkie endpointy związane z planem zajęć są udokumentowane tutaj. Jeżeli chcesz potestować sobie ręcznie to polecam pobrać sobie z dokumentacji OpenAPI schema i testować zapytania sobie w programie typu Insomnia.

Wydajność

Po prostu jest szybciej.

Mój timing (infrastruktura infotmatyczna warta 300-400 pln + cloudflare), timing uczelnianego serwera (infrastruktura informatyczna warta spokojnie z mln pln)

Ciekawostka: W środowisku developerskim udało mi się osiągnąć requesty na poziomie 2.3ms, co daje 391x szybsze zapytania niż oryginalna usługa

Uruchamianie

W dockerze

Wymagania:

Przed pierwszym uruchomieniem

cp docker-compose.yml docker-compose.prod.yml
vim docker-compose.prod.yml # przy pomocy edytora tekstu dopisz zmienne środowiskowe: SENDGRID_API_KEY, możesz oczywiście dodać również takie usługi jak mongo-express albo cloudflared

Kolejne uruchomienia

docker-compose -f docker-compose.prod.yml up -d

Rozwój projektu

Frontend devel

bash/zsh

VITE_API_BASE="https://altapi.kpostek.dev/" yarn dev

posh

$env:VITE_API_BASE = "https://altapi.kpostek.dev/"; yarn dev