Aplikacja webowa do generowania CV

0

Witajcie, chcę napisać webaplikację do generowania CV z rzeczywistym podglądem. Webaplikacja ma mieć możliwość logowania, rejestracji (JWT) a klientem ma być Angular. Reasumując springboot będzie wystawiał rest api, a klient Angular będzie je obsługiwał. Jednak zastanawiam się nad zaprojektowaniem.

  1. Szablony do cv (html) mam trzymać po stronie serwera i jak użytkownik w kliencie wybierze szablon X, to serwer wysyła ten szablon w formie HTML, a następnie jest wrzucany w kliencie do jakiegoś diva - chodzi o rzeczywisty podgląd. Następnie użytkownik po kliknięciu Generuj wysyła jedynie dane z formularzy do serwera, który je odpowiednio wrzuca w szablon.

  2. Trzymać szablony po stronie klienta i je tam generować, a wtedy springboot tylko trzyma dane takie jak: konta użytkowników i zapisane cv w bazie.

  3. Trzymać szablony po stronie klienta, a po kliknięciu Generuj wysyła cały rzeczywisty podgląd (blok kodu HTML - z wstawionymi przez użytkownika danymi) do serwera.

Wg mnie opcja nr 1 jest bardziej skalowalna i bezpieczna - jak będę chciał napisać klienta na telefony to nie zduplikuje kodu i będzie jednolitość zachowana dzięki mieleniu przez serwer. Druga opcja: Jak będę chciał napisać klienta na telefon to nie będzie takiej jednolitości - narobię się jak wół.
Trzecia opcja: troszkę mniej bezpieczna, bo po stronie klienta można zmienić html - wtedy musiałbym po stronie serwera sporo walidować.

Baza danych będzie więc zawierać konta użytkowników oraz dane zapisanych cv.
Generowanie CV to po prostu jakaś biblioteka, która tworzy PDF na podstawie html.

Zaznaczę, że to jedynie moje przemyślenia i mogę być w błędzie. Jesteście doświadczeni więc za wszelkie porady, wytknięcię błędów w myśleniu, zupełnie inne opcje bardzo dziękuję.

0

Też mi ostatnio przyszedł pomysł zrobienia apki do generowania CV. Bo ludzie ciągle te CV piszą, więc mogłaby być popularna. Tylko, że jak patrzyłem w necie, to już istnieją podobne apki.

axyr napisał(a):

Witajcie, chcę napisać webaplikację (...)
Baza danych będzie więc zawierać konta użytkowników oraz dane zapisanych cv.

Ale do tego jakoś trzeba będzie RODO ogarnąć, więc to dodatkowy punkt do przemyślenia.

Szablony do cv (html) mam trzymać po stronie serwera i jak użytkownik w kliencie wybierze szablon X,

Nie wiem, czy robisz dla treningu czy na serio, ale moim zdaniem jak chcesz zrobić coś, co faktycznie przyda się użytkownikom, to wybór szablonu to trochę za mało. W zasadzie jakieś szablony do CV są wszędzie. Ale:

  • wygodne dostosowanie szablonu pod siebie. Z tego względu ja wolałbym to jednak zrobić po stronie frontendu, gdzie by był jakiś edytor wizualny tych CV z natychmiastowym podglądem
  • możliwość tworzenia i zapisywania zcustomizowanych szablonów oraz dzielenia się tymi szablonami z innymi - dzielenie się to już po stronie backendu
  • wygodne zarządzanie danymi - typu mam takie i takie skille, wygeneruj mi CV wg dwóch różnych szablonów, albo wg tego samego szablonu ale w jednym napisz trochę inne skille, jako że aplikuję na różne stanowiska, a potem pozwól mi śledzić obie rekrutacje (ale to już podchodziło by pod ATS, w sensie pod apkę do śledzenia rekrutacji).
0

Dziękuję za odpowiedź. Chciałbym właśnie w ramach nauki wykonać ten projekt. Wiadomo tych aplikacji jest od groma, ale wg mnie jest to bardzo praktyczny projekt, co się nauczę nikt mi tego nie odbierze.

1
axyr napisał(a):

Witajcie, chcę napisać webaplikację do generowania CV z rzeczywistym podglądem. Webaplikacja ma mieć możliwość logowania, rejestracji (JWT) a klientem ma być Angular. Reasumując springboot będzie wystawiał rest api, a klient Angular będzie je obsługiwał. Jednak zastanawiam się nad zaprojektowaniem.

Jak zaczynasz od takich konkretnych decyzji, to to już jest zły znak. Może od razu wybierz wersje bibliotek, oraz ile linijek będą miały różne pliki?

Powinieneś zacząć od tego jaki faktyczny problem użytkownika będzie rozwiązywać ta aplikacja, wybór narzędzi zostaw na późniejszy etap.

axyr napisał(a):

Wg mnie opcja nr 1 jest bardziej skalowalna i bezpieczna - jak będę chciał napisać klienta na telefony to nie zduplikuje kodu i będzie jednolitość zachowana dzięki mieleniu przez serwer. Druga opcja: Jak będę chciał napisać klienta na telefon to nie będzie takiej jednolitości - narobię się jak wół.
Trzecia opcja: troszkę mniej bezpieczna, bo po stronie klienta można zmienić html - wtedy musiałbym po stronie serwera sporo walidować.

Za dużo myślisz o szczegółach implementacyjnych, to są już techniczne detale. Nie są to faktycznie kluczowe rzeczy, o których trzeba myśleć tak wcześnie.

Zamiast tego: zastanów się jak użytkownicy powinni korzystać z tej aplikacji - wersja webowa czy mobilna? Czy aplikacja powinna być darmowa, czy CV powinny być prywatne czy publiczne, czy powinno się móc udostępniać je na portalach społecznościowych, czy powinna być integracja z LinkedIn'em? Czy CV powinno być uploadowane, czy budowane w tej platformie? Czy obie? Czy powinny być osobne tryby dla rekrutujących się i rekruterów? W jaki sposób użytkownicy by się logowali? Mail/hasło? Google? LinkedIn? Facebook?

To są faktyczne pytania które zdecydują o jakości Twojej aplikacji. To czy to będzie Angular czy React nie ma znaczenia tak na prawdę. To czy front będzie gadał z backendem przy pomocy JWT, sesji czy czegokolwiek innego to też jest drobny, nieistotny szczegół.

0

Generowanie CV to po prostu jakaś biblioteka, która tworzy PDF na podstawie html.

Od tego też warto zacząć, ponieważ jest to potencjalna blokada techniczna.

Ostatnio szukałem JSowych bibliotek do tego właśnie (HTML --> PDF) i ogólnie temat do sprawdzenia, wiele bibliotek ma bardzo mało pobrań (więc nie wiadomo, co to, nie zostało to sprawdzone przez tłum, plus słaba dokumentacja czy słabo utrzymywany projekt), poza tym też niektóre biblioteki nie mają opcji generowania PDFów, a tylko samo wyświetlanie (ale też się pokazują w wyszukiwaniu, więc robią szum informacyjny). Niektóre mają imperatywne API (czyli nie, że HTML, ale że sam odpalasz komendy rysowania).

Nie wiem jak w Javie (w końcu zupełnie inny ekosystem*), ale myślę, że warto byłoby sprawdzić te biblioteki, żeby w ogóle wiedzieć, na czym się stoi. Bo samo znalezienie odpowiedniej biblioteki i rozkmina, jak to zrobić dokładnie, może potrwać ładnych parę godzin. A jednak biblioteka ci potrzebna (zakładam, że zrobienie tego samemu jeszcze dłużej by trwało).

*chyba, że po stronie frontendu chcesz generować, to wtedy szukasz JSowej libki

0

Znasz już specyfikację PDF?

0
johnny_Be_good napisał(a):

Znasz już specyfikację PDF?

Raz użyłem dla przykładu biblioteki iTextPdf i fajnie działało. Wiec skorzystam z którejś dostępnej libki.

0
johnny_Be_good napisał(a):

Znasz już specyfikację PDF?

w sumie ciekawe byłoby generowanie z palca PDF (ponoć jakieś to komendy PostScript są). Z drugiej strony obawiam się, że idąc tym tropem, zmienilibyśmy problem z aplikacji webowej do generowania CV na w jaki sposób wygenerować PDF z palca. Czyli byłoby to ciekawe wyzwanie, ale jednak oddalające nas (czasowo) od głównego celu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1