CMS do obsługi intranetu - prośba o pomoc

0

To mój pierwszy post na tym forum, dlatego też serdecznie witam,

Mam za zadanie stworzyć system CMS do obsługi intranetu korporacyjnego. Wstępnie nastawiałbym się na realizację tego projektu przy użyciu takich technologii i narzędzi, jak PHP, XHTML, CSS, Apache, PostgreSQL, jQuery i Zend Framework. Wybrałem te technologie dlatego, bo po prostu najwięcej rzeczy robiłem za ich pomocą, oczywiście dotychczas były to nieduże projekty na zaliczenie przedmiotów na studiach. Teraz zadanie jest bardzo poważne, więc uważam, że raczej nie dam rady się nauczyć powiedzmy JEE w takim stopniu, żeby w kilka miesięcy zrealizować ten projekt, więc opieram się na tym z czym miałem najwięcej styczności. Od razu stawiam pytanie: czy te technologie są odpowiednie do tego typu aplikacji? Wiem, wiem że wszystko da się zrobić za pomocą tych technologii, ale chodzi mi o praktykę. System ma być jak najbardziej profesjonalnie wykonany, niezawodny, bezpieczny i stabilny. Czy produkty komercyjne są pisane w tych technologiach czy raczej JEE, ASP.NET? A może jakieś inne rozwiązania polecacie?

Druga sprawa to proszę o pomoc jak za to wszystko się zabrać. Nie chodzi mi o jakieś gotowce, ale o wszelkie informacje, które mogą być pomocne w realizacji tego projektu: książki; artykuły; produkty podobne, na których można się wzorować i które przodują na rynku; informacje o funkcjonalności takiego systemu itp. Zaznaczam, że nie chciałbym robić tego w oparciu o jakieś gotowe CMS, typu ezPublish czy Joomla, tylko wszystko od podstaw.

Za wszelką pomoc serdecznie dziekuję

1

Czemu będzie tworzony taki portal? Jakie funkcje ma dawać użytkownikom i zarządzającym? Jeśli będzie tylko dla zastosowań wewnętrznych to lepiej zaadaptować jakiś projekt open source a nie programować wszystkiego od podstaw.

0

Jest taka książka -
http://helion.pl/ksiazki/projektowanie-systemow-cms-przy-uzyciu-php-i-jquery-kae-verens,psycms.htm

ale to tylko jeśli będziesz się upierał, że musisz wszystko sam. Albo jeśli chcesz poznać ogólne mechanizmy CMS.

Gorąco popieram przedmówcę, w kwestii wykorzystania gotowego CMS, których jest mnóstwo. Jeśli CMS nie ma potrzebnych funkcji to:

  • szukamy modułów rozszerzających, wtyczek, skórek itp.
  • sami piszemy takowy moduł,
    ewentualnie grzebiemy w bebechach i dokonujemy modyfikacji CMS - jeśli jest to open source.
0

Czemu będzie tworzony taki portal?

System ma być tworzony w ramach pracy dyplomowej w porozumieniu z przemysłem. Wygląda to tak, że kilkanaście firm zajmujących się programowaniem podpisało umowę o współpracy z uczelnią i przedstawiło listę tematów prac dyplomowych, które studenci mają napisać. Dodatkowo każdy student będzie odbywał staż w firmie i właśnie na tym stażu będzie tworzył aplikację pod okiem kogoś z firmy,a na uczelni będzie pisał pracę pod okiem promotora. Mam nadzieję, że jest to w miarę zrozumiałe. Bardzo istotne jest natomiast to, że jeśli student zrobi świetną aplikację, to może liczyć na zatrudnienie w danej firmie. Dlatego też tak jak pisałem, zależy mi na tym żeby zrobić coś profesjonalnego, bo wiadomo żeby tylko zdać to nie zastanawiałbym się ani chwili, tylko użył gotowy CMS.
Reasumując jeśli zrobię to bardzo dobrze, to dostanę przy okazji pracę, jeśli słabo to tylko zdam pracę dyplomową i tyle.

Jakie funkcje ma dawać użytkownikom i zarządzającym?

Właśnie o to chodzi, że to ja mam zaproponować funkcjonalność. Dlatego pytałem, jaką funkcjonalność mają komercyjne projekty tego typu. Jedyne co jest pewne to, że ma być tam moduł do rezerwacji rzeczy, które są własnością firmy, a które mogą zostać wypożyczone, np. samochody. Z tego co się zorientowałem w kilku podobnych rozwiązaniach to są tam takie moduły jak wymiana plików, wiadomości, pisanie artykułów, forum itp.
Ogólnie rzecz biorąc to sam muszę najpierw, jak najwięcej się dowiedzieć o tego typu rozwiązaniach i przedstawić propozycję funkcjonalności. Stąd też ten temat.

Dziękuję za odpowiedzi i proszę o więcej.

0

Ok teraz wiadomo że pisanie aplikacji ma sens :) Co do projektów na których się możesz wzorować to jeśli chodzi o www to nie bardzo znam. Jedynie coś do help deska to Trellis Desk - tyle że tam jest przyjmowanie zgłoszeń, budowa bazy wiedzy, kontakt z klientem - nie wiem co jeszcze ale na pewno nie ma aż tylu funkcji.

Jeśli chodzi o funkcje to proponuję byś zaczął je spisywać - wszystko co Ci przychodzi do głowy. Gdy to masz to zbadaj temat w firmie i na uczelni jakiego typu ma być ta aplikacja. Nie wiem ile czasu będziesz miał na napisanie programu ale z doświadczenia po pracy inżynierskiej i zabrania się wtedy za nową technologię na pewno okaże się że wszystko będzie trwało dwa razy dłużej. Tak to już jest że wszechświat zazwyczaj zwraca się przeciwko nam ;) Jeśli to ma być aplikacja intranetowo-korporacyjna to bym stawiał na funkcje typu: tablica ogłoszeń, forum dla działów, jakieś wiki dla działów, serwis zgłoszeń(w końcu może się zepsuć komputer bo pani Irenka przesadziła z podlewaniem roślinki umieszczonej na obudowie). Tego typu rzeczy. Jeśli np. myślisz o zarządzaniu flotą, sprzętem itp. to wtedy skup się tylko na tych funkcjonalnościach. To są dwa rodzaje aplikacji - owszem fajnie zrobić moduły ale nie warto od początku robić kogel-mogel z 4 modułami do: obsługi floty, produkcji mikrosfery, sklepu bananowego i zarządzania przedszkolem - powinno to się trzymać kupy.

Co do technologii to w www nie jestem autorytetem - nawet nie robię w tym. Mogę jednak polecić by się zapoznać z frameworkiem. Co do php to ludzie polecają Zend i CakePhp - z cake kiedyś się witałem i ma to ciekawy potencjał, pozwala trzymać strukturę aplikacji. Jeśli chciałbym się pobawić w Ruby on Rails to tutaj też bawiłem się w ramach oderwania od codzienności z C++ i framework fajny - sporo generatorów, wtyczek - niektórzy narzekają że jest wolny w porównaniu z php - ja tutaj nie będę się wypowiadał bo rolę RoR niż cokolwiek z php ale to moja niepoparta doświadczeniem konkretnym fanaberia.

Na pewno będziesz potrzebował bazy danych. Tutaj radziłbym celować w Postgresql jeśli ma to być bardziej rozbudowane narzędzie. MySql raczej z czasem może stwarzać pewne bariery.

Tyle uwag kolesia spoza www.

0

W przypadku technologii lepiej jest robić coś na technologiach, które są trochę starsze czy na najnowszych? Np. Zend ma niedługo opublikować wersję 2 swojego frameworka, więc czy lepiej na nią poczekać i już na niej opierać swój projekt czy na wersji, która jest aktualnie i dzięki temu oczywiście istnieje do niej więcej materiałów pomocniczych(tutoriali, książek itp.)? To samo tyczy się innych technologii(HTML5?).

I jak to się ma do bezpieczeństwa?

0
aXe napisał(a)

W przypadku technologii lepiej jest robić coś na technologiach, które są trochę starsze czy na najnowszych? Np. Zend ma niedługo opublikować wersję 2 swojego frameworka, więc czy lepiej na nią poczekać i już na niej opierać swój projekt czy na wersji, która jest aktualnie i dzięki temu oczywiście istnieje do niej więcej materiałów pomocniczych(tutoriali, książek itp.)? To samo tyczy się innych technologii(HTML5?).

I jak to się ma do bezpieczeństwa?

Niestety nie jestem użytkownikiem technologii www ale mogę spróbować odpowiedzieć na tego posta jako programista. Co do technologii to zależy - Zend zdaje się ma już pewną renomę. Kwestia kiedy nowy Zend wyjdzie w wersji stabilnej? Jeśli jest w wersji alfa to ja bym nie tykał. Wersja beta też może być niebezpieczna. Jeśli są już wydania typu RC to można chyba zacząć korzystać z technologii z nastawieniem, że będzie się podrasowywało aplikację wraz z nowymi wersjami(nowsze wersje będą mogły wymagać drobnych poprawek oraz w wersji RC możliwe będą błędy bezpieczeństwa). Bardzo dużym plusem starszej, stabilnej wersji są dostępne materiały oraz już istniejące, przetestowane wtyczki. Musisz przeanalizować co będzie dla Ciebie najlepsze.

Co do HTML5 to chyba w to akurat warto wejść - coraz więcej narzędzi www wykorzystuje HTML5, sądzę że trzeba robić serwisy od razu przy wykorzystaniu tego. Trzeba jednak pamiętać o starych przeglądarkach bo dla nich trzeba robić hacki(starsze przeglądarki mogą nie obsługiwać HTML5 przez co trzeba kod odpowiednio dostosować). Ja bym brnął w HTML5 - kwestia Twojego nastawienia.

0

Trzeba jednak pamiętać o starych przeglądarkach bo dla nich trzeba robić hacki(starsze przeglądarki mogą nie obsługiwać HTML5 przez co trzeba kod odpowiednio dostosować)

Myślę, że mnie ten problem nie dotyczy z racji tego, że mój system ma być wyłącznie do intranetu wewnętrznego, więc administrator sieci może zainstalować odpowiednie przeglądarki na wszystkich komputerach w firmie i po problemie. Chyba, że się mylę to proszę mnie poprawić. W związku z tym będę chciał zastosować HTML5 w swoim projekcie.

Przy okazji Hostel wielkie dzięki Tobie za pomoc, naprawdę dużo mi pomogłeś. W sumie to liczyłem na większy odzew na tym forum, ale i tak trochę rzeczy się już dowiedziałem. Być może temat założyłem w dość mało popularnym dziale :)

Przy okazji jestem w fazie przeglądania różnych funkcjonalności innych systemów CMS i waham się, które wybrać, a w sumie to chciałbym mieć jak najwięcej funkcjonalności. Jednak mam taki pomysł, żeby system robić od początku tak, żeby późniejsza jego rozbudowa była prosta i polegała na dodaniu dodatkowego modułu, bądź też na wyłączeniu modułu którego nie potrzebujemy. Jest to o tyle dobry pomysł, że jak wiadomo czas na skończenie tego projektu mam ograniczony i zrobiłbym tyle ile bym zdążył, a później można by sobie pisać dodatkowe moduły wedle uznania. Widziałem takie rozwiązanie choćby w skryptach sklepów internetowych, jak osCommerce.

Mam też prośbę o jakieś dobre książki(lub artykuły) do projektowania systemów i robienia dokumentacji. Może jest gdzieś do przejrzenia projekt jakiegoś komercyjnego systemu(diagramy UML) ?

0

Co do funkcji systemu - najpierw zrób najbardziej podstawowe - zrobisz je to będziesz rozwijał dalej. Jeśli tak nie zrobisz to później będziesz miał niedosyt, cięcie funkcji a na koniec jeszcze większy niedosyt.

Co do dokumentacji i UML - ciężko jest wszystko utrzymywać w odpowiednich wersjach, zwłaszcza gdy człowiek się uczy. UML wykorzystuj w stopniu, który jest potrzebny - nie ma sensu robić setek diagramów, tylko po to by były. Jeśli chodzi o narzędzia to do UML masz np. BOUML - chyba jeden z aktualniejszych jeśli chodzi o standard UML narzędzi za free. Do dokumentacji polecam doxygen - komentujesz kod, możesz też zrobić projekt w którym po prostu sobie klepiesz helpa aplikacji i generujesz html/pdf/Latex - co dusza zapragnie.

0

Na pewno doxygen to dobre rozwiązanie? Według wikipedii:

Doxygen to generator dokumentacji dla języków C++, C, Java, Objective-C, Python, IDL, Fortran i do pewnego stopnia dla PHP, C#, D oraz ActionScript.

Mój projekt jest głównie w PHP, dlatego jestem ciekaw co oznacza stwierdzenie "do pewnego stopnia".

A co sądzisz o phpDocumentor? Został napisany w PHP, do generowania dokumentacji właśnie w tym języku.

0
aXe napisał(a)

Na pewno doxygen to dobre rozwiązanie? Według wikipedii:

Doxygen to generator dokumentacji dla języków C++, C, Java, Objective-C, Python, IDL, Fortran i do pewnego stopnia dla PHP, C#, D oraz ActionScript.

Mój projekt jest głównie w PHP, dlatego jestem ciekaw co oznacza stwierdzenie "do pewnego stopnia".

A co sądzisz o phpDocumentor? Został napisany w PHP, do generowania dokumentacji właśnie w tym języku.

Programuję w C++, więc nie mam wystarczającej wiedzy z programów do dokumentowania - sądziłem że Doxygen php też przyjmuje. W takim razie będziesz musiał sprawdzić co będzie do php najlepsze. Popatrzyłem na stronę wiki o Doxygen po angielsku i nie ma przy PHP żadnych uwag, tak samo na stronie domowej projektu nie rzuciło mi się nic w oczy. Możliwe że polska wersja wiki jest niepoprawna.

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