Witam wszystkich!

Mam do napisania stronę w DJANGO - bazę ofert turystycznych. Strona nie będzie mocno rozbudowana, niemniej już teraz widzę kilka rzeczy trudnych dla mnie, dlatego proszę o wskazówki.

Strona ma mieć następującą funkcjonalność (z grubsza biorąc):

  • oferty wyswietlane sa w kilku kategoriach (np. krajowe, zagraniczne-Europa, zagraniczne-Afryka, zagraniczne-Ameryka_Płd.) w formie listingu z paginatorem. To funkcjonalność mam już prawie gotową.
  • oferty dodajemy przez API - Tastypie lub DRF (django rest framework) lub inne (ale raczej te wymienione)
  • w panelu admina strony ma być właściwie tylko opcja edycji najważniejszych parametrów oferty + dodatkowo:
    -- opcja "publish" - uczynienie by oferta była on-line (taka nazwijmy to prosta moderacja)
    -- opcja "archive" - wyrzuca ofertę z wyszukiwarki i listy wyswietlającej oferty, ale oferty są nadal w bazie przez jakiś okres jako "archive" czyli oferty już nieaktualne, ale dostępne pod adresem url (na wypadek gdyby gdzieś w internecie ktoś na np. forum zostawił "ślad").
    -- opcja "do edycji" - gdy oferta nie jest gotowa, wymaga przed publikacją uzupełnienia danych/zdjęć,, etc.
  • wyszukiwarka ofert - z tym będzie dla mnie największy problem :(
    -- wyszukiwanie po: cena, liczba dni, rodzaj transportu, wyżywienie, standard hotelu, udogodnienia, oferty last minute, itp.
  • funkcja "ulubione" - taki "koszyk" ulubionych ofert, w celu wybrania kilku(nastu) najbardziej interesujących ofert i możliwości porównania ich przed ostatecznym wyborem konkretnej oferty.
  • dodatkowe strony "o nas", "kontakt", itp. - To raczej strony statyczne, wiec nie będzie problemów.

Strona nie będzie posiadać bazy użytkowników, a więc też rejestracji, itp. (jedyną logującą się osobą będą admin, ew. też moderatorzy).

Liczę na wskazówki, jak zabrać się za projektowanie takiej strony... :)

Chodzi mi przede wszystkim o:

  1. Jaką nadać strukturę projektowi:

Myślałem o czymś takim:

my_site\
api
offerslist
search
admin
favoffers
staticfiles
templates
database

Myślę, że nazwy katalogów mówią same za siebie. Pominąłem tutaj pliki i katalogi zakładane automatycznie przez framework.
Zastanawiam się czy wyszukiwarka powinna być w oddzielnej appce, skoro bazuje na tym samym modelu?

  1. Który "silnik" API wykorzystać tastypie czy DRF? (wybrałem te dwa ze względu na dobrą dokumentację i sporo przykładów wykorzystania)
    Jak rozwiązać problem następujacy: Opis oferty chce wrzucać przez API, natomiast co ze zdjęciami? Przesyłać FTP? czy też przez API restowe? Jak się taki problem zwykle rozwiązuje?

  2. Jak wykonać wyszukiwarkę ofert? Tu nie mam zupełnie pomysłu. Proszę o porady, wskazówki jak to powinno być zrobione w django.
    Co wybrać do wyszukiwarki? Standardowe rozwiązania django, czy może pakiety jak django-filter, django-search, a może zaawansowane rozwiązania (jak Haystack + ....)?
    Proszę o sugestie z krótkim uzasadnieniem wyboru.
    Nie do końca wiem, jak przekazać opcje wyszukiwania do kontrolera wyszukiarki? Jak to powinno być prawidłowo zrobione? Tzn. jak "uruchomić" wyszukiwanie od momentu wybrania opcji, kategorii lub i frazy wyszukiwania i kliknięcia buttona "szukaj".
    Większość stron jakie oglądałem wysyła POST-em dane z formularza...

Naturalnie proszę o naprowadzenie mnie na konkretne rozwiązania i technologie, resztę doszukam sam.

DZIEKUJE!