Rozbudowa panelu usera

0

Heh, nastaly wakacje, czyli okres bessy na forum i w calym serwisie :) Widac to rowniez w statystykach wizyt :) Nie o tym jednak :P

Chcialbym zapowiedziec, ze od wrzesnia (tak mysle) od razu ruszamy z nowymi serwisami w 4programmers.net :) O tym przy nieco innej okazji. W pierwszej kolejnosci zabieram sie za rozbudowanie panelu uzykownika, zamierzam stworzyc najwieksza w Polsce baze danych programistow ;) Rozbudowa bedzie polegala na tym, iz uzytkownik bedzie mogl dodac w serwisie swoje CV, portfolio oraz okreslic dokladne umiejetnosci i zakres zainteresowan (jezyki programowania, technologie, stopnie "wtajemniczenia"). Oczywiscie tylko dla zainteresowanych (nie bedzie koniecznosci wypelniania tych danych) z zachowaniem wszelkich danych osobowych. Rozbudowany panel zostanie wykorzystany w polaczeniu z planowanymi uslugami, ktore pozwola pracodawcom na odszukanie odpowiednich ludzi do pracy :)

Ten post to raczej ciekawostka dla osob chcacych wiedziec co jest grane [green]

0
Adam Boduch napisał(a)

uzytkownik bedzie mogl dodac w serwisie swoje CV

Jeszcze export do pdf'a i bedzie git na maksa ;)

0

Na myśl przyszło mi LinkedIn jak to przeczytałem :)
Fajnie się zapowiada.

0

Dobre by to było wszyscy by się wtedy mogli znaleźć nawzajem, informatycy / programiści / pracodawcy :] wiem , wiem, takie jest założenie tego "rozszerzonego profilu" :]

0

^^ rewelacja! w końcu najlepszy serwis o programowaniu. Niesamowity rozwoj, pamietam co tu bylo jak sie rejestrowalem... gratulacje!

0

No coz, ja ze swojej strony moge powiedziec tylko jedno: popieram pomysl ;-)

0

a czy jest ktos kto by nie popieral ? :)

0

Ja nie popieram ;]

0

Anonim nie ma panelu usera, wiec Twoj glos sie nie liczy ;P

0

A przy okazji - macie jakies pomysly na przyjazniejszy URL do profilu? Bo mozna oczywiscie zachowac dotychczasowy (ktory bedzie dzialal nadal) czyli ucp.php?id=ID usera, ale mozna wprowadzic jakis przyjemniejszy, latwiejszy do zapamietania.

Slyszalem, ze przy odpowiednich regulach mod_rewrite mozna ustalac samodzielnie subdomeny bez grzebania w DNS wowczas, byloby np. marooned.4programmers.net :) Ale nie wyobrazam sobie jak to mozna zrobic bez grzebania w konfiguracji serwera? :|

0
Adam Boduch napisał(a)

A przy okazji - macie jakies pomysly na przyjazniejszy URL do profilu? Bo mozna oczywiscie zachowac dotychczasowy (ktory bedzie dzialal nadal) czyli ucp.php?id=ID usera, ale mozna wprowadzic jakis przyjemniejszy, latwiejszy do zapamietania.

Slyszalem, ze przy odpowiednich regulach mod_rewrite mozna ustalac samodzielnie subdomeny bez grzebania w DNS wowczas, byloby np. marooned.4programmers.net :) Ale nie wyobrazam sobie jak to mozna zrobic bez grzebania w konfiguracji serwera? :|

Kiedyś też to przeczytałem, zapaliłem się i niestety nie obeszło sie bez zmian konfiguracji serwera dns.
A linki zawsze można zrobić http://4p/User/jakisuser ;)

0

no trzeba ustawić jednorazowo wildcard w DNS ale wtedy wszystko będzie chyba wskazywać na ten serwer i nie wiem czy można zachować przy tym subdomeny typu cvs.

ja bym proponował http://4programmers.net/User:jakisuser i tam by był profil usera i te wszystkie zakładki a na jednej z nich aktualna strona User:jakisuser czyli co tam kto chce sobie wpisać ... (ażeby to nie był już zwykły artykuł tylko specjalna strona której między innymi zmiana nie zostanie odnotowana na stronie głównej serwisu :> - nie wiem czy dalej tak jest ale dalej boję się tam cokolwiek wpisać bo by jeszcze ktoś to przeczytał [rotfl] )

0

Zgadzam sie z Adamo w 100% procentach

strona User:jakis user jako profil z nieedytowalną dla innych userów, nie pojawiajacą sie na stronie głównej stroną użytkownika..

0
Adam Boduch napisał(a)

Slyszalem, ze przy odpowiednich regulach mod_rewrite mozna ustalac samodzielnie subdomeny bez grzebania w DNS wowczas, byloby np. marooned.4programmers.net :) Ale nie wyobrazam sobie jak to mozna zrobic bez grzebania w konfiguracji serwera? :|

Nie tylko nie, mod_rewrite, bo już w ogóle nawet forum będzie licho działać mi na kompie ;]

A tak mówiąc poważnie, po co to? Przecież wystarczy to, co jest

0
Marek88 napisał(a)

A tak mówiąc poważnie, po co to? Przecież wystarczy to, co jest

A po to, żeby przy wszelkich staraniach się o zlecenia, itp., podawać adres potencjalnemu zleceniodawcy. A jak podawać, to niech już wygląda ładniej, jeśli jest taka możliwość. To jedno z zastosowań :)

0

A dobra...

kiedy można się spodziewać rozbudowy panelu usera?

0
Marek88 napisał(a)

kiedy można się spodziewać rozbudowy panelu usera?

AB napisał(a)

Chcialbym zapowiedziec, ze od wrzesnia (tak mysle) od razu ruszamy z nowymi serwisami w 4programmers.net

0

Nazwa usera w URL jest pomyslem spoko do czasu, az nick bedzie zawieral [a-zA-Z0-9]. Gdy pojawia sie np. polskie krzaczki, to wybaczcie, ale nie chcialbym podawac pracodawcy linku: http://%12%34%45costam%23.4programmers.net :-O
O niebo ladniej wyglada z id [wiem, ze beda dzialac wiec bede mial wybor.. ale bede czul sie pokrzywdzony, ze inni maja ladny, np. marooned.4programmers.net ;P a inni %%%]

Chcialem juz wczesniej sie tu wypowiedziec. Otoz 2 dni temu zarejestrowalem sie na dice.com i po zaledwie dobie mialem 3 telefony i 2 maile w sprawie pracy. Pracodawcy przeszukuja tamtejsza strone i jak ktos im pasuje, zglaszaja sie do niego. Na odwrot rowniez to dziala, sa ogloszenia pracy i mozne wyszukac sobie cos.
Z wypowiedzi Adama zrozumialem, ze taki wlasnie jest plan na 4p. Stad tez moja sugestia, by zapoznac sie z systemem dzialajacym na dice.com bo skoro dziala od dawna i jak widac na moim przykladzie, jest bardzo skuteczny, to nie ma sensu wywazac otwartych drzwi.

Maja oni tam kilka stron, ktore trzeba przejsc by sie u nich oglosic. Na jednej stronie dane personalne, telefon, adres. Na drugiej wybor konkretnej branzy z listy wielokrotnego wyboru oraz pola z nazwa znanego jezyka [formalnego], liczbe lat doswiadczenia i roku ostatniego uzywania jezyka. Gdzies przy koncu pojawia sie strona z wielkim textarea, mozna tam wpisac info o sobie, ktore bedzie przeszukiwane.. czyli CV [u nich to 'resume'], info o tym co sie robilo, moze przykladowe linki do swoich prac etc. Mozna dorzucic tez zalacznik.
Pracodawca ustawia sobie filterek, ze np. szuka kogos z 5 letnim doswiadczeniem w plikach wsadowych, w okolicy Los Angeles, do 30 dolcow za godzine i inne.. dostaje liste ziomali i wybiera.

I na odwrot, ziomal [programista] przeszukuje sobie oferty, moze zapisac sobie je na liscie "do obadania", moze od razu poslac maila prosto ze strony, ze jest zainteresowany - wtedy pracodawca dostaje namiar na strone ziomala i procz maila moze przejrzec jego opis.

Bardzo fajne sa tez filtry, ktore mozna sobie zdefiniowac - zapisujemy ustawienia wyszukiwarki i system przysyla nam na maila wszelkie nowe wpisy, ktore pasuja do kryterium - miodzio.

Noo.. nieco sie rozpisalem, ale moze to zainspiruje osoby (Adama :P), ktore beda siedzialy nad tym fragmentem 4p.

0

Dokladnie taki wlasnie mam zamysl :) Tyle ze to sporo roboty, ale o to dokladnie mi chodzi :)

P.S. Marooned: moze jestes po prostu tak dobry ze dostales tyle ofert, a nie serwis skuteczny :P

0

<ot>Zeby jeszcze tylko jakas doszla do skutku ;P</ot>

0

Poniewaz pare osob jest chetnych aby ruszyc nieco z kopyta z nowymi opcjami pisze tutaj jaki jest wedlug mnie zamysl tego wszystkiego (do dyskusji).

Zanim ruszymy dalej z dzialem praca (na razie mam wstepy layout tego dzialu), nalezy rozbudowac panel uzytkownika o opcje dodawania portfolio, umiejetnosci itp.

  1. Wyglad panelu uzytkownika

Jezeli chodzi o wyglad panelu uzytkownika to mysle ze mozna zostawic podzielic go na zakladki tak jak jest teraz. Dodatkowo mysle aby wywalic prawe menu aby zwiekszyc objetosc strony. Moze rowniez warto zmienic wyglad samych zakladek. Myslalem rowniez o zastosowaniu AJAXa. Tj. teraz tresc wszystkich zakladek jest ladowana na starcie co zwieksza objetosc samej strony. Mysle, aby po kliknieciu na dana zakladke ladowana byla tresc z pliku szablonu oczywiscie.

Mysle o pozostawieniu obecnego ukladu zakladek i podziale kontrolek tam sie znajdujacych. IMO nalezy wywalic pole "Jezyki programowania" z zakladki Ustawienia. Nalezy dodac dwie zakladki: Portfolio, Umiejętności.

Jeszcze dzisiaj postaram sie wrzucic na CVS zmodyfikowany kod prezentujacy jak to powinno wygladac.

  1. Portfolio

Ma umozliwiac dodawanie swoich osiagniec; proponuje taka tabele:

CREATE TABLE coyote_portfolio (
  portfolio_id smallint(5) NOT NULL auto_increment,
  portfolio_user smallint(6) NOT NULL default '0', # ID usera
  portfolio_subject varchar(255) NOT NULL default '', # tytul wpisu
  portfolio_desc text NOT NULL, # opis 
  portfolio_url varchar(255) NOT NULL default '', # odnosnik (np. do zrobionej strony WWW)
  portfolio_role tinyint(1) NOT NULL default '0', # rola w tym projekcie (patrz nizej)
  portfolio_price tinyint(1) NOT NULL default '0', # cena za wykonanie swojej fuchy (patrz nize)
  PRIMARY KEY  (portfolio_id)
) TYPE=MyISAM;

Wiadomo ze niektore umowy zabraniaja podawania ceny za wykonanie. Mysle ze pole "Cena" w formularzu byloby lista rozwijalna - np.:

50 - 100 zl
101 - 200 zl
[...]
Inna/Niepodano

Jezeli chodzi o role to proponuje osobna tabele:

CREATE TABLE coyote_role (
  role_id tinyint(1) NOT NULL auto_increment,
  role_name varchar(200) NOT NULL default '',
  PRIMARY KEY  (role_id)
) TYPE=MyISAM;

Jej zawartosc:

"Programowanie"
"Projektowanie bazy danych"
"Grafika"
"Layout"
"Testowanie"
"Marketing internetowy"
"Programowanie Flash"
"Inne"

Tyle ze w wielu przypadkach rola danego uzytkownika nie ogranicza sie do jednej ale do wielu (np. grafika oraz programowanie). Trzeba by wiec utworzyc nowa tabele (IMO): coyote_user_role (do uzgodnienia)

  1. Umiejetnosci

Na kolejnej zakladce uzytkownik bedzie mogl dodac/usunac z listy technologie ktorymi sie posluguje. Lista technologii bedzie przechowywana w tabeli:

CREATE TABLE coyote_skill (
  skill_id smallint(6) NOT NULL auto_increment,
  skill_name varchar(60) NOT NULL default '',
  UNIQUE KEY skill_id (skill_id)
) TYPE=MyISAM;

(zawartosc tabeli)

INSERT INTO `coyote_skill` VALUES (1, '.NET');
INSERT INTO `coyote_skill` VALUES (2, 'MS Access');
INSERT INTO `coyote_skill` VALUES (3, 'ActiveX');
INSERT INTO `coyote_skill` VALUES (4, 'Ada');
INSERT INTO `coyote_skill` VALUES (5, 'ADO');
INSERT INTO `coyote_skill` VALUES (6, 'ADO.NET');
INSERT INTO `coyote_skill` VALUES (7, 'Adobe GoLive');
INSERT INTO `coyote_skill` VALUES (8, 'Adobe Illustrator');
INSERT INTO `coyote_skill` VALUES (9, 'Adobe Photoshop');
INSERT INTO `coyote_skill` VALUES (10, 'Apache');
INSERT INTO `coyote_skill` VALUES (11, 'ASP');
INSERT INTO `coyote_skill` VALUES (12, 'ASP.NET');
INSERT INTO `coyote_skill` VALUES (13, 'Assembler');
INSERT INTO `coyote_skill` VALUES (14, 'Basic');
INSERT INTO `coyote_skill` VALUES (15, 'C');
INSERT INTO `coyote_skill` VALUES (16, 'C++');
INSERT INTO `coyote_skill` VALUES (17, 'CGI');
INSERT INTO `coyote_skill` VALUES (18, 'Cobol');
INSERT INTO `coyote_skill` VALUES (19, 'COM/DCOM');
INSERT INTO `coyote_skill` VALUES (20, 'CORBA');
INSERT INTO `coyote_skill` VALUES (21, 'Crystal Reports');
INSERT INTO `coyote_skill` VALUES (22, 'CSS');
INSERT INTO `coyote_skill` VALUES (23, 'DB2');
INSERT INTO `coyote_skill` VALUES (24, 'dBase');
INSERT INTO `coyote_skill` VALUES (25, 'Delphi');
INSERT INTO `coyote_skill` VALUES (26, 'DHTML');
INSERT INTO `coyote_skill` VALUES (27, 'FastCGI');
INSERT INTO `coyote_skill` VALUES (28, 'Flash');
INSERT INTO `coyote_skill` VALUES (29, 'FreeBSD');
INSERT INTO `coyote_skill` VALUES (30, 'Gnome');
INSERT INTO `coyote_skill` VALUES (31, 'HTML');
INSERT INTO `coyote_skill` VALUES (32, 'Infromix');
INSERT INTO `coyote_skill` VALUES (33, 'J2EE');
INSERT INTO `coyote_skill` VALUES (34, 'Java');
INSERT INTO `coyote_skill` VALUES (35, 'JavaScript');
INSERT INTO `coyote_skill` VALUES (36, 'Linux');
INSERT INTO `coyote_skill` VALUES (37, 'Lisp');
INSERT INTO `coyote_skill` VALUES (38, 'Macintosh');
INSERT INTO `coyote_skill` VALUES (39, 'MFC');
INSERT INTO `coyote_skill` VALUES (40, 'MySQL');
INSERT INTO `coyote_skill` VALUES (41, 'ODBC');
INSERT INTO `coyote_skill` VALUES (42, 'Oracle');
INSERT INTO `coyote_skill` VALUES (43, 'Paradox');
INSERT INTO `coyote_skill` VALUES (44, 'Perl');
INSERT INTO `coyote_skill` VALUES (45, 'PL/SQL');
INSERT INTO `coyote_skill` VALUES (46, 'Python');
INSERT INTO `coyote_skill` VALUES (47, 'Sybase');
INSERT INTO `coyote_skill` VALUES (48, 'Uml');
INSERT INTO `coyote_skill` VALUES (49, 'Visual Basic');
INSERT INTO `coyote_skill` VALUES (50, 'Visual Basic.NET');
INSERT INTO `coyote_skill` VALUES (51, 'C#');
INSERT INTO `coyote_skill` VALUES (52, 'Win32 API');
INSERT INTO `coyote_skill` VALUES (53, 'Windows 2000');
INSERT INTO `coyote_skill` VALUES (54, 'Windows 3.x');
INSERT INTO `coyote_skill` VALUES (55, 'Windows 95/98');
INSERT INTO `coyote_skill` VALUES (56, 'Windows CE');
INSERT INTO `coyote_skill` VALUES (57, 'Windows NT');
INSERT INTO `coyote_skill` VALUES (58, 'Windows XP');
INSERT INTO `coyote_skill` VALUES (59, 'Wi-Fi');
INSERT INTO `coyote_skill` VALUES (60, 'XHTML');
INSERT INTO `coyote_skill` VALUES (61, 'XML');

To jest zawartosc prostej tabeli, ktora zawiera liste technologii, potrzeba natomiast jeszcze jednej ktora przechowywac bedzie konkretne pozycje w zaleznosci od usera:

CREATE TABLE `coyote_user_skill` (
  `user_id` smallint(6) unsigned NOT NULL default '0',
  `user_skill` smallint(2) unsigned NOT NULL default '0',
  `user_quality` tinyint(1) unsigned NOT NULL default '0',
  PRIMARY KEY  (`user_id`)
) TYPE=MyISAM;

Myslalem zeby w polu user_quality przechowywac informacje na temat doswiadczenia w danej technologii (np. 2-4 lat, 1 rok itd).

0

Przydałaby się też możliwośc dodawania miniaturek wykonanych projektów. Najlepiej jakby dało się podać link do miniaturki, bądź wrzucić ją na serwer. Podobnie jak to jest z avatarami.

0

Zgadza sie nav.

Do mojego poprzedniego postu dodam jeszcze tyle ze moze zamiast ajaxu zrobic to standardowo (z przeladowaniem strony) gdyz ajax niekiedy sprawia problemy na IE (zabezpieczenia ActiveX). Wiec moze pozostawic ajaxowi jakies mniejsze znaczenie.

0

no to AJAX z bramką z przeładowaniem dla osób w ogóle bez JavaScriptu
co do ostatniego zdania z user_quality to czemu w takim razie nie user_experience ;P

0

Moje spostrzezenia i uwagi oparte beda o to, co widzialem na wspominamym wczesniej dice.com - strona, ktora robi to od dawna i ma spore powazanie oraz sile przebicia.

Oczywiscie 'expirience' a nie 'quality' - ale koniecznie dodatkowe pole "ostatnio uzywalem w [rok]" bo co z tego, ze ktos ma 8 lat doswiadczenia w Pascalu skoro uzywal go ostatnio w 1995. Oznacza to, ze nie jest na biezaco i nie jest dobrym kandytatem na arcywymagajace stanowisko [zakladamy szczerosc].

url do projektu - czemu tylko jeden? reszte musze umieszczac w opisie.. wiec albo wszystkie w opisie albo wszystkie przez osobne pole. Np. moj ostatni projekt, ktorym "chwale" sie w zgloszeniach o prace mozna zobaczyc w calkowicie 2 roznych wersjach wiec podaje 2 rozne linki.

AJAX.. sugerowalbym jednak podejscie a'la gmail: ajax dla wszystkich - jak sie nie uda zainicjowac to otrzymujemy inna wersje strony bez obslugi ajaxa [tudziez w ogole JS]. I nie chodzi mi tylko o to miejsce, ale co calego Coyote [tak, zdaje sobie sprawe, ze to kupa chrzanienia, ale jak cos robic to porzadnie.. mozna po prostu doadc "todo" aby stworzyc kiedys tam wersje alternatywna w zaleznosci, czy user moze uzywac ajaxa/js].

Oczywiscie wywalic ten archaizm jakim jest pole 'jezyki' bo i tak polowa userow pisze tam bzdury. Teraz bedzie osobny dzial na "pochwalenie" sie.

Nie podoba mi sie liniowa lista "technologii". Prosilbym o przekonanie mnie, ze to dobry pomysl.. albo chociaz, ze lepszy, niz lista posegregowana np. na: jezyki, bazy, systemy operacyjne, etc. Dzieki temu mozna by oddzielic te informacje w profilu a nie robic masowki typu: [lata doswiadczenia] [wybieramy np. 'windows' albo 'pascal' albo 'mysql']
Wystarczy dodac drugie pole, id kategorii oraz tabelke z kategoriami.

Oczywiscie dochodzi kolejna pozycja do admin-panela, ktory [wierze w to! :P] kiedys powstanie :) czyli zarzadzanie tym, co user moze wybrac.

Widzialoby mi sie tez takie rozwiazanie, ze user nie jest ograniczony do stalej ilosci "technologii" ktora moze wybrac w opisie doswiadczenia. Tu bym widzial ajaxa w akcji: mamy jedna [albo zalozmy od razu 5] pozycje na doswiadczenie i link "dodaj nastepna" - jak dodawanie plikow do zalacznikow maili na gmailu - identycznie - dzial to wysmienicie.

Poki co to chyba tyle.. jutro tu zajrze, zobacze jak idzie dyskusja i moze cos dodam :)

Adamie.. to spora szansa dla 4p, bo taka funkcjonalnosc moze przyniesc spore profity [szeroko rozumiane] wiec... zalecalbym nie spieszyc sie [w sensie, nie wrzucac juz, zaraz plikow na cvs z wlasna wizja] ale poczekac na wyniki debaty :)

Houk!

0
  1. ja myślę że w polu powinien być jeden URL - taki główny, tj. żeby np po kliknięciu w miniaturkę przekierować na tą stronę bez konieczności grzebania w opisie, a jeśli ktoś chce więcej info bo jest zaciekawiony projektem, to wchodzi w opis i ma tam więcej informacji, w tym też linków
    a jeśli ktoś ma tak zróżnicowane 2 wersje no to może dodać jako dwa projekty - takie jest moje zdanie

chociaż z drugiej strony przydałoby się też może żeby było można dodać większą ilość miniaturek

  1. chodzi ci o całkiem inną wersję strony ? ale to chyba tylko nie potrzebna robota, bo można to na jednej stronie jeszcze pogodzić ze sobą

  2. kto tam pisze bzdury ? co za jeden ? ;P

  3. no to chyba tak miało być w zamiarach ? :>

0

Oto jak moim zdaniem powinien wygladac panel usera z punktu widzenia innego uzytkownika :) (czyli forma podgladowa panelu):

www.tvk.wroc.pl/~tvk324a/ucp.jpg

Podzial na kilka zakladek. Kolor szary oznacza, ze user nie dodal np. swojego portfolio lub listy kwalifikacji.

Marooned: jezeli chodzi o podzial na "jezyki programowania", "bazy danych" na liscie kwalifikacji to jestem za. Jezeli chodzi o URL do danego projektu to jestem zdania Adamo - wystarczy jeden (glowny).

0

Dobra.. co do URL to oki, moze byc jeden ale przydaloby sie dodatkowe pole na krotki opis, w ktorym mozna napisac zarowno "finalna wersja wygladu" jak i "w opisie znajduje sie wiecej linkow do projektu" etc. varchar(255) styknie a wszyscy beda zadowoleni :)
[lubie dyskusje :)]

Co do wygladu zaproponowanego przez Adama.

  1. na pewno wywalic nikomu niepotrzebne w tym miejscu menu, ktore zajmuje 1/3 strony... [koniecznie!]
  2. cos mi tam jeszcze ogolnie nie pasuje.. ale nie mam jakis sprecyzowanych koncepcji...
0

ale jak miało by to wyglądać od strony usera o którym jest ta strona ?

tzn. na zakładce kwalifikacje byłoby wypisana tylko lista taka krótka typu

co - ile doświadczenia - kiedy ostatnio
...

?

// sorry, w tym miejscu był błąd wynikający z nieumiejętności czytania ze zrozumieniem ;P

ale jak z tym podziałem ? w tej tabeli będzie dodatkowe pole powiedzmy "skill_type" i dodatkowa tabela zawierająca ciągi "Systemy operacyjne", "Języki programowania" itd ?

0

Jezeli chodzi o doswiadzczenie danej technologii - to oczywiscie 'user_experience'. Chodzi mi rowniez o pole user_quality aby mogl ocenic swoja wiedze z danej technologii (podstawowa, srednia, bardzo dobra).

Adamo: jezeli chodzi o 'skill_type' to mysle ze to pole moze byc typu TINYINT(1), w ktorym wartosc 1 oznacza np. jezyki programowania, 2 - bazy danych itd.

Jezeli chodzi o wyglad panelu uzytkownika sluzacego do edycji to jeszcze nie wymyslilem :/ Brak czasu, a jutro jeszcze wyjezdzam :/

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