Chcę go zrobić od A do Z i jak najwięcej z tego wyciągnąć, dlatego przed zaczęciem pisania jakiegokolwiek kodu chciałbym poradzić się tutaj, jakich technologii najlepiej użyć.
Technologie to najmniejszy problem. Czy pomyślałeś o tym jak zaprojektujesz taką aplikację? (zarówno pod kątem interfejsu jak i pod kątem organizacji kodu, architektury, komunikacji między modułami, wzorców projektowych etc.).
O ile pytanie o technologie jest do pewnego stopnia słuszne, to jednak masę osób sprowadza developerkę do pytania, które technologie wybrać, a jednak nie jest to takie proste. Zresztą nawet jak wybierzesz dobre technologie, to nie znaczy, że będziesz w nich dobrze programował. Np. nawet jeśli baza danych PostgreSQL jest dobra, to nie znaczy wcale, że stworzysz dobre zapytania SQL do niej.
A więc do rzeczy, wybrałem:
(...długa lista technologii...)
No dobra, ale nie budujesz statku kosmicznego czy reaktora nuklearnego i nie musisz podejmować wszystkich decyzji na początku, bo inaczej będzie kuku. Możesz bardziej zwinnie podchodzić i dostosowywać technologie w trakcie rozwoju projektu. Zmieniać je jak rękawiczki. W końcu robisz to dla nauki :)
Powiem tak - ja sam dłubię sobie pewien projekt (nie w Javie akurat, tylko w JS, ale whatever) i na początku wybrałem Angulara, potem jednak w trakcie developerki okazało się, że kiepsko się on sprawuje do tego, co chciałem zrobić. Więc zrobiłem eksperyment - ściągnąłem Reacta i zrobiłem w nim bardzo prosty prototyp core'owej funkcjonalności mojej apki. Okazało się to dobrym pomysłem, więc podjąłem decyzję o wejściu w Reacta i przepisaniu tego na Reacta (którego się uczyłem w trakcie pisania).
Chociaż, tu uwaga, warto zachowywać zasadę separation of concerns, dzięki której np. zmiana technologii X na inną nie będzie się wiązała z przepisaniem całej aplikacji, a jedynie z przepisaniem np. jednego modułu.
Na twoim miejscu wybrałbym jakikolwiek stack, jaki uważasz za słuszny, zrobił na szybko prototyp aplikacji w stylu RedMine, ew. nie całej nawet tylko jej fragmentu, a potem wyciągnął dalsze wnioski czy wybory technologiczne były słuszne (chociaż zwykle i tak ważniejszy jest wybór/zaprojektowanie architektury niż wybór tej czy innej technologii*).
*no dobra, czasem wybór technologii też jest ważny czy nawet krytyczny dla apki. Ale myślę, że to się rzadziej zdarza. Ludzie przeceniają technologię a zapominają o architekturze.