Aplicatie Online de Ticketing
Introducere
Ticketul reprezintă un sistem software pentru gestiunea incidentelor ce servește la organizarea cererilor de suport, întrebărilor, plângerilor sau alte comunicații cu clienții sau utilizatorii.
O altă definiție a ticketului reprezintă ajutorul acordat utilizatorilor (nu personalului tehnic) în rezolvarea problemelor întâlnite în exploatarea aplicațiilor software sau a echipamentelor de birou.
Dacă pentru echipamentele de birou există mai puține solicitări, pentru problemele apărute în utilizarea diverselor aplicații nevoia este în continuă creștere. Lipsa suportului tehnic în astfel de situații conduce la pierderi substanțiale de timp și bani pentru organizații și angajați.
În funcție de natura problemei suportul tehnic se poate acorda telefonic, prin e-mail, prin deplasarea/relocarea personalului specializat la sediul clientului sau prin crearea unui ticket pe site-uri specializate.
Aplicația pe care am realizat-o are ca scop rezolvarea unor probleme intr-un mod mai ușor decât aplicațiile existente, existând o conversație intre operator și client printr-un e-mail unde operatorul poate cere clientului mai multe detalii referitoare la problemă.
Obiectivele acestei lucrări sunt: rezolvarea ticketului trimis de client intr-un mod eficient, trimiterea unui e-mail către client prin care se face referire la problemele apărute în timpul rezolvării ticketului(dacă apar).
Pentru a realiza obiectivele, am creat o aplicație web care folosește informații dintr-o baza de date create în phpMyAdmin(php-MySQL), iar interfața a fost creată utilizând limbajele HTML și PHP.
Utilizatorul are la dispoziție: crearea unui ticket prin completarea unui formular cu datele despre problema avută. Acesta beneficiază si de un e-mail prin care îi poate descrie operatorului problema în detaliu.
Tehnologii utilizate
PHP și HTML
PHP este un limbaj de programare. Numele PHP provine din engleză și este un acronim recursiv: Php: Hypertext Preprocesor.
Folosit inițial pentru a produce pagini web dinamice, este folosit la scară largă în dezvoltarea paginilor și aplicațiilor web.
Se folosește în principal înglobat in codul HTML.
Caracteristici:
-familiaritatea: sintaxa limbajului este foarte ușoară combinând sintaxele unora din cele mai populare limbaje Perl sau C;
-simplitatea: sintaxa limbajului este destul de liberă, nu este nevoie de includere de biblioteci sau de directive de compilare;
-eficiența: PHP se folosește de mecanisme de alocare a resurselor, foarte necesare unui mediu multiutilizator, așa cum este web-ul;
-securitate: PHP-ul pune la dispoziția programatorului un set flexibil și eficient de măsuri de siguranță;
-gratuitate: este probabil cea mai importantă caracteristică a PHP-ului.Dezvoltarea PHP-ului sub licența open-source a determinat adaptarea rapidă a PHP-ului la nevoile web-ului, eficientizarea și securitatea codului.
Exemplu :
<?php
session_start();
if(session_destroy()) {
header("Location: login.php"); }
?>
HTML înseamnă HyperText Markup Language și este un limbaj de marcare utilizat pentru crearea paginilor web ce pot fi afișate într-un browser.Scopul HTML este mai degrabă prezentarea informațiilor, paragrafe, fonturi, tabele, etc decât descrierea semanticii documentului.
Paginile HTML sunt formate din etichete sau tag-uri și au extensia “.html” sau “.htm”. În majoritate aceste etichete sunt pereche, una de deschidere <eticheta> și alte de închidere</eticheta>.
Componența unui document HTML este:
-zona head cu etichetele <head> </head>;
-zona body cu etichetele <body> </body> sau <frameset> </frameset>.
Exemplu :
<html>
<head>
<link href="style.css" rel="stylesheet" type="text/css" />
<title>Tickete</title>
</head>
<body>
<header>
<?php
session_start();
if($_SESSION["nume"]) {
?>
<h1>Bine ai venit</h1> <?php echo $_SESSION["nume"]; ?>
<a href="logout.php"><button>Log out</button></a>
<?php
}
?>
</header>
…………………………
</body>
</html>
JavaScript
JavaScript(JS) este un limbaj de programare orientat pe obiect bazat pe conceptul prototiputilor.
Este folosit mai ales pentru introducerea unor funcționalități în paginile web, codul Javascript din aceste pagini fiind rulat de către browser.
Limbajul este binecunoscut pentru folosirea sa în construirea siturilor web, dar este folosit și pentru accesul la obiecte incastrate în aplicații.
Caracteristici :
-JavaScript poate fi înglobat în HTML : JavaScript folosește HTML ca modalitate de a sări în cadrul de lucru al aplicațiilor pentru Web și-i extinde capacitățile normale, asigurând evenimente pentru etichetele HTML și permțând acestui cod condus de eveniment să se execute din interiorul său.
-JavaScript este dependent de mediu : JavaScript este un limbaj de criptare, nu un instrumentîn sine ci pentru sine. Software-ul care rulează de fapt programul JavaScript pe care îl scrieți este motorul de interpretare din mediul – Netscape Navigator, Microsoft Internet Explorer sau unul dintre motoarele pe parte de server. Când este inclus într-un document HTML JavaScript depinde de browser pentru a fi recunoscut.
-JavaScript este un limbaj interpretat : Ca majoritatea limbajelor descriptoare, JavaScript este interpretat de browser înainte de a fi executat. JavaScript nu este compilat în binar – ca un fisier exe -, ci rămâne parte a documentului HTML la care este atașat. Dezavantajul unui limbaj interpretat este ca executarea lui durează mai mult, deoarece browserul compilează instrucțiunile în timpul rulării chiar înainte să le execute. Avantajul constă în faptul că este mult mai ușor să actualizați codul sursă.
-JavaScript este un limbaj flexibil în privința tipului de date : JavaScript diferă mult de limbajele stricte în privința tipului de date, ca Java sau C++, în care trebuie să declarați toate variabilele de un anumit tip înainte de a le utiliza.
-JavaScript nu este Java
– JavaScript este multifuncțional : JavaScript are o mulțime de fațete și poate fi folosit în multe context, pentru a oferi soluții la problemele din Web.
– JavaScript evoluează : Există 6 versiuni (de la 1.0 la 1.5).
Exemplu :
<script src="//code.jquery.com/jquery-1.10.2.js">
</script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js">
</script>
CSS
CSS înseamnă Cascading Style Sheets și este un standard pentru formatarea elementelor unui document HTML. Stilurile se pot atașa elementelor HTML prin intermediul unor fișiere externe sau în cadrul documentului, prin elementul <style> și sau atributul style.
Sintaxa CSS-ului este diferită de cea a HTML-ului. Însă nu este foarte dificil de înțeles css-ul dacă ești atent și începi să înțelegi cum lucrează. Sintaxa CSS-ului este compusă din 3 părți :
selector { proprietate : valoare}
Selectorul este elementul HTML pe care dorești să-l stilizezi.
Proprietatea este numele/titlul proprietății respective.
Valoarea reprezintă stilul pe care îl aplici proprietății.
phpMyAdmin
phpMyAdmin este un sistem de gestiune a bazelor de date MySQL liber, open source, scris în PHP și destinat administării bazelor de date prin intermediul unui browser web.
Prin phpMyAdmin se pot întreprinde diverse operații cum ar fi crearea, modificarea sau ștergerea bazelor de date, tabelelor, câmpurilor sau rândurilor; executarea de comenzi(interogări)SQL.
Caracteristici :
-interfața web intuitivă;
-suport pentru cele mai multe caracteristici MySQL : caută și șterge baza de date, tabele, câmpuri și indexuri;
-creează, copie, redenumește, modifică baza de date, tabele, câmpuri și indexuri;
-execută și editează orice instrucțiune SQL;
-importă date din CSV și SQL și exportă in diferite formate: XML, PDF, ISO/IEC 26300, Word, etc;
-administrează servere multiple;
-gestionează utilizatorii, procedurile, triggere stocate și privilegiile MySQL;
-transformarea datelor stocate în orice format, folosind un set de funcții predfinite, cum ar fi afișarea BLOB-date caimagine sau descărcări-link;
Notepad ++
Notepad ++ este un editor de text gratuit pentru Windows.
Acesta permite editarea codului sursă specific unui număr mare de limbaje de programare, precum C, C++, HTML, PHP, etc.
Facilități:
-interfața simplă și plăcută;
-oferă posibilitatea de a lucra cu mai multe fișiere simultan, ne mai fiind nevoiți să deschidem de 5 ori programul pentru a lucra cu 5 fișiere text/surse diferite;
-se poate trece ușor de la un fișier la altul cu ajutorul barei pentru tag-uri, asemănătoare cu cea din firefox;
-are posibilitatea de a salva toate fișierele cu care lucrăm sau să le închidem pe toate;
-pe lângă modalitatea tradițională de a deschide fișiere(file-open) se poate folosi drag&drop;
-un alt instrument folositor este sistemul de căutare avansat care ne permite să căutăm cuvintele în toate fișierele deschise și chiar să înlocuim cuvintele;
-auto-completare;
-codare colorată;
-adăugarea de plug-in-uri utile: compare, NppFTP, Webedit,etc.
Serverul APACHE
Apache este un server HTTP de tip open source. Apache a jucat și joacă un rol important în dezvoltarea webului, fiind folosit în prezent în circa 65.2% din paginile web.
Apache este un server web cu o contribuție notabilă la dezvoltarea internetului.Este dezvoltat de o comunitate deschisă de programatori sub emblema Apache Software Foundation.
Aplicația este disponibilă pentru o mare varietate de sisteme de operare incluzând Unix, Linux, Mac, Windows, etc.
Apache suportă o mare varietate de module care îi extind funcționalitatea, acestea variază de la server side programming și până la scheme de autentificare. Câteva limbaje suportate sunt : mod_perl, mod_python, Tcl și PHP. O altă calitate a serverului Apache este reprezentată de "Virtual hosting" (hosting virtual), care constă în posibilitatea de a găzdui mai multe site-uri simultan pe același server.
Apache este folosit de unele din cele mai mari site-uri din lume. Astfel, motorul de căutare folosit de Google folosește o versiune modificată de Apache, numită Google Web Server (GWS). Proiectele Wikipedia și inclusiv Wikimedia rulează tot pe un server Apache.
PHPMailer
PHPMailer este o bibliotecă folosită pentru a trimite ușor și în siguranță emailuri prin intermediul codurilor php de la un server web.
Trimiterea de emailuri necesită cunoștințe avansate ale protocolului standard SMTP și vulnerabilități legate de spam-uri.
Caracteristicile cele mai importante sunt trimiterea emailurilor prin intermediul codului HTML și trimiterea emailurilor cu fișiere atașate.
Suportă aproape toate posibilitățile de trimitere a emailurilor : sendmail, qmail, SMTP , fiind modalitatea cea mai eficientă de a trimite email utilizând cod PHP/HTML.
Cerințe și specificații
Tema propusă pentru lucrarea de licență se numește „Aplicație online de ticketing”.
Aceasta a fost realizată folosind limbajul PHP împreună cu un sistem de gestiune al bazelor de date, phpMyAdmin.
Aplicația are ca scop rezolvarea unor probleme software sau hardware, respectivele tickete, trimise de către clienți vechi sau noi unor tehnicieni/operatori care încearcă să ducă la bun sfârșit rezolvarea lor.
Între operatori și client există o punte de legătură : ambii pot trimite reply-uri solicitând o altă descriere a problemei, dacă prima descriere a fost vagă sau incoerentă. Această legătură servește în scopul de a facilita rezolvarea ticketului.
Obiectivele aplicației sunt :
-rezolvarea ticketelor de către operatorii specializați
-comunicarea client – operator
-lucrul cu baza de date: adminul poate adăuga, modifica sau șterge câmpuri ale diferitelor tabele din baza de date
-trimiterea de emailuri către clienți pentru o mai bună descriere
-înregistrarea de clienți noi
Cum funcționează?
În momentul în care un utilizatorîintâmpină o problemă, acesta va raporta problema unui operator de ticketing. Prin intermediul software-ului de monitorizare a incidentelor, operatorul va aloca solicitării dvs. un numar de ordine. Din acest moment, problema va fi preluată de către departamentul specializat și va fi soluționată în cel mai scurt timp.
Ce are clientul la dispoziție?
-pentru a se înregistra, clientul are la dispoziție un formular de înregistrare pe care îl va găsi apăsând butonul de register aflat în pagina principală;
-pentru a crea un ticket, clientul are la dispoziție un formular ușor de completat, apăsând butonul ticket nou
-pentru a comunica cu operatorul, clientul poate completa un formular de reply, pe care îl va găsi în pagina cu detalii ticket;
Ce are adminul la dispoziție?
-accesul la baza de date, unde acesta poate adăuga, modifica sau șterge câmpuri din tabelele bazei de date
-va sorta ticketele, modificând prioritatea și operatorul
-acesta poate să ia locul unui operator, rezolvând el însuși unul dintre ticketele noi apărute
Ce are operatorul la dispoziție?
-comunicarea operator-client prin intermediul emailului
-rezolvarea ticketelor sortate de admin prin intermediul câmpului id-ului operatorului
Analiza problemei
Tipuri de utilizatori
Utilizatorii care folosesc aceasta aplicație sunt următorii :
Adminul : acesta are rolul de administrator, putând să modifice și să vizualizeze tabelele din baza de date, totodată acesta poate să modifice câmpuri ale ticketului : statusul, prioritatea, termenul limită, operatorul. Adminul poate să aibă și rolul de operator;
Operatorul: acesta are rolul de a prelua ticketele primite prin intermediul adminului ; apoi acesta va încerca să rezolve problema; dacă operatorul nu va putea înțelege ce problema are clientul, acesta va putea trimite un e-mail către client cu un mesaj referitor la o altă descriere a problemei;
Clientul: acesta poate să creeze un ticket prin completarea unui formular; el va mai putea vizualiza o lista cu ticketele trimise anterior, având la dispoziție un istoric unde poate vizualiza detaliile ticketelor;
Task-uri executate în funcție de tipul utilizatorului:
Clientul: -creare ticket
-vizualizare istoric tickete trimise
Adminul: -selectare prioritate
-selectare operator
-rezolvare ticket
-trimitere e-mail către client
-vizualizare tabele din baza de date
-editare, modificare, ștergere date din tabele
Operatorul: -rezolvare ticket
-trimitere e-mail către client
-trimitere ticket către alt operator
Elementele implicate în aplicație:
-Ticketul este reprezentat de un formular pe care clientul îl va completa pentru a i se rezolva problema în cauză.
Câmpurile pe care clientul le poate completa sunt următoarele : status, prioritate, denumire, descriere. Pe lângă aceste câmpuri, ticketul mai prezintă și alte câmpuri dar care nu pot fi completate de către client : client (se completează automat), operatorul este completat de către admin, data creării se completează automat printr-o funcție datetime, termenul limită se completează de către admin.
-Utilizatorul este împărțit în 2 grupe:
-operatorul care conține câmpurile : id_utilizator (completat automat), tip_utilizator, department, username, parola, nume, email, vârsta care se completează de către admin și cod_utilizator care conține un generator de cod criptat
-clientul care conține câmpurile : id_utilizator, cod_utilizator, username, parola, nume, email, vârsta.
-Departamentul conține câmpurile : id_departament și denumireD.
Prezintă informații despre id-ul si denumirea departamentului.
-Statusul conține câmpurile : id_status și denumireS.
Prezintă informații despre id-ul si denumirea statusului.
-Proprietatea conține câmpurile : id_prioritate și denumireP.
Prezintă informații despre id-ul si denumirea proprietății.
-Reply-ul conține câmpurile : id_reply, id_utilizator, mesaj.
Prezintă informații despre id-ul, mesajul și id-ul utilizatorului care a trimis mesajul.
-Tipul conține câmpurile : id_tiputilizator și denumireU.
Prezintă informații despre tipul utilizatorului și denumirea acestuia.
Tipul utilizatorului este împărțit în 3 categorii : admin, operator și client.
Diagrama temporară
Conectarea la baza de date :
Functia de conectare
De câte ori se va lucra cu mediul phpMyAdmin, se va realiza o conexiune cu baza de date
(ticket) și scriptul PHP, folosind secvența de cod următoare :
<?php
$query=mysql_connect("localhost","root","");
mysql_select_db("ticket",$query);
?>
Această secvență de cod se salvează în config.php.
Înregistrarea unui client nou :
Funcția de înregistrare
Un client nou se poate înregistra, completând un formular cu datele personale.
Secvența de cod este următoarea:
<?php
include('config.php');
if(isset($_POST['adaugare_utilizator'])){
$id_tiputilizator=mysql_real_escape_string($_POST['id_tiputilizator']);
$id_departament=mysql_real_escape_string($_POST['id_departament']);
$cod_utilizator=mysql_real_escape_string($_POST['cod_utilizator']);
$username=mysql_real_escape_string($_POST['username']);
$parola=mysql_real_escape_string($_POST['parola']);
$nume=mysql_real_escape_string($_POST['nume']);
$email=mysql_real_escape_string($_POST['email']);
$varsta=mysql_real_escape_string($_POST['varsta']);
$query1=mysql_query("insert into utilizator values('','$id_tiputilizator',null,'$cod_utilizator','$username','$parola','$nume','$email',$varsta)");
echo "insert into utilizator values('','$id_tiputilizator',null,$cod_utilizator,'$username','$parola','$nume','$email',$varsta)";
if($query1){
header("location:login.php");
}
}
?>
Apoi acesta se va loga la fel ca ceilalți clienți.
Conectarea unui client și operațiile pe care acesta le face
Funcția de login
Autentificarea în aplicație se realizează pe baza unui username și a unei parole, pe care clientul și le setează atunci când se înregistrează prima oară. Pentru a realiza procesul de logare,
s-a creat tabelul utilizator, care conține, printre altele datele de autentificare.
Secvența de cod se află în login.php și este următoarea:
<?php
session_start();
include('config.php');
$message="";
if(count($_POST)>0 || isset($_GET["cod"])) {
$conn = mysql_connect("localhost","root","");
mysql_select_db("ticket",$conn);
$result = mysql_query("SELECT * FROM utilizator WHERE username='" . $_POST["username"] . "' and parola = '". $_POST["parola"]."'");
$row = mysql_fetch_array($result);
if(is_array($row)) {
$_SESSION["id_tiputilizator"] = $row["id_tiputilizator"];
$_SESSION["nume"] = $row["nume"];
$_SESSION["parola"] = $row["parola"];
$_SESSION["id_utilizator"] = $row["id_utilizator"];
$_SESSION["cod_utilizator"] = $row["cod_utilizator"];
header("Location:welcome.php");
} else {
$message = "Nume sau email invalid!";
}
}
Funcția de logout
Un client sau un operator se poate deconecta apăsând butonul logout care este pozitionat după numele lui, trimițându-l la pagina de login.
Secvența de cod este :
<?php
session_start();
if(session_destroy()) {
header("Location: login.php"); // Redirecting To Home Page
}
?>
Funcția de creare
Aceasta are ca scop popularea câmpurilor în tabelele bazei de date.
Accesul la această funcție îl are doar adminul.
Secvența de cod este :
<?php
include('config.php');
if(isset($_GET['id']))
$id=$_GET['id'];
if(isset($_POST['creare_ticket'])){
$id_status=mysql_real_escape_string($_POST['id_status']);
$id_prioritate=mysql_real_escape_string($_POST['id_prioritate']);
$denumireT=mysql_real_escape_string($_POST['denumireT']);
$descriere=$_POST['descriere'];
$data_crearii=mysql_real_escape_string($_POST['data_crearii']);
$query=mysql_query("insert into ticket values ('','$id_status','$id_prioritate',".$_SESSION['id_utilizator'].",null,'$denumireT','$descriere',
'$data_crearii',null)");
echo "insert into ticket values ('','$id_status','$id_prioritate',".$_SESSION['id_utilizator'].",null,'$denumireT','$descriere','$data_crearii',null)";
?>
Conectarea unui operator și operațiile pe care acesta le face
Funcția de modificare
Accesul la această funcție îl are doar adminul și are ca scop modificarea unor detalii sau erori în câmpurile din tabele.
Secvența de cod este următoarea :
<?php
if(isset($_POST['modificare_ticket'])){
$id_status=mysql_real_escape_string($_POST['id_status']);
$id_prioritate=mysql_real_escape_string($_POST['id_prioritate']);
$id_utilizator=mysql_real_escape_string($_POST['id_utilizator']);
$id_operator=mysql_real_escape_string($_POST['id_operator']);
$denumireT=mysql_real_escape_string($_POST['denumireT']);
$descriere=mysql_real_escape_string($_POST['descriere']);
$data_crearii=mysql_real_escape_string($_POST['data_crearii']);
$termen_limita=mysql_real_escape_string($_POST['termen_limita']);
$query2=mysql_query("update ticket set id_status='$id_status', id_utilizator=$id_utilizator,id_prioritate='$id_prioritate',
id_operator=".$_SESSION["id_utilizator"].", denumireT='$denumireT' ,
descriere='$descriere', data_crearii='$data_crearii', termen_limita='$termen_limita'
where id_ticket='$id'");}
Conectarea adminului și operațiile pe care acesta le face
Funcția de email
Atât operatorul cât și adminul pot trimite emailuri către clienți în rezolvarea ticketelor.
Secvența de cod este :
<?php
if (isset($_POST['reply'])){
//error_reporting(E_ALL);
//require('lib\PHPMailer\class.phpmailer.php');
$utilizator= $_SESSION['nume'] ;
$cod_utilizator=$_SESSION['cod_utilizator'];
$mesaj = $_REQUEST['mesaj'] ;
//$cod_utilizator =$_REQUEST['cod_utilizator'];
$mail = new PHPMailer(true);
$mail->IsSMTP(); // telling the class to use SMTP
$mail->SMTPDebug =2;
$mail->From = "[anonimizat]";
$mail->FromName="Ticket System";
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->Port = 465; // set the SMTP port for the GMAIL server
$mail->Username = "[anonimizat]"; // GMAIL username
$mail->Password = "ionutzel92"; // GMAIL password
$mail->AddAddress("[anonimizat]");// emailul utilizatorului/clientului/care a deshis ticketul
$mail->AddReplyTo("[anonimizat]","Ticket System");
$mail->WordWrap= 50;
$mail->IsHTML(true);
$mail->Subject='About Ticket';
//$mail->Body=$mesaj;
//$mail->Body="<h1>Buna ziua <b>$nume</b></h1>.\n\n Ai un mesaj de la tycket sistem : $mesaj. \n\n Pentru detalii accesati : <cod utilizator>";
$mail->Body=' <html><h1>Buna ziua <b>'.$utilizator.'</b></h1>.
<body><table>
<tr><td>Ai un mesaj de la tycket sistem : '.$mesaj.'</td></tr>
<tr><td>Pentru detalii accesati : http://localhost/licenta/login.php?='.$cod_utilizator.'</tr></td>
</table></body></html>';
if($mail->Send())
{echo "Send mail successfully";}
else {echo "Send mail fail";}
}
?>
Funcția de ștergere
Adminul, pe lângă operațiile de adăugare și modificare, mai poate șterge valori din tabele.
Secvența de cod se află în fișierul delete.php și este :
<?php
include('config.php');
if(isset($_GET['id']))
{
$id=$_GET['id'];
$query1=mysql_query("delete from utilizator where id_utilizator='$id'");
if($query1==false ){
header('location:eroare.php');}
if($query1==true)
{
echo"<h3>Stergerea s-a facut cu succes</h3>";
}}?>
Proiectarea bazei de date
Modelul relational al datelor
Ticket (id_ticket, id_status, id_operator, id_utilizator, id_prioritate, denumireT, descriere, termen_limită, data_creării)
Utilizator (id_utilizator, id_tiputilizator, id_departament, cod_utilizator, nume, email, vârsta)
Departament (id_departament, denumireD)
Status (id_status, denumireS)
Prioritate (id_prioritate, denumireP)
Reply (id_reply, id_ticket, mesaj)
Tip (id_tiputilizator, denumireU)
Structura tabelelor
Modelul conceptual al datelor
Proiectarea interfeței
Pentru a realiza interfața am folosit site-ul https://moqups.com
Un alt site care poate fi folosit este https://gomockingbird.com :
-logarea și înregistrarea
Logarea se va face utilizând 2 câmpuri : username și parola. În funcție de tipul utilizatorului, vor apărea 3 tipuri distincte de pagini : pagina adminului, operatorului și clientului.
Dacă clientul este unul nou, acesta va apăsa butonul de Register, unde va completa un formular cu specificațiile respective :
-pagina register
Dacă o persoană dorește să se logheze va trebui să completeze formularul de mai sus, devenind astfel unui dintre clienții site-ului.
Dacă aceasta se răzgândește va apăsa butonul de Inapoi.
-pagina adminului
Aceasta are un header care contine un mesaj si un buton de logout, un navbar care conține 8 butoane cu tabelele din baza de date și un corp unde vor apărea tabelele selectate cu ajutorul butoanelor. Fiecare tabel conține la rândul lui 2 butoane prin care se poate modifica sau șterge date din tabela respectivă.Deasupra fiecărui tabel, în colțul din stănga sus va apărea butonul de adăugare.
-pagina operatorului
Această pagină este asemănătoare cu cea a adminului doar că în navbar apare doar un buton, iar în corpul paginii, când se apasă pe butonul din navbar va apărea o listă cu ticketele operatorului și un buton de modificare. Deasupra listei va apărea butonul de Acasă.
-butonul modificare
Butonul de modificare ne va duce către o altă pagină care conține un formular cu un buton și o listă cu reply-urile vechi, precum și un alt formular de email, care conține un buton de trimitere.
-pagina clientului
Această pagină conține un header cu numele clientului și butonul de logout, un navbar care conține 2 butoane: Ticket nou și Istoric tickete și un corp unde se vor afișa tabelele respective.
-ticket nou
Această pagină conține un formular cu datele de introducere a unui nou ticket și un buton de salvare.
După apăsarea butonul Salvați, clientul va putea vizualiza ticketul în pagina istoric tickete.
-istoric ticket
Această pagină conține un tabel cu ticketele vechi și un buton cu detaliile fiecărui ticket.
Aici ticketele sunt sortate în funcție de tipul statusului și de data creării, ticketele noi apărând primele în listă.
-detalii ticket
Această pagină conține un formular cu un buton și o listă cu reply-urile vechi, precum și un alt formular de email, care conține un buton de trimitere și un buton de înapoi.
În formularul de vizualizare ticket, clientul nu va putea să modifice niciun câmp.
Implementarea aplicației
Pagina inițială
Logarea
Pentru a accesa aplicația, utilizatorii trebuie să completeze un mic formular cu username și parola. Apoi vor apăsa butonul LOGIN.
Exemplu logare :
Apoi, în funcție de tipul utilizatorului, se va deschide o pagină separată :
Pagina adminului este alcătuită dintr-un header ce conține un mesaj de bun venit, numele utilizatorului și un buton de delogare, dintr-o bară de navigație care conține butoanele : Tickete, Operatori, Clienți, Departamente, Status, Prioritate, Reply, Tip utilizator și corpul paginii.
În corpul paginii, pentru început va apărea o listă cu ticketele noi.
Adminul poate adăuga, modifica sau șterge câmpuri sau valori ale tabelelor :
Ceva puțin mai diferit se întâmplă când apasă butonul Tickete :
Aici apăsând butonul Modificare, adminul poate schimba datele din câmpuri, în funcție de necesitate, completând formularul din stânga paginii; pe lângă acest lucru, adminul va putea să vadă o listă cu reply-urile vechi ale fiecărui ticket (în dreapta sus).
Apăsând butonul Acasă , acesta va face un redirect către pagina welcome.php unde apar doar ticketele noi.
Totodată, adminul poate trimite un email în legătură cu viitoarele detalii despre problema deja existent, completând formularul din dreapta jos :
Logarea operatorului:
Pagina operatorului este alcătuită dintr-un header ce conține un mesaj de bun venit, numele utilizatorului și un buton de delogare , dintr-o bară de navigație care conține butonul : Tickete și corpul paginii, unde, la fel ca la admin vor apărea ticketele noi:
Operatorul, la fel ca și adminul poate vizualiza, modifica ticketele, vizualiza reply-urile vechi și trimite email către client :
Logarea clientului :
Pagina clientului este alcătuită dintr-un header ce conține un mesaj de bun venit, numele utilizatorului și un buton de delogare , dintr-o bară de navigație care conține butoanele : Ticket nou și Istoric tickete și corpul paginii :
Clientul va putea trimite un ticket apasând pe butonul Ticket nou și completând formularul care va apărea :
Apăsând pe butonul Istoric tickete, clientul va putea vizualiza ticketele trimise și stadiul lor :
Butonul Detalii ticket îl va informa în legătură cu detaliile fiecărui ticket în parte :
Dacă o persoană nouă dorește să se logheze, aceasta poate să se înregistreze apăsând pe butonul Register, unde va completa formularul primit :
Dacă aceasta se răzgândește poate apăsa butonul Înapoi, revenind la pagina de login.
Caz de utilizare
Un exemplu de utilizare al aplicației ar putea fi următorul :
O persoană are o problemă cu o tranzacție care trebuie rezolvată cât mai urgent posibil.
Cum va putea persoana să trimită un ticket?
Dacă nu este încă înregistrată, aceasta poate să se înregistreze completând un formular de înscriere, devenind astfel clientul aplicației/site-ului. Apoi, pe baza datelor completate se va loga utilizând un username și o parolă.
După ce se loghează, persoana va trebui să completeze un formular, conținând datele referitoare problemei : status, prioritate, denumire, descriere.
Apăsând pe butonul Salvați, se va crea ticketul cu un id propriu, acesta va putea fi vizualizat la Istoric tickete (va apărea primul în listă).
Tot aici, clientul va putea să vadă și alte câmpuri, dar nu va putea să le completeze, neavând acces la ele (vor fi completate ulterior de către admin).
La capătul fiecărui rând, există un buton de Detalii ticket. Dacă va fi apăsat, va trimite clientul către o pagină unde va vedea toate detaliile ticketului (și cele pe care nu le-a putut completa), iar pe lângă acestea, acesta va putea să trimită un mesaj către operatori dacă aceștia vor avea nevoie de mai multe informații despre problemă sau dacă descrierea problemei este vagă.
Cum va fi trimis ticketul către operatorul competent în această situație?
Aici intervine rolul adminului. Logându-se, acesta va vedea prima oară ticketele noi,
pe care le va edita, schimbând statusul, prioritatea, termenul limită și trimițându-l către operatorul competent. Acesta va putea și el vizualiza comunicarea dintre client și operator.
Adminul poate lua locul unui operator, dacă acesta nu poate rezolva un ticket sau dacă, din alte motive, acesta nu poate fi prezent, ori operatorii nu sunt de ajuns.
Cum va fi rezolvat ticketul?
După ce ticketul a trecut prin sortarea facută de către admin, acesta va ajunge la un operator care va încerca să înțeleagă problema și va încerca să o rezolve.
Dacă acesta nu reușește, va trimite un email către client unde îi va specifica să descrie problema într-un alt mod. Mesajul va apărea în lista de deasupra formularului de trimitere a emailului.
Concluzie
În această lucrare am realizat o aplicație web, care folosește informații aflate într-o bază de date, în tehnologia phpMyAdmin, flexibilă și funcțională, pentru a facilita crearea și rezolvarea de probleme.
Soluția a fost implementată practic și adaptată cerințelor specifice ale departamentului de IT a instituției de învătământ superior Universitatea Dunărea de Jos din Galați.
Aplicația a fost implementată, folosind tehnologia phpMyAdmin, fiind o soluție fiabilă, adaptată cerințelor temei.Pe lângă aceasta s-au mai folosit HTML, CSS, JavaScript și editorul Notepad++.
În urma realizării acestei aplicații au fost atinse următoarele obiective :
-rezolvarea ticketelor de către operatorii specializați
-comunicarea client – operator
-lucrul cu baza de date: adminul poate adăuga, modifica sau șterge câmpuri ale diferitelor tabele din baza de date
-trimiterea de emailuri către clienți pentru o mai bună descriere
-înregistrarea de clienți noi
Aplicația poate fi îmbunătățită, actualizată sau modificată de către o persoană autorizată.
Bibliografie
-https://ro.wikipedia.org/wiki/OTRS
-http://www.itcexperts.ro/index.php/helpdesk
-http://www.itassistant.org/programare/editorul-notepad-tutorial-video/
-https://ro.wikipedia.org/wiki/HyperText_Markup_Language
-https://ro.wikipedia.org/wiki/PHP
-https://ro.wikipedia.org/wiki/Apache_(server)
-https://ro.wikipedia.org/wiki/PhpMyAdmin
-https://ro.wikipedia.org/wiki/JavaScript
-https://ro.wikipedia.org/wiki/Cascading_Style_Sheets
-http://www.phpmyadmin.net/home_page/index.php
-http://cssplaza.com/3/CSS-Sintaxa/
-https://gomockingbird.com
-http://www.rasfoiesc.com/educatie/informatica/java/JavaScript-si-Perl-Caracterist25.php
-http://www.rezolvit.ro/servicii-it/helpdesk
– https://en.wikipedia.org/wiki/Phpmailer
– https://code.google.com/a/apache-extras.org/p/phpmailer/wiki/UsefulTutorial
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Aplicatie Online de Ticketing (ID: 149459)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
