Skip to content
This repository has been archived by the owner on Jan 25, 2023. It is now read-only.
/ alt-api Public archive

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

Notifications You must be signed in to change notification settings

pjatk21/alt-api

Repository files navigation

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
Obecny projekt będzie wciąż utrzymywany do lutego 2023, jednakże nie będzie aktywnie rozwijany

Różnice względem oryginalnego planu

  • Nowoczesna i szybka aplikacja webowa

  • ICS Feed (zamiast pojedyńczych plików ICS)

  • JSON API wraz z dokumentacją OpenAPI

  • Bardzo szybki czas odpowedzi w porównaniu do orginalnego planu zajęć

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:

  • Docker engine
  • Docker compose

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

  • Wszystkie zmiany będą akceptowane o ile zostaną wcześniej sformatowane przy pomocy prettier i eslint nie ma zastrzeń
  • Akceptowane są wszystkie technologie o ile jest możliwość ich implementacji poprzez WASI lub inaczej "natywnie" w Node.js >= 16.x
    • Oczywiście, również jest wymagane dodanie typowania dla TS
  • Zmiany wprowadzone przez spoełeczność nie muszą (ale mogą) być wspierane przez autorów
  • Wymagane jest używanie yarn
  • Można dodawać koeljne dependecies do package.json i do docker-compose.yml

Frontend devel

bash/zsh

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

posh

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

About

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

Topics

Resources

Stars

Watchers

Forks

Sponsor this project

Contributors 4

  •  
  •  
  •  
  •