de Richard

Cum se construiește de la zero o aplicație de management de proiect în PHP și MySQL

Cum se construieste o aplicatie de gestionare a proiectelor in

Încercarea de a găsi o aplicație de gestionare a proiectelor este o sarcină descurajantă: doriți un sistem cu funcții puternice și trebuie să primiți un buy-in de la colegii dvs. De cele mai multe ori, rămâneți cu un sistem umflat plin de caracteristici pe care nu le veți folosi niciodată.

Vestea bună este că se pare că nu este atât de dificil să-ți construiești unul de la zero. După ce ați citit acest tutorial, ar trebui să aveți o aplicație curată, bine concepută, de gestionare a proiectelor, care funcționează în mai puțin de o oră.

Ce este o aplicație de management de proiect?

O aplicație de management de proiect este un sistem software utilizat pentru planificarea proiectelor, alocarea resurselor, urmărirea componentelor proiectului și gestionarea schimbărilor.

În acest tutorial, vom construi un sistem simplu de gestionare a proiectelor în PHP, pe care angajații și managerii îl pot folosi pentru colaborare și comunicare între părțile interesate ale proiectului.

Ce este într-o aplicație de management de proiect?

Vom crea un sistem PM simplu și ușor de personalizat pentru a urmări proiectele, inclusiv repere, sarcini, ore, costuri și multe altele. Deoarece fiecare proiect este unic, acest tutorial înseamnă doar să construim o bază de aplicație; ar trebui să îl puteți extinde cu ușurință pe baza cerințelor dvs.

În aplicația noastră de management de proiect, angajații vor putea:

  • Vizualizați sarcinile lor
  • Conectați-vă ore lucrate

Managerii vor putea:

  • Gestionați proiectele
  • Gestionați repere
  • Gestionați sarcinile
  • Gestionați costurile și orele
  • Gestionați resursele angajaților

Elementele de bază ale unui sistem de management al proiectului

1611340452 893 Cum se construieste o aplicatie de gestionare a proiectelor in
Blocuri de bază ale unui sistem tipic de management al proiectelor

Iată funcțiile principale ale unui sistem de management al proiectului:

  • Planificarea proiectului: Pentru a defini un program al proiectului, un manager de proiect poate utiliza software-ul pentru a mapa sarcinile proiectului și pentru a descrie vizual interacțiunile sarcinilor.
  • Managementul sarcinilor: Permite managerului de proiect să creeze și să aloce sarcini, să stabilească termene limită și să producă rapoarte de stare.
  • Managementul resurselor: Definește responsabilitățile – cine ar trebui să facă ce.
  • Bugetarea și urmărirea costurilor: O aplicație bună de gestionare a proiectelor facilitează raportarea bugetului, precum și vizualizarea, notificarea și actualizarea costurilor pentru părțile interesate.
  • Urmărirea timpului: Software-ul trebuie să aibă capacitatea de a urmări timpul petrecut pentru toate sarcinile și de a menține înregistrări pentru consultanți terți.

Cerințe de sistem

  • PHP 5.3+
  • MySQL sau MariaDB
  • phpGrid

Crearea unei baze de date de gestionare a proiectelor

Vom începe prin crearea bazei noastre de date de management de proiect. Tabelele principale pe care le vom folosi sunt:

  • Clienți – datele companiei clienților
  • Contacte – datele de contact ale clientului. Un client poate avea unul sau mai multe contacte.
  • Proiecte – Informatii despre proiect
  • Repere – reperul proiectului
  • Sarcini – sarcini de proiect
  • Ore – timpul petrecut pentru fiecare sarcină
  • Cheltuieli – costul unei sarcini
  • Utilizatori – datele utilizatorului; unul poate fi fie angajat, fie manager
Cum se construieste o aplicatie de gestionare a proiectelor in

Alte mese (tabele de căutare):

  • ms_status
  • proj_status
  • task_status

Schema completă a schemei bazei de date

O schemă a bazei de date este structura care reprezintă vizualizarea logică a întregii baze de date: tabele, vizualizări și chei primare și externe. O schemă de baze de date include toate entitățile și relațiile dintre ele.

Mai jos este diagrama bazei de date a aplicației noastre simple de gestionare a proiectelor. Simbolul cheii din fiecare tabel reprezintă cheia principală a tabelului, în timp ce lupa indică o cheie străină care o leagă de un alt tabel (tabel de căutare) din baza de date.

1611340453 838 Cum se construieste o aplicatie de gestionare a proiectelor in

simple_pm_install.sql

Odată ce ați înțeles structura tabelului bazei de date, obțineți fișierul simple_pm_install.sql sql script din repertoriul GitHub al acestui tutorial, apoi executați scriptul sql folosind un instrument MySQL precum MySQL Workbench sau Sequel Pro. Aceasta va crea o nouă bază de date numită simple_pm și tabelele de care avem nevoie în acest tutorial.

Configurați phpGrid

Managementul nostru simplu de proiect conține multe DateGrids. DataGrid este un tabel de date tip foaie de calcul care afișează rânduri și coloane reprezentând înregistrări și câmpuri din tabelul bazei de date. DataGrid oferă utilizatorului final posibilitatea de a citi și scrie în tabelele bazei de date de pe o pagină web.

Pentru a crea DataGrid, folosim un instrument dataGrid de la phpGrid . Motivul pentru care folosim un instrument în loc să ne construim grilele de la zero este că dezvoltarea unui DataGrid în PHP este de obicei extrem de plictisitoare și predispusă la erori. Biblioteca phpGrid DataGrid va gestiona toate bazele de date interne CRUD (Creați, eliminați, actualizați și ștergeți) operațiuni pentru noi oferind rezultate mai rapide și mai bune cu o codare minimă.

Pentru a instala phpGrid, urmați acești pași:

  1. Dezarhivați fișierul de descărcare phpGrid.
  2. Încărcați folderul phpGrid în phpGrid pliant.
  3. Finalizați instalarea configurând fișierul conf.php fişier.

Înainte de a începe codarea, trebuie să includem următoarele informații în `conf.php` fișierul de configurare phpGrid. Iată un exemplu de setări de conexiune la baza de date:

define(‘PHPGRID_DB_HOSTNAME’, ‘localhost’); define(‘PHPGRID_DB_USERNAME’, ‘root’); define(‘PHPGRID_DB_PASSWORD’, ‘’); define(‘PHPGRID_DB_NAME’, ‘custom_pm’); define(‘PHPGRID_DB_TYPE’, ‘mysql’);
  • PHPGRID_DB_HOSTNAME – adresa IP a serverului sau numele gazdei
  • PHPGRID_DB_USERNAME – numele utilizatorului bazei de date
  • PHPGRID_DB_PASSWORD – parola bazei de date
  • PHPGRID_DB_NAME – numele bazei de date
  • PHPGRID_DB_TYPE – tipul bazei de date
  • PHPGRID_DB_CHARSET – întotdeauna „utf8” în MySQL

Șablon de pagină

1611340453 880 Cum se construieste o aplicatie de gestionare a proiectelor in

Pagina noastră va fi alcătuită dintr-un antet, meniul, corp, și subsol. În loc să creăm în mod repetat aceleași elemente de pagină, vom începe prin crearea unui șablon de pagină reutilizabil.

head.php

Acesta este un antet de șablon HTML5 de bază; include un link către o foaie de stil personalizată care va fi creată într-un pas ulterior.

1611340453 519 Cum se construieste o aplicatie de gestionare a proiectelor in

Observați utilizarea $_GET['currentPage']. Fiecare pagină va seta o valoare care va evidenția numele paginii curente din bara de meniu de sus.

Includeți următorul cod în style.css pentru stilul meniului; va transforma lista neordonată de mai sus într-un meniu.

Pur și simplu include etichetele de închidere pentru elementele pe care le-am deschis în antet:

Șablonul nostru complet de pagină reutilizabilă

Conținutul principal va merge după titlul secțiunii.

Pagini principale de management de proiect

1611340454 30 Cum se construieste o aplicatie de gestionare a proiectelor in

Aplicația noastră de management de proiect pentru manageri are patru pagini:

  • Clienți
  • Detalii client
  • Proiecte
  • detaliile proiectului

Clienți pagina afișează o listă de clienți cu linkuri către detalii individuale ale clientului (Detalii client pagină).

Proiecte pagina afișează o listă a proiectelor gestionate cu linkuri către detaliile proiectului (detaliile proiectului pagină).

Mașină de proiectare

Iată macheta noastră de proiectare a aplicației de management de proiect pentru managerii de proiect care gestionează unul sau mai multe proiecte și atribuie sarcini angajaților.

1611340454 985 Cum se construieste o aplicatie de gestionare a proiectelor in

Clienți

Când un manager se conectează la sistemul de management al proiectului, prima pagină pe care o vede este Clienți pagina care conține o listă completă a companiilor.

Următorul cod ne va oferi o listă de clienți.

  • Prima linie creează un obiect phpGrid prin trecerea instrucțiunii SELECT SQL cu cheia sa principală id urmat de numele tabelului bazei de date – clients.
  • A doua linie creează o adresă URL dinamică din cheia principală „id”; folosește o funcție numită set_col_dynalink(). Această funcție setează o adresă URL specifică de hyperlink HTML coloană pentru a afișa, pe baza valorilor dinamice. Dacă cheia principală „id” are valoarea 100, va afișa o adresă URL ca aceasta client-details.php?id=100 care detaliază pagina de detalii a clientului.
  • A treia linie, enable_edit(), face DataGrid editabil și toate operațiunile CRUD (Creare, Citire, Actualizare, Ștergere) sunt acum accesibile.
  • Ultima linie apelează display() pentru a reda DataGrid pe ecran.

Puteți afla mai multe demonstrații mai jos folosind aceste funcții:

Afișează adresa URL dinamică | phpGrid
Din exemplul de mai sus, aflăm că phpGrid poate afișa o adresă URL statică simplă folosind metoda set_col_link (). Cu toate acestea, este …phpgrid.comCRUD PHP Datagrid (Datagrid editabil) * | phpGrid
Grila de date PHP nu este editabilă în mod implicit. Puteți activa editarea apelând pur și simplu enable_edit (). Whala!phpgrid.com

Detalii client

De la Clienți pagina clientului, numele clientului are un hyperlink care redirecționează către Detalii client pagina pentru clientul respectiv atunci când ați făcut clic.

1611340454 44 Cum se construieste o aplicatie de gestionare a proiectelor in

De la Detalii client pagina, trebuie să obținem ID-ul clientului care este transmis ca parametru URL.

În aplicația noastră, ID-ul clientului ar trebui să fie întotdeauna un număr întreg. Astfel, folosim PHP intval() funcție pentru a vă asigura că ID-ul clientului este returnat ca număr întreg.

Următorul cod afișează proiectele asociate cu curentul $clientId folosind funcția de filtrare set_query_filter(). În plus, facem DataGrid editabil cu enable_edit() funcţie; phpGrid se va ocupa de orice operațiuni CRUD pentru noi.

Detalii client> Proiectcts

După cum probabil observați, folosim din nou aceeași funcție, set_col_dynalink(), pentru a crea hyperlinkuri către detaliile proiectului folosind ID-ul proiectului. Vom intra în project-details.php pagina următoare.

<h4>Projects</h4>

Detalii client> Contacts

Sub Proiecte DataGrid, o listă de contacte asociate cu $clientid este afișat utilizând aceleași funcții set_query_filter() și enable_edit().

Contacte

Proiecte

Acum, să construim Proiecte pagină.

Proiecte pagina afișează o listă a proiectelor gestionate. Este foarte asemănător cu Clienți pagină, cu excepția faptului că tabelul bazei de date este „Proiecte”, iar hyperlinkurile au adresa URL project-details.php in loc de client-details.php.

detaliile proiectului

De la Proiecte pagină, fiecare nume de proiect are un hyperlink care redirecționează către fiecare persoană detaliile proiectului pagină la clic.

1611340454 523 Cum se construieste o aplicatie de gestionare a proiectelor in

Și din detaliile proiectului pagina, preluăm ID-ul proiectului pentru parametrul URL.

Arată cunoscut? Pentru ca este! Ar trebui pentru că ambele Proiecte și detaliile proiectului urmează cam același model de codare folosit în Clienți și Detalii client pagini; nu există chiar atât de multe surprize.

detaliile proiectului pagina este alcătuită din următoarele grile, toate filtrate de $projectId obținut din parametrul URL.

  • Repere
  • Sarcini
  • Ore
  • Cheltuieli

Repere

O etapă importantă marchează un eveniment major într-o cronologie a proiectului. Aici, putem afișa cu ușurință toate etapele unui proiect prin filtrarea valorii $projectId. Managerii de proiect au drepturile de acces necesare pentru a modifica etapele.

La fel, putem filtra și afișa cu ușurință o listă de sarcini pentru proiectul curent.

Cred că probabil îl obțineți acum. Iată codul pentru cele două grile de date rămase.

Pagina angajaților

Acum putem trece la ultima parte a tutorialului, Angajați pagină. Angajații se pot autentifica pentru a vizualiza sarcinile de proiect active care le-au fost atribuite, pentru a urmări orele de activitate și costurile. Responsabilitatea lor este simplă: să monitorizeze sarcinile și să înregistreze orele lucrate la orice sarcină specifică a proiectului.

Mașină de proiectare

1611340455 785 Cum se construieste o aplicatie de gestionare a proiectelor in

Angajați pagina are un singur element de meniu: Sarcini.

1611340455 526 Cum se construieste o aplicatie de gestionare a proiectelor in

Sarcinile mele active

Prima parte a paginii afișează o listă a sarcinilor active atribuite angajatului curent. Fiecare sarcină va avea orele raportate de angajatul actual; aceasta este o situație perfectă în care să utilizați un subgridă phpGrid.

De asemenea, trebuie să folosim set_query_filter() pentru a afișa numai activități active care au valoarea de stare „2” și numai pentru angajatul curent.

În scopuri demonstrative, am codificat hard ID-ul de angajat la 2. Într-o aplicație din lumea reală, valoarea ID-ului de angajat ar trebui stocată și recuperată folosind SESIUNEA PHP.

Apoi creăm activul Sarcini DataGrid pentru angajatul actual. Observați funcția de filtrare.

Odată ce am definit grila pentru activitățile active, creăm un DataGrid pentru a înregistra orele raportate de angajatul actual.

În cele din urmă, set_subgrid() provoacă Ore DataGrid să devină o subgrilă a Sarcini Grila de date. Câmpul de conectare din Ore subgrila este „TaskID”, care este al doilea parametru, și în grila principală Sarcini, este „id”, al treilea parametru.

1611340455 180 Cum se construieste o aplicatie de gestionare a proiectelor in

Istoria orelor mele

În cele din urmă, am dori să afișăm un DataGrid numai în citire folosind datele din Ore tabel pentru actualul angajat în scopuri de revizuire.

Observați că am folosit o funcție numită set_jq_gridName(). Puteți găsi mai multe documente aici. Această funcție setează un nume de obiect unic pentru DataGrid. În mod implicit, phpGrid folosește numele tabelului bazei de date ca nume de obiect intern. Deoarece am creat deja un DataGrid din Ore tabelul din ultima parte, trebuie să setăm un nume unic pentru a doua noastră Ore Grila de date.

Capturi de ecran ale aplicației

Managerii

1611340455 177 Cum se construieste o aplicatie de gestionare a proiectelor in
1611340456 745 Cum se construieste o aplicatie de gestionare a proiectelor in

Angajat

1611340456 250 Cum se construieste o aplicatie de gestionare a proiectelor in

Demo live

Conectați-vă ca manager | Autentificare ca angajat

Descărcați codul sursă

phpcontrols / phpgrid-project-management
phpgrid-project-management – Aplicație demonstrativă completă de management de proiect phpGridgithub.com

Mulțumesc pentru lectură. Dacă ți-a plăcut acest articol, te rugăm să apeși butonul de batere? pentru a-i ajuta pe alții să-l găsească și furmează-mă pe Twitter.

1611340456 617 Cum se construieste o aplicatie de gestionare a proiectelor in