pomysł na realizację aplikacji webowej

0

chciałbym zrobić aplikację webową, na której każdy mógłby się zarejestrować a po zalogowaniu mógł dodawać artykuły ze zdjęciami, dodatkowo w menu byłaby opcja w której można byłoby czytać , komentować i oceniać artykuły innych użytkowników. w zakładce w której można czytać te artykuły byłyby one sortowane według oceny lub tematu artykułu

aktualnie zrobiłem rejestracje, logowanie i stronę główną.

Czy mógłby ktoś podpowiedzieć jak zrobić coś takiego najłatwiej ? podsunąć jakiś pomysł jak zrobić aby każdy z osobna mógł prowadzić tak jakby swojego bloga na jednej platformie ?

czyli podsumowując:
logujemy się na swoje konto, i pokazują nam się wszystkie artykuły które sami napisaliśmy z liczbą wyświetleń,oceną i liczbą komentarzy pod spodem
następnie z boku mamy menu z którego możemy się wylogować dodać nowy artykuł, oraz wejść w zakładkę artykuły innych użytkowników, w której poprzez wybór sortowania (np. temat artykułu jego ocena lub liczba wyświetleń ) możemy czytać artykuły innych ludzi, dodatkowo możemy je oceniać i komentować

potrzebuję, pomysłu jak to zrealizować, kilka podpowiedzi z czym to się je a sam do wszystkiego dojdę, tylko po prostu nie wiem jak zacząć.

z góry dziękuje uwagi i podpowiedzi
Pozdrawiam :)

0

noooo nie bez powodu najpopularniejszym typem baz danych są bazy "relacyjne" poczytaj o co z tym biega, co to klucz obcy, co to relacje między rekordami z różnych tabel a będziesz wiedział jak to ogarnąć.

0

Czy mógłby ktoś podpowiedzieć jak zrobić coś takiego najłatwiej ? podsunąć jakiś pomysł jak zrobić aby każdy z osobna mógł prowadzić tak jakby swojego bloga na jednej platformie ?

Najłatwiej to Wordpress albo lepiej - Drupal. Jedno i drugie można skonfigurować pod prowadzenie własnego bloga + milion wtyczek do dodatkowych funkcjonalności. Wszystko czego potrzebujesz mają już jakby wbudowane pod siebie. Trzeba tylko obkodować. Czy koniecznie chcesz pisać własną apkę?

3

Użyj Laravela. Logowanie i rejestracje masz gotowa w pakiecie.

Nie musisz od razu robić wszystkich funkcjonalności. Zacznij od niezbędnego minimum. Jaka jest główna funkcjonalność Twojej aplikacji? Co by ona robiła gdybys miał ją opisać jednym zdaniem?

Uzytkownicy musza mieć możliwość przeczytania artykułów

Na razie nie przejmujemy się komentarzami, ocenami itd. Teraz jeżeli już mamy minimalna funkcjonalność zadajemy sobie pytanie jak do niej dojść małymi kroczkami i co nam będzie potrzebne.

Artykuły musimy gdzieś trzymać, wiec potrzebujemy tabelkę z artykułami. Okej, ale co w tej tabelce? Każdy szanujący się artykuł musi mieć:

  • tytuł
  • treść.

Na razie nie przejmujemy się nawet użytkownikami. Przecież w skrajnie śmiesznej sytuacji użytkownicy Twojej aplikacji mogą Ci wysyłać mailem artykuły, a Ty je będziesz wrzucał do bazy. Mało to wygodne, ale na ten moment obejdzie się bez użytkowników.
Podkreślam interesuje nas minimum konieczne, żeby Twoja strona miała sens.

Tworzymy wiec odpowiednia tabelkę. Wrzucamy jakieś artykuły do tej tabelki. Wyciągamy je i wypluwamy na ekran prezentując je w jakiejś tabelce html czy bóg wie czym.

Super! Co dalej? Fajnie by było żeby jednak użytkownik mógł sobie dodać ten artykuł, a żeby dodać artykuł, to musi się zalogować. W związku z tym w pierwszej kolejności musimy zrobić logowanie. Tutaj akurat sprawa jest prosta, bo laravel ma wbudowane to wszystko, wiec nie musisz się martwić. Przeczytaj dokumentacje.

Okej użytkownik może przeglądać dodane artykuły oraz może się już zalogować. To już całkiem sporo. Skoro musi mieć możliwość dodania artykułu, to tworzymy odpowiedni formularz, ale najpierw jak powiązać artykuł z użytkownikiem? Do tego użyjemy klucza obcego. Dodajemy do tabelki z artykułami user_id i oprogramowujemy dodawanie artykułu.

Na ten moment mamy:

  • możliwość przeglądania artykułów
  • logowania się (i rejestracji)
  • dodawania artykułu

Co dalej? To zależy od Ciebie, ale mechanizm jest taki sam. Jeżeli wybierzesz, ze dobrze by bylo, aby użytkownicy mogli „łapkować” artykułu to zadajesz sobie pytanie: a gdzie ja będę trzymał te lajki? Potrzebuje tabelkę likes. Jak ja połączyć z artykułami i użytkownikami? Pewnie musi tam być klucz obcy do jednego i drugiego.

Później jak Ci wygodniej - możesz najpierw dodać sztuczne lajki do tabelki i oprogramować wyświetlanie, albo najpierw zacząć od dodania możliwości kliknięcia like, który się doda do bazy. Moim zdaniem łatwiej jest oprogramować wyświetlanie rzeczy sztucznie dodanych, wtedy nie będziesz musiał grzebać w bazie, żeby sprawdzi czy się udało - tak jak zrobiliśmy z artykułami.

Małymi kroczkami, przyrostowo rozwijaj swoją aplikacje. Jak spróbujesz zrobić wszystko na raz to się pogubisz. Zawsze sobie zadaj pytanie jakie jest minimum konieczne, żeby to działało, a później buduj dookoła tego.

How do you eat an elephant? One bite at a time.

PS. Możesz nawet najpierw zwrócić do widoku tablice z artykułami, których nawet nie ma w bazie. Ogarniesz najpierw widok, jak już widok będzie działał, to wtedy podmieniasz sztuczna tablice z artykułami w bazie itd. itd.

0

dzięki wielkie ! na pewno mi pomoże, będę próbował po kolei dodawać funkcjonalności na swoją aplikację, bo koniecznie chcę napisać ją sam.

Mam jeszcze pytanie co do wstawiania artykułów, czy można wbudować do aplikacji jakiś edytor tekstu, żeby te artykuły jakoś ładnie wyglądały ?

1

Pewnie, polecam https://www.tinymce.com/ (ale przeczytaj licencje, jezeli chcesz uzyc komercyjnie).

Pamiętaj o zasadzie małych kroczków. Najpierw niech dodawanie działa ze zwykłym polem tekstowym, później baw się w pozostałe bajery :)
Pamiętaj też, że tinymce utworzy HTML, który musisz później wrzucić do bazy, a następnie wypluć na ekran. Laravel Ci tego nie pozwoli zrobić w obawie przed XSS. Będziesz musiał stworzyć whitelist tagów, które sa dozwolone i odpowiednio skonfigurować laravela/tinymce.

0

super, fajnie by było jakby ten temat tutaj został to bym jeszcze w przyszłości pewnie kilka pytań zadał + plus pochwalił się postępami :)

dziękuje jeszcze raz za pomoc :)

0

@mr_jaro: Pytanie było "jak zrobić najłatwiej" - najłatwiej skorzystać z gotowych/sprawdzonych rozwiązań. Nie było pytania w stylu: chcę to napisać sam od 0 na jakimś frameworku. Nie było kwestii nauki programowania od samych podstaw. Nie wiemy nawet jaką wiedzą dysponuje autor, na jakim poziomie ogarnia PHP, MySQL, inne rzeczy - była kwestia jak zrobić najłatwiej. Nie znamy rozmiaru apki, nie wiemy do czego ma docelowo służyć - czy to własny projekt do nauki czy jakiś docelowy do rozwoju. Czy będzie tam 10 userów czy 100 tys.
Ok - widzę, że autor ma rejestrację, logowanie i stronę główną. Czyli, że zaczął kodować sam. Ale być może będzie skłonny skorzystać z innych opcji jednak, może nie jest świadomy, że to co robi można zastąpić czymś co już istnieje. Zaproponowałem więc rozwiązanie "najłatwiej" w zależności od umiejętności autora i jego preferencji nazwijmy to rozwoju zawodowego. A nie rozwiązanie najbardziej pasujące do programowania od podstaw.

Wordpress nie jest taki zły jak go opisujesz - wiadomo, do dużych systemów nie jest zbyt elastyczny, nie był do tego tworzony. Ale to wina autora Twojego projektu, który być może błędnie założył, że WP udźwignie ogrom danych przetwarzanych na stronie. A może nie spodziewał się, że będzie zarządzał takimi ilościami danych. Albo poszedł po kosztach czy krótkim czasie realizacji. Dlaczego - nie umiem powiedzieć.

WP jak ktoś dobrze zna i wie jak z niego korzystać to tak go skonfiguruje, że będzie hulał aż miło. Gdyby był taki straszny i nie dobry, ludzie nie używaliby go i nie rozwijali. Na proste strony, nawet lekko zaawansowane nie jest taki zły. Na podstawową naukę CMSa, w sam raz.

Reasumując: nie musisz od raz jechać po wszystkich, że jesteśmy debilami bo proponujemy WP albo Drupala, a pisanie od 0 wszystkiego we Frameworku jest super. Jak masz wątpliwości co do mojej propozycji wystarczy normalnie jak człowiek napisać, uzasadnić i nie rzucać mięsem. Autor zadecyduje jak chciałby to zakodować - czy chce zrobić to na szybko wykorzystując gotowe systemy bo mu zależy na czasie czy woli sobie pokodować i wszystko od zera napisać sam. Chcemy pomóc autorowi, przestawić kilka opcji a nie jechać po sobie, bo nasze racje są najważniejsze.

Przemyśl to.

0

@hapertown: no w sumie próbowałem się bawić z wordpressem, żeby tam to zrobić, i zainstalowałem sobie wordpressa na lokalnym serwerze XAMPP, tylko że tam mam konto administratora na które mogę się zalogować, i tam modyfikować swoją stronę,

a żeby każdy wchodzący na stronę mógł założyć sobie na niej konto i dodawać artykuły ? nie z panelu administracyjnego tylko ze swojego zalogowanego konta ?

wiem że trzeba byłoby zainstalować jakieś wtyczki, może orientujesz się bardziej i przybliżyłbyś mi rozwiązanie właśnie z tym CMS wordpress ?

0

Doprecyzuj nam najpierw proszę co zamierzasz osiągnąć tą apką - to ma być apka szkoleniowa dla Twojego rozwoju, czy apka, która ma przynieść Ci jakiś dochód/cel, cokolwiek? Jakie masz umiejętności w programowaniu? Czy posty userów mają być widoczne wszystkie w ramach jednej domeny, czy chcesz żeby każdy z userów miał swoją subdomenę czy path, w ramach którego można będzie przeglądać jego posty, profil etc.?
Musisz nam trochę więcej opowiedzieć o tym :)

PS: Masz jakiś istniejący wzorzec na necie? Coś czym mógłbyś to zwizualizować ?

0

każdy cms, fw, język używany zgodnie z przeznaczeniem jest idealny, z wordpressem jest podobnie, nawet pamiętam "Niebezpiecznik" miał spore problemy z wordpressem swego czasu
pod mały portalik jest ok, ale jak się rozrośnie to przy wymianie danych z klientem i stopniowaniu jego uprawnień na bank będzie problem z zachowaniem bezpieczeństwa, kwestia nie czy tylko kiedy

0

Hmmm programuje juz troche,, cos tam potrafię. Ale
Celem stworzenia aplikacji jest moj własny rozwój :)

Nie wiem czy jest cos podobnego w internecie jakaś podobna aplikacja

Ale zamysł jest taki, ze bedzie to strona internetowa Przykładowo w celu wyjaśnienia niech to bedzie strona kulinarna, i każdy moze zarejestrować sie i zalogować
Po zalogowaniu możemy dodawać nowe przepisy, czytać swoje stare przepisy i przeglądać komentarze które inni użytkownicy nam dodali,

Dodatkowo w na górnym pasku będą rożne opcje, profil a w nim liczba napisanych przepisów i średnia ocena srtykulow,
oraz bedzie taka opcja jak zobacz przepisy innych:
Gdzie bedziemy mogli je sortować Np na podstawie tego jaki rodzaj przepisu to jest czy to kuchnia włoska czy francuska czy polska itp bedziemy mogli przeglądać i czytać tw artykuły oraz wystawiać im ocenę i komentować

Mam nadzieje ze wyjaśniłem mniej wiecej jak to ma wyglądać
Co do metod zrobienia tego jest mi obojętne im wiecej przy tym sie nauczę nowego tym lepiej :)

Moze Facebook miałby cos podobnego, chodzi o to ze:
Mamy taka tablice główna na ktorej wyświetlają sie wpisy wszystkich użytkowników calej aplikacji, i one sie wyświetlają według czasu dodania, ale możemy sobie tez wybrać sortowanie Np pokaz tylko przepisy kuchni azjatyckiej i wyskakują wszystkie wpisy użytkowników o kuchni azjatyckiej

A wybierając z menu dodaj nowy artykul piszemy własny i on potem pojawia sie ja tej tablicy

Chciałbym aby znalazła sie również zakładka mojego profilu z jakimiś statystykami i lista moich artykułów :)

0

@hapertown i co? mówiłem, że celem autora jest nauka ;)

0
Patrykft napisał(a):

Ale zamysł jest taki, ze bedzie to strona internetowa Przykładowo w celu wyjaśnienia niech to bedzie strona kulinarna, i każdy moze zarejestrować sie i zalogować
Po zalogowaniu możemy dodawać nowe przepisy, czytać swoje stare przepisy i przeglądać komentarze które inni użytkownicy nam dodali,

jak pisałem, jeśli klient ma przesyłać dane i mieć różne uprawnienia to będzie potrzebna porządna walidacja danych

0

Każdy uzytkownik bedzie miał te same uprawnienia, każdy bedzie mógł dodawać artykuły i te które sam napisał bedzie mógł usuwać, każdy zalogowany bedzie mógł przeglądać wpisy innych, i je oceniac i komentowac

To nie ma byc tak ze kilku użytkowników adminów czy moderatorów bedzie prowadzić ten serwis, tylko społeczność ludzi miałaby to robić poprzez dodawanie własnych wpisów :)

Jezel ktos ma pomysł jak to zrobic, to fajnie by było jakby rzucił jakimiś hasłami czego mam szukać w internecie czy książkach,

Aktualnie jest zrobiony cały front z rejestracja i logowaniem, musze tylko ta funkcjonalność dorobić ;p

0
mr_jaro napisał(a):

@hapertown i co? mówiłem, że celem autora jest nauka ;)

No ale określił teraz dokładniej cele, wcześniej tak jasno to nie wynikało - było tylko hasło najprościej i najszybciej :) W ogóle teraz problem przyjmuje trochę inną postać. WP rzeczywiście marnie by tutaj wypadł :)

@Patrykft: z tego co napisałeś to tak na dobrą sprawę chcesz postawić niezłą apkę na necie - niezłą w sensie rozmiarowym i logistycznym. Nie wiem czy "coś tam potrafię" wystarczy... Tu w sumie ocierasz się o zakodowanie w dobrym frameworku. @Desu zaproponował fajne podejście - oparcie wszystkiego na jednym frameworku i kodowanie pomalutku kolejnych funkcjonalności. Może rzeczywiście Laravel będzie odpowiednim rozwiązaniem - osobiście nie znam.

Generalnie pomysł na naukę fajny - tyle, że problem z niektórymi frameworkami jest taki, że wszystko musisz dobrze sam obkodować. W Twoim przypadku najgorzej byłoby gdybyś każdą pojedynczą funkcjonalność miał kodować oddzielnie (każdą walidację, zapis/modyfikacja artykułów, panel usera) - masakra. Jak masz cierpliwość i dużo czasu na rozwój to spoko - z pewnością dużo będziesz mógł się nauczyć :) Bylebyś tak zakodował, żeby potem chcąc rozwinąć apkę o np. jakieś poziomu moderacji, nie trzeba było rozbebeszać całej apki i żebyś nie stwierdził, że trzeba ją przerobić od nowa :)

Biorąc np. przykład Drupala - rzeczywiście system trochę kobyła i trochę wymagający. Ale znowuż odwdzięcza się czym innym - tam coś takiego można byłoby zrobić w kilka dni. Są setki pluginów, które robią za Ciebie robotę i praktycznie wszystko możesz skonstruować i ustawić w CMSie ręcznie (poprzez parę modułów typu CCK,Views,Rules,Token,różne Fieldy,Entity etc.) łącznie z poziomami uprawnień, ewentualnie pięknie rozszerzyć całą funkcjonalność hookami we własnym module. A potem dorzucasz cache, jakieś zewnętrzne narzędzia do researchu (np. solr) i działa wszystko szybko, wydajnie.

Tutaj masz inaczej - musisz obkodować wszystko sam. Chyba, że Laravel ma jakieś pluginy, które też z automatu rozszerzają funkcjonalność frameworka, to rzeczywiście część rzeczy możesz przerzucić na zewnętrzny plugin i roboty trochę Ci odejdzie.

Reasumując - pomysł fajny na naukę. Twoim zadaniem jest teraz wybranie najlepszego frameworka do zrobienia tej apki. Możesz zacząć od przejrzenia Laravela - co to jest, z czym się je, jakie są jego rozszerzenia, jak trudny jest w opanowaniu. Może nada Ci akurat, a może będzie lepiej wybrać coś innego. A potem działaj, koduj, testuj, rozwijaj i ucz się ;)

PS: Zauważ, że będziesz musiał wziąć pod uwagę też oddzielne konto admina - do zarządzania userami (blokowanie, aktywowanie, moderacja), artykułami, ochroną przed botami. Musi być też warstwa prezentacji - jak ludzie będą chcieli dodać jakiś załącznik czy zdjęcie, dobrze byłoby to zrobić na zasadzie Drag&Drop (user friendly) albo jak będzie kilka zdjęć czy załączników? Dobrze byłoby zadbać o miłe i przejrzyste dodawanie takich elementów, ale to będziesz musiał po stronie serwera też obkodować sam, nawet jeżeli front załatwi Ci jakaś wtyczka JS.

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