Wybór technologii. System dla przychodni.

Wybór technologii. System dla przychodni.
AI
  • Rejestracja:prawie 10 lat
  • Ostatnio:około 3 lata
  • Postów:375
0

Zastanawiam się nad technologiami, które mógłbym wybrać w celu napisania pracy inżynierskiej. Tematyka, to system dla przychodni, nastawiony raczej nie na zarządzanie przychodnią (faktury, godziny pracy etc.) tylko na pomoc dla pacjenta (zapisy online, korespondencja z lekarzem w znaczeniu jakichś zaleceń etc.). Chciałbym mniej więcej, żeby to działało na zasadzie REST API i osobnego klienta. Co już umiem? Znam już podstawy Javy i Springa. Myślałem nad paroma opcjami. Odnośnie frontendu:

  1. Angular i zrobić to w przeglądarce,
  2. Kotlin i aplikacja na androida.
    Od strony backendu myślałem nad:
  3. Nad tym co już w jakimś stopniu umiem, czyli Java + Spring,
  4. Groovy + Spring,
  5. Kotlin + Spring, wtedy łatwiej byłoby napisać aplikację na androida,
  6. Coś innego, nie na JVM a mianowicie Go.
    W wakacje będę się starał o staż jako programista Java głównie dlatego, że jest najwięcej ofert dla Javowców, a i pisanie aplikacji serwerowych (tych opartych o REST) mi się najbardziej podoba, więc w miarę rozsądnym wyborem byłaby Java + Spring. Z drugiej strony, fajnie byłoby poznać coś nowego np. Go - tylko w tym przypadku ofert pracy, praktycznie nie ma jeszcze. Poradzicie coś?
S9
  • Rejestracja:ponad 10 lat
  • Ostatnio:5 miesięcy
  • Lokalizacja:Warszawa
  • Postów:3573
0

@Aisekai: szczerze mówiąc troche słaby temat, jeszcze napiszesz się w życiu CRUDów. Ale generalnie skupiłbym się na Javie (Spring) + front w JS


"w haśle <młody dynamiczny zespół> nie chodzi o to ile masz lat tylko jak często zmienia się skład"
Aventus
Bez przesady żeby to tylko CRUD był. Ok, może jeśli ktoś pójdzie po najniższej linii oporu. Ale jest sporo rozbudowanej funkcjonalności którą można wpakować w taki system.
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:minuta
  • Postów:8400
0

Technologia najmniej ważna, w takich aplikacjach pełno jest wiedzy dziedzinowej i wymagań biznesowych (pracowałem kiedyś przy takim projekcie jako tester manualny, to wiem, jak bardzo to sa złożone rzeczy i wiedza dziedzinowa aż epatowała z GUI, mimo, że kodu to ja nawet nie widziałem).

Pytanie tylko, czy to nie jest za ambitny temat na pracę inżynierską, bo nie odtworzysz faktycznego systemu dla przychodni (chociaż zapewne samo robienie takiego systemu może cię dużo nauczyć programowania. Tylko czy praca inżynierska służyć ma tylko nauce programowania?).

Implementacja też jest ważna, ale to jaki sobie język wybierzesz będzie miało małe znaczenie (pod warunkiem, że wybierzesz ten, który znasz, lubisz i który jest w miarę popularny), przy każdym większym projekcie nabiera nabierać znaczenia architektura czy design całego projektu. Decyzje projektowe, ten czy inny sposób powiązań między poszczególnymi modułami czy klasami w projekcie.

tylko na pomoc dla pacjenta (zapisy online, korespondencja z lekarzem w znaczeniu jakichś zaleceń etc.).

Lepiej się zastanowić głębiej w jaki sposób zaimplementujesz te zapisy czy korespondencję z lekarzem (np. jakie klasy do tego celu stworzysz i jak będą ze sobą współpracować. Albo nawet od strony UX - w jaki sposób to ma działać pod kątem interfejsu. To są ważniejsze rzeczy

Znam już podstawy Javy i Springa.

Ja akurat jestem frontendowcem, ale powiem tak - jakbym miał robić większy projekt frontendowy i miałbym do wyboru robić go w:

  1. JS
  2. ReasonML
  3. Elm

to wybrałbym JS, bo go znam i lubię, a w ReasonML czy Elmie nigdy nie pisałem i może są lepsze, ale co z tego*. Mało tego, nawet jakbym miał do wyboru TypeScripta (za którym nie przepadam) to bym wybrał TypeScripta, dlatego, że byłoby mi się swobodniej poruszać w nim (w końcu TS to tylko JS + dodatki) niż w jakimś nowym nieznanym języku.

* tzn. poznawanie nowych języków może być fajne, rozwijające i ekscytujące. Ale może nie w sytuacji, kiedy od tego zależy nasza kariera, powodzenie większego projektu czy zaliczenie studiów.


edytowany 1x, ostatnio: LukeJL
AI
  • Rejestracja:prawie 10 lat
  • Ostatnio:około 3 lata
  • Postów:375
0

Zdaję sobie sprawę nad tym, że jest to trochę mało ambitny temat, ale postanowiłem wybrać taki temat bo znam kogoś, kto będzie w najbliższym czasie otwierał przychodnię i mógłbym zrobić coś takiego i wykorzystać to jako pracę inżynierską (o ile nie będzie to tylko wizytówka). W dodatku, bardziej mi chodzi, nie o to aby było dużo logiki, co o samą architekturę aplikacji oraz poznanie bardziej jakiejś technologii. Superdurszlak w innym temacie zaproponował aby stworzyć mini-framework pokroju Spirng Boota i też by to było rozwijające (wymusiłoby to dogłębniejsze poznanie jak działa Spring) - tylko według mnie lepiej nie ryzykować, a dodatkowo - tak jak mówiłem - zrobić dwie rzeczy na raz. Myślałem też nad tym, żeby stworzyć zarówno stronę w Angularze oraz aplikację na androida, na pewno lepiej to będzie wyglądać jakby ktoś chciał wziąć kiedyś zobaczyć mój temat. Tylko pytanie, czy rzeczywiście temat pracy inżynierskiej ma jakiekolwiek znaczenie w przyszłości?

Lepiej się zastanowić głębiej w jaki sposób zaimplementujesz te zapisy czy korespondencję z lekarzem (np. jakie klasy do tego celu stworzysz i jak będą ze sobą współpracować. Albo nawet od strony UX - w jaki sposób to ma działać pod kątem interfejsu. To są ważniejsze rzeczy

To jest jedna z tych rzeczy, które też chciałem się nauczyć pisząc pracę inżynierską. Oprócz tego kilka innych modułów Springowych (których nie znam). Raczej nie odtworzę całego systemu dla przychodni, raczej chciałem się skupić na przychodni od strony pacjenta, plus jakieś tam mini zaplecze administracyjne. Odnośnie reszty, chyba masz rację i naukę nowych języków pozostawię na kiedy indziej.

KE
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 2 godziny
  • Postów:662
1

Może mam trochę pesymistyczne podejście po pisaniu własnej inżynierki - ale rada moja jest taka: weź jakąkolwiek technologię, którą znasz teraz najlepiej i w której najszybciej zakodzisz co masz zakodzić. Nie bierz nic nowego i nieznanego, chyba że jesteś super ambitny, rozumiesz że ponosisz ryzyko zawalenia projektu i nie będziesz zniechęcony wiecznym googlowaniem rzeczy które już w Javie znasz :) Promotora rzadko będzie interesować co jest w środku, ważne będzie pokazanie że działa i można poklikać. Za to mnóstwo czasu zejdzie ci na pisanie pracy, szukanie zmyślonej bibliografii i ping-pong z prowadzącym doczepiającym się każdego przecinka i słowa. Serio, zaoszczędzisz sporo czasu, który możesz poświęcić na inne rzeczy typu Go :)

SI
  • Rejestracja:ponad 6 lat
  • Ostatnio:dzień
  • Postów:296
0

Ktoś gdzieś nawet na tym forum mówił, że to jest straszna ilość dokumentacji przez którą trzeba przebrnąć i wymogów, które trzeba spełnić, żeby taki system był w ogóle dopuszczony do użytku. I pamiętam, że polecał najpierw przeczytać nowelizację ustawy z 27 sierpnia 2004 r. o świadczeniu opieki zdrowotnej finansowanej ze środków publicznych (Dz.U. z 2008 r. Nr 164 poz. 1027) i jeszcze dwa inne dokumenty, których nie pamiętam, ale w razie czego, to powodzenia :)

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)