(przeszukałem forum i wg mojej oceny ten dział powinien być odpowiedni na moje pytanie - jeśli nie, to prośba o przeniesienie)
Cześć wszystkim,
Mam funkcjonalny prototyp aplikacji internetowej, ale jest to jedynie proof of concept (MVP) z potencjałem rozwoju.
Chciałbym poznać Waszą opinię na temat technologii, jaką powinno się zastosować, aby opracować w pełni funkcjonalny i solidny produkt.
Stworzyłem MVP, korzystając z mojej (oldschoolowej?) wiedzy zdobytej 15 lat temu (+trochę świeżego R&D) i działa, ale nie jest doskonały i nie ma możliwości skalowania.
Aktualnie jest oparty na HTML + JavaScript (front-end), node.js (przesyłanie zdjęć), AppScript (backend i baza danych) oraz trochę PHP (do kontroli dostępu).
Zakładam, że można to poprawić (znacznie) i prawdopodobnie całkowicie przepisać - nawet od zera, korzystając z obecnego projektu i UX flow.
Front-end: dostęp przez przeglądarkę internetową (głównie na smartfonach lub tabletach, smartwatchów w ogóle nie biorę pod uwagę), aby być jak najbardziej uniwersalnym. Mapa miasta z kluczowymi lokalizacjami do wyboru i uzyskania o nich informacji (plus geolokalizacja). Użytkownicy (/goście) mogą się rejestrować, aby tworzyć indywidualne profile z możliwością późniejszej edycji.
Backend: baza danych przechowuje lokalizacje (współrzędne, typy, notatki) i dane użytkowników (login, hasło, preferencje itp.), repozytorium załączników (zdjęć) jest oddzielone. Serwer może wysyłać e-maile (lub SMS-y - przy użyciu zewnętrznego API i bramki sms) w celu weryfikacji użytkowników lub dostarczania różnych powiadomień.
BTW - wciąż myślę o powiadomieniach push, ale nie są one (jeszcze?) idealne z poziomu przeglądarki, więc może to pozostać na dole product backloga ;)
Skalowalność: na początku kilkuset użytkowników, ale może wzrosnąć do 1k-5k w ciągu kilku miesięcy, do 50k-200k w dłuższym okresie, a po kilku latach jeszcze więcej.
PYTANIE: czy przepisywać to wszystko na PHP z pełną obsługą bazy danych, załącznikami, rozsyłaniem e-mail/sms, etc., tak, aby odpowiednio się skalowało dla rosnącej ilości użytkowników? Czy może jednak Java, gdzie nie mam doświadczenia (nawet jest ujemne, bo coś mnie odpycha od tego rozwiązania)?Troszkę poczytałem o rozwiązaniach dla PHP i trafiłem na CakePHP lub Laravel, ale czy rzeczywiście framework się sprawdzi, czy też lepiej pisać w pełni customowe rozwiązanie, dedykowane pod projekt?
Z góry dziękuję za odpowiedzi, sugestie, itp. Na wszelkie pytania postaram się odpowiedzieć w miarę krótkim czasie, ale życie rodzinne troszkę zmniejsza dyspozycyjność.
Pozdrawiam!