Platforma Web Pentru Publicarea Si Promovarea Conferintelor

Proiect de Disertație

Cuprins

I. Introducere

I.1. Tema aplicației

I.2 Scopul proiectului de disertație

I.3 Structura lucrării

II. Noțiuni Teoretice

II.1 Noțiuni Generale

II.2 Studii comparative

III. Tehnologii Folosite

III.1 Visual Studio 2013

III.2 Microsoft SQL Server 2012

III.3 Metro UI

III.4 CSS3

III.5 HTML5

III.6 JavaScript, JQuery și Ajax

IV. Arhitectura platformei EduCFP

IV.1 Structura fișierelor proiectului

IV.2 Interfața Platforma EduCFP

V. Manual de utilizare din punctul organizatorului

VI. Concluzii

Lista termeni

Lista figuri

Lista Tabele

VII. Bibliografie

 Introducere

I.1. Tema aplicației

Tema proiectului de disertație este realizarea unei platforme web pentru publicarea și promovarea conferințelor.

Obiective:

Din punctul de vedere al organizatorilor:

Adăugarea de conferințe + editarea conferințelor adăugate personal

Notificări (email) la diverse evenimente pentru cei care au propus conferințele

Din punctual de vedere al participanților / persoanelor interesate

Sortări, filtrări și căutări diverse

Poziționare pe harta a tuturor conferințelor etc

Subscribers care pot primi notificări

Puncte de interes turistic in apropierea locației unde este susținuta conferința

I.2 Scopul proiectului de disertație

După un studiu amănunțit, am constatat că nu există o platformă web pentru publicarea conferințelor din Romania și din acest motiv am decis să realizez o platformă web atât pentru publicarea cât și pentru promovarea conferințelor.

Consider că acest proiect este semnificativ pentru proiectul de diplomă, deoarece este o aplicație web complexă, ce urmărește postarea conferințelor automat pe rețelele de socializare, căutare pe baza cuvintelor cheie, căutarea pe o anumită temă, cât și puncte de interes turistice în apropierea conferințelor și informații despre soluțiile de transport disponibile în zonă.

Pentru realizarea acestei aplicații web s-au folosit următoarele tehnici și tehnologii web:

ASP.Net C#,

Ajax,

JavaScript,

CSS,

JQuery,

SQL.

XML,

Google Maps & Bing Maps API

CSHTML

I.3 Structura lucrării

Lucrarea este structurată în 4 capitole astfel:

I Introducere- Conține informații generale despre proiect și este împărțit în 3 subcapitole

II Noțiuni Teoretice – descrie pe scurt organizarea unei conferințe și noțiunea de conferința academica.

III Tehnologii Folosite – descrie programele și limbajele de programare utilizare

IV Arhitectura platformei EduCFP

V. Concluzii

Noțiuni Teoretice

II.1 Noțiuni Generale

Înainte de a realiza un proiect trebuie mai întâi cercetat domeniul din care face parte, concurența și ce poate aduce în plus noul proiect.

Așa cum am menționat în capitolul anterior, după analizarea concurenței, am ajuns la concluzia că puținele site-uri care există au multe lipsuri.

După toate aceste rezultate am decis că trebuie realizat un site care să cuprindă toate lipsurile celorlalte, astfel a luat naștere: www.educfp.com, un site în care informația este la îndemâna oricui.

Unul din site-urile ce m-au convins că trebuie realizată o platformă web este www.wikicfp.com.

Printre dezavantajele acestei platforme se numără:

Categorii duplicate- acest lucru derutează destul de mult vizitatorul

Nu are o căutare avansata – dacă un vizitator dorește să caute o anumită conferința dintr-un anumit oraș nu poate face acest lucru, poate caută fie doar după numele conferinței sau după oraș

Pagina conferinței nu oferă suficiente informații; spre ex. locul unde se vor susține articolele

Site-ul www.educfp.com a corectat aceste dezavantaje și în plus oferă vizitatorului căutare pe baza cuvintelor cheie, căutarea pe o anumită temă, cât și puncte de interes turistice în apropierea conferințelor și informații despre soluțiile de transport disponibile în zonă.

Platforma web a fost gândita din perspectiva vizitatorului, astfel s-a reușit realizarea unui site cu o interfața ușor de navigat, site ce oferă toate informațiile într-un singur loc (informații conferința, informații puncte turistice).

Pentru realizarea site-ului a trebuit cercetat cum se organizează o conferința și cel mai important ce este o conferința.

Ce este o conferință?

A conference is generally understood as a meeting of several people to discuss a particular topic. O conferința este o reuniune de oameni ce au un interes comun, un scop ce le permite să se întâlnească și să discute probleme, să împărtășească idei care se concentrează pe o temă de interes comun.

It is often confused with a convention, colloquia or symposium.While a conference differs from the others in terms of size and purpose, the term can be used to cover the general concept. Aceasta diferă de o convenție, colocviu sau simpozion în ceea ce privește dimensiunea și scopul, astfel termenul poate fi folosit pentru a acoperi conceptul general. A convention is larger than a conference; O convenție este mai mare decât o conferință; it is a gathering of delegates representing several groups. aceasta reprezintă o adunare de delegați, reprezentanți ai mai multor grupuri.

At a conference, innovative ideas are thrown about and new information is exchanged among experts. Its purpose could be one of the following:Scopul unei conferințe ar putea fi una dintre următoarele:

O conferință academică. Cele mai multe conferințe academice sunt centrate în jurul unui singur subiect. The format usually involves graduate students and academics presenting their research, work, and theories, and defending, expanding, or changing them in response to questions, criticism, and other feedback from colleagues. Formatul implică, de obicei, studenți absolvenți și cadre universitare care prezintă lucrările lor de cercetare și teoriile.Generally annual, these conferences are often sponsored by the professional organization of the discipline involved, and may be held in a different city each year. În general anual, aceste conferințe sunt adesea sponsorizate de către organizația profesională a disciplinei implicate și ar putea avea loc într-un oraș diferit în fiecare an. A major focus of academic conferences, besides the exchange of ideas, is networking, which, in academia as elsewhere, is a key to collaboration, funding, employment, and other professional benefits.Acestea se împart în trei categorii:

Tematice- sunt în general, mici conferințe organizate în jurul unui anumit subiect. Uneori, o universitate sau colegiu va organiza o conferință anuală, cu o temă diferită în fiecare an, și, uneori, ei vor prezenta o conferință periodică pe aceeași tema.

Profesionale [recrutare academica]- Conferința profesional prezintă mai multe sesiuni de lucrări de două-trei zile.

Complexe – au un accent mai mare, cu sesiuni pe o varietate de subiecte. Aceste conferințe sunt adesea organizate de societăți regionale, naționale sau internaționale..

A business conference is held for people working in the same company or industry.O conferință de afaceri este pentru persoanele care lucrează în aceeași companie sau industrie. They come together to discuss new trends and opportunities pertaining to the business Ei vin împreună pentru a discuta despre noile tendințe și oportunități legate de afaceri

A trade conference takes place on a larger scale.O conferință de comerț se desfășoară pe o scară mai mare. Besides businessmen, there are members of the public who come to network with vendors and made new connections. În afară de oamenii de afaceri, există membri ai publicului care vin să rețea cu furnizorii și a făcut noi conexiuni. Such a conference consists of workshops and white paper presentations. O astfel de conferință este format de workshop-uri și prezentări de hârtie de culoare albă.

Cum se organizează o conferința?

Planificarea unei conferințe include stabilirea locului de desfășurare, furnizarea de produse alimentare, precum și organizarea prezentatorilor.

Există mai multe etape de planificare a unei conferințe. Multă atenție trebuie acordată micilor detalii, deoarece întârzieri sau probleme tehnice pot descuraja participanții să se întoarcă pentru evenimente viitoare. Pentru că planificarea unei conferințe poate implica o mulțime de muncă, sarcinile ar trebui să fie împărțite.

1.Locatia

Se estimează numărul de participanți și se caută un spațiu suficient de încăpător. Majoritatea conferințelor au loc în sala de conferințe a unui hotel, deoarece organizatorul poate obține tarife reduse pentru camerele participanților.

Organizatorul va trebui să realizeze un program de evenimente, incluzând sesiuni și ateliere de lucru. Acest lucru va implica contactarea tuturor participanților și aflarea necesitaților. Odată ce acest lucru este realizat, se trimite un formular de înscriere la potențialii participanți împreuna cu toate informațiile conferinței.

Alimente și Pauze

Unele conferințe oferă mic dejun, prânz și cină, în timp ce altele oferă gustări și băuturi. În cazul în care conferința este organizata la un hotel, hotelul poate fi în măsură să furnizeze masa pentru participanți. Dacă nu, trebuie luată în considerare metoda de catering. În general ar trebui să existe întotdeauna băuturi, cum ar fi apa, ceai, cafea oferite participanților pe durata conferinței.

Unele conferințe oferă după prezentarea evenimentului participanților posibilitatea de a participa la atracțiile locale.

Din acest motiv am decis să oferim participanților posibilitatea de a cunoaște atracțiile locale dinainte de a ajunge la conferința.

II.2 Studii comparative

Pentru realizarea lucrării de disertație au fost alese câteva site-uri comune. Acestea sunt:

http://ieee-ies.org/index.php/conferences

http://www.allconferences.com/

http://www.conferencealerts.com/index

http://www.allconferencealerts.com/

Pentru realizarea platformei web pentru publicarea și promovarea conferințelor am analizat mai multe site-uri similare pentru a vedea cum anume sunt organizate, cum sunt structurate paginile, ce informații oferă acele site-uri și nu în ultimul rând ce tipuri de layout-uri folosesc.

Site-urile au fost analizate din punct de vedere vizual, atât la nivel de conținut cat și la nivel de structura.

Primul site analizat este: http://lanyrd.com/romania/

Figura 1 Site Lanyrd.com

Prima pagina oferă informații atât despre conferințele ce vor avea loc pana la sfârșitul anului, cât și conferințele ce au avut loc.

Vizitatorul poate folosi funcționalitatea de căutare în site-ul web, dar doar după tara, oraș sau numele conferinței. Utilizatorul nu are posibilitatea de a caută o conferința folosind mai multe filtre, ceea ce este un dezavantaj.

Pagina Conferinței oferă foarte puține informații, utilizatorul trebuie să acceseze pagina conferinței pentru a afla mai multe informații despre termenele limită pentru încărcarea articolelor.

Un al dezavantaj al acestui site este faptul ca nu are posibilitatea de autentificare cu datele din contul Facebook, accepta doar linkedin și tweeter.

Fonturile folosite sunt la o dimensiune mult prea mare și obosește vizitatorul.

Următorul site analizat este: http://www.conferencealerts.com/index

Figura 2 ScreenShot site sonferencealerts

Daca analizam acest site din punctul de vedere al conținutului, putem spune ca oferă o gamă variată de informații. Vizitatorul își poate alege încă de pe prima pagină categoria din care dorește să fie conferința, sau țara unde au loc conferințele.

Spre deosebire de site-ul anterior acesta oferă mult mai multe informații pe prima pagina, însă pe pagina conferinței sunt la fel de puține informații.

Un site foarte apropiat de site-ul www.educfp.com din anumite puncte de vedere este site-ul: http://www.allconferences.com/.

Figura 3 Site AllConferences.com

O asemănare între cele doua site-uri este că au conferințele sortate după categorii, data și localitate.

Pagina conferinței oferă mai multe informații despre conferința și în plus are implementata și funcția Google Maps spre deosebire de celelalte site-uri analizate.

Pe toate cele tr

Spre deosebire de site-ul anterior acesta oferă mult mai multe informații pe prima pagina, însă pe pagina conferinței sunt la fel de puține informații.

Un site foarte apropiat de site-ul www.educfp.com din anumite puncte de vedere este site-ul: http://www.allconferences.com/.

Figura 3 Site AllConferences.com

O asemănare între cele doua site-uri este că au conferințele sortate după categorii, data și localitate.

Pagina conferinței oferă mai multe informații despre conferința și în plus are implementata și funcția Google Maps spre deosebire de celelalte site-uri analizate.

Pe toate cele trei site-uri am constatat o gama foarte mare de reclame ce nu au legătura cu site-urile. Într-adevăr este vorba de o strategie de market, dar în loc să se deschidă o pagina a unei conferințe cu reclame despre îmbrăcăminte, mai bine s-ar încarcă o pagina a unei conferințe cu reclame despre transport, agenții turism, bilete.

Tehnologii Folosite

III.1 Visual Studio 2013

Visual Studio 2013- Visual Studio este un IDE-mediu de dezvoltare integrat. Acesta include un set complet de instrumente de dezvoltare pentru generarea de aplicații ASP.NET, Servicii Web XML, aplicații desktop și aplicații mobile.

Visual Basic, Visual C++, Visual C# și Visual J# toate folosesc același mediu de dezvoltare integrat (IDE) care le permite partajarea instrumentelor și facilitează crearea de soluții folosind mai multe limbaje de programare. Aceste limbaje permit să beneficieze de caracteristicile .NET Framework care oferă acces la tehnologii cheie care simplifica dezvoltarea de aplicații web ASP și XML Web Services cu Visual Web Developer. [1]

Limbajul C#

C # este un limbaj ce permite programarea structurată, orientată obiectual, și modulară conform perceptelor programării.

Platforma .NET

Platforma .NET este o platforma conceputa de Microsoft, realizata pentru dezvoltarea de aplicații.

ASP.NET este o platformă web care oferă toate serviciile de care este nevoie pentru a construi aplicații web. Aplicațiile pot fi scrise în orice limbaj, care este compatibil cu Common Language Runtime (CLR), inclusiv Visual Basic și C #.

ASP.NET este un cadru web gratuit pentru construirea de site-uri web mari și aplicații web folosind HTML, CSS și JavaScript. Se poate de asemenea crea, API-uri web și site-uri de telefonie mobilă.

Construirea site-urilor Web în ASP.NET

ASP.NET oferă trei cadre pentru crearea de aplicații web: Web Forms, ASP.NET MVC, și ASP.NET Web site. Toate cele trei cadre sunt stabile și mature, și se pot crea aplicații web mari cu oricare dintre ele. Nu contează ce cadru este ales, se obțin toate beneficiile și caracteristici ASP.NET în oricare dintre cadre.

Fiecare cadru vizează un stil diferit de dezvoltare. Un cadru se alege în funcție de cunoștințele pe programare și dezvoltare a unei aplicații, de tipul de aplicației ce se dorește realizat.

Tabel 1 Experiență ASP.NET

ASP.NET MVC

In momentul în care se creează un nou proiect asp.net, Visual studio creează deja un șablon implicit pentru proiectul ASP.NET MVC care tocmai s-a creat astfel încât să existe o aplicație de lucru.

MVC reprezintă unul dintre cele trei cadre de programare ASP.NET.MVC is a framework for building web applications using a MVC (Model View Controller) design: MVC rolul de a separa o aplicației în trei componente astfel [9]:

The Model represents the application core (for instance a list of database records).Model: folderul cuprinde clase ce reprezintă domeniul aplicației web. Aceste clase atât date memorate într-o baza de date precum și cod utilizat pentru a manipula datele.

The View displays the data (the database records). Views afișează datele

The Controller handles the input (to the database records). Controller: conține clase speciale ce gestionează relațiile dintre Model și Views.

The MVC model also provides full control over HTML, CSS, and JavaScript. Modelul MVC oferă, de asemenea, un control deplin asupra HTML, CSS și JavaScript .

Structura ASP.NET MVC

Figura 4 Dosare MVC

O aplicație web tipic ASP.NET MVC are următorul conținut folder:

Numele Directoarelor generale sunt aceleași în toate aplicațiile MVC. Cadrul MVC se bazează pe denumiri implicite. Controlorii sunt în folderul Controllers, Views sunt în dosarul Views și modelele în dosarul Models, aceste dosare nu trebuie apelate în codul aplicației.

Denumirea standard reduce cantitate de cod și este mult mai ușor de înțeles pentru dezvoltatorii de proiecte MVC.

Folderul content este utilizat pentru fișiere statice, precum foi de stil (CSS) și imagini.

Visual web developer adaugă un fișier standard Site.css în folderul content. Acest fișier poate fi modificat în funcție de necesitățile proiectului.

Folderul Controllers conține clasele controller responsabile cu gestionarea datelor introduse de utilizator.

Figura 5 Folderul Controller

Numele claselor din cadrul folderului controller trebuie să conțină obligatoriu numele controller, de ex: HomeController.cs

public class HomeController : Controller

{

public ActionResult Index()

{

return View();

}

public ActionResult About()

{

ViewBag.Message = "Your application description page.";

return View();

}

public ActionResult Contact()

{

ViewBag.Message = "Your contact page.";

return View();

}

}

Folderul Models-conține clasele ce reprezintă modele de aplicare. Models hold and manipulate application data.Models deține și gestionează datele aplicației.

Figura 6 Folderul Models

Exemplu parțial clasa AccountViewModels:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>

{

public ApplicationDbContext()

: base("DefaultConnection")

{

}

}

Folderul Views- conține fișierele html referitoare la afișarea datelor aplicației.

Directorul Views conține câte un folder pentru fiecare controler.

Figura 7 Folderul Views

Fiecare acțiune declarată în cadrul controller-ului HomeController îi corespunde o clasă .cshtml în folderul Home din cadrul folderului Views.

De exemplu acțiunii About din controller-ul HomeController ii corespunde fișierul About.cshtml și este plasat în directorul Views/Nume Controler(fără sufixul controller)

@{

ViewBag.Title = "About";

}

<h2>@ViewBag.Title.</h2>

<h3>@ViewBag.Message</h3>

<p>Use this area to provide additional information.</p>

In folderul Shared, fișierul _Layout.cshtml este responsabil cu aspectul fiecărei pagini a aplicației.

Cod parțial Fișier _Layout.cshtml:

<div class="navbar navbar-inverse navbar-fixed-top">

<div class="container">

<div class="navbar-header">

<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">

<span class="icon-bar"></span>

<span class="icon-bar"></span>

<span class="icon-bar"></span>

</button>

@Html.ActionLink("Application name", "Index", "Home", null, new { @class = "navbar-brand" })

</div>

<div class="navbar-collapse collapse">

<ul class="nav navbar-nav">

<li>@Html.ActionLink("Home", "Index", "Home")</li>

<li>@Html.ActionLink("About", "About", "Home")</li>

<li>@Html.ActionLink("Contact", "Contact", "Home")</li>

</ul>

@Html.Partial("_LoginPartial")

</div>

</div>

</div>

<div class="container body-content">

@RenderBody()

<hr />

<footer>

<p>&copy; @DateTime.Now.Year – My ASP.NET Application</p>

</footer>

</div>

Conexiunea la baza de date trebuie realizata din fișierul Web.config.

<connectionStrings>

<add name="DefaultConnection" connectionString="Data Source=89.44.121.78,14333;Database =WebAplication1;UserID=AA;Password=PASSSS;Trusted_Connection=False; Encrypt=False;Connection Timeout=30;" providerName="System.Data.SqlClient" />

<add name="DebugConnection" connectionString="Data Source=name-PC\SQLEXPRESS;Database= WebAplication1;Trusted_Connection=True;Encrypt=False;Connection Timeout=30;" providerName="System.Data.SqlClient" />

</connectionStrings>

III.2 Microsoft SQL Server 2012

Microsoft SQL Server este un sistem de gestionare a bazelor de date relaționale (RDBMS). Limbajele primare de interogare sunt MS-SQL și T-SQL. Accepta versiunea companiei Microsoft de SQL (Structured Query Language ), cel mai răspândit limbaj pentru bazele de date. Este un sistem ce se poate aplica bazelor de date de dimensiuni foarte mari. [2]

Microsoft SQL Server ™ este un sistem de gestionare și analiză a bazei de date pentru soluții de e-Commerce, line-of-business, și de depozitare a datelor.

SQL Server este proiectat pentru a fi un sistem client / server. Sistemele client / server sunt conectate, astfel încât baza de date se poate afla pe un calculator central, cunoscut ca server și să fie partajata între mai mulți utilizatori. Atunci când utilizatorii doresc să acceseze datele din SQL Server, se execută o aplicație de pe computerul local, cunoscut ca un client care se conectează printr-o rețea de server ce rulează SQL Server.

SQL Server poate lucra cu mii de aplicații client simultani. Serverul are caracteristici pentru a preveni problemele logice ce apar în cazul în care un utilizator încearcă să citească sau să modifice datele utilizate în prezent de către alții.

Un element de baza pentru SQL Server Management Studio este Object Explorer, acesta îi oferă utilizatorului posibilitatea de a naviga, selecta

O bază de date SQL Server este compusă din 3 tipuri de fișiere: un fișier cu extensia .mdf și un fisier cu extensia .ldf , ndf

Fisierul cu extensia .mdf contine obiectele bazei de date, tabelele, indecsii, vederele, etc.

Fisierul .ldf conține jurnalul de tranzacții. Fiecare actualizare a inregistrarilor bazei de date presupune și memorarea în jurnalul de tranzactii

Jurnalul de tranzacții este necesar în cazul în care apare o eroare ce necesită anularea sau reluarea unor operații înregistrate.[10]

III.3 Metro UI

In prezent există diferite site-uri open source ce te ajuta să creezi site-uri web mult mai ușor și într-un timp puțin mai scurt.

Metro ui este unul dintre acele site-uri . Acesta îți pune la dispoziție o gama variata de componente pentru crearea barei de meniuri, slideshow-uri, titluri etc.

Pentru a avea un site original nu trebuie neapărat să scrii totul de la început. Un bun programator știe să transforme o idee dintr-o anumita sursa într-o idee proprie.

De exemplu pentru crearea barei de meniu am folosit codul care crea aceasta bara de meniu:

Figura 8 Metro ui Bara meniu

Modificând suficient de mult codul s-a ajuns la următoarea bara de meniu:

Figura 9 Bara meniu EduCFP

După cum se observa cele doua nu au nimic în comun, doar câteva elemente de cod.

Pentru realizarea meniului metro se pune la dispoziția programatorului următorul cod:

<nav class="navigation-bar dark">

<nav class="navigation-bar-content">

<item class="element">…</item>

<item class="element-divider">…</item>

<item class="element">…</item>

</nav>

</nav>

Pentru realizarea meniului EduCFP s-a scris următorul cod:

<nav style="height:80px; display:block">

<div style="float:left">

<div class="element icon48" style="float:left; padding-top:20px;">

<a class="" href="~/"><img src="~/content/themes/base/images/logo48.png" alt="home" class="logo"

width="48" height="48" /></a>

</div>

<h1 style="padding-top:10px; float:right">EduCFP</h1>

</div>

<div class="element link" style=" float:right; padding-top:30px;">

<div class="input-control text">

<input type="text" placeholder="Search" />

<button class="btn-search"></button>

Advanced search

</div>

</div>

</nav>

<nav class="navigation-bar bg-amber" style="border-bottom: 1px solid #0D6CBF;">

<nav class="navigation-bar-content bg-hover-lightorange"

<div class="element link">

<span>

<a href="~/@Resources.URLConferences/">Categories</a>

</span>

</div>

<div class="element link">

<span>

<a href="~/@Resources.URLCalendars/">Calendar</a>

</span>

</div>

<div class="element link">

<span>

<a href="~/@Resources.URLPlaces/">Places</a>

</span>

</div>

<div class="element link">

<span>

<a href="~/@Resources.URLSponsors/">Sponsors</a>

</span>

</div>

Analizand în mare codul de la cele doua meniuri par ca nu au nimic în comun, exista însă câteva linii de cod în css, cu aceleași denumiri, dar parametrii diferiți.

Un alt element folosit din cadrul acestui site folosit în cadrul proiectului este componenta panel-collapsible

Figura 10 Componenta panel-collapsible Metro ui

<div class="panel" data-role="panel">

<div class="panel-header">

</div>

<div class="panel-content">

</div>

</div>

Acest element a fost utilizat pentru afișarea listei de sponsori și o conținutului acesteia.

Porțiunea de necesara pentru crearea acestui element este:

<ul>

@for (int i = 0; i < Model.Count; i++)

{

<div class="panel" data-role="panel">

<div class="panel-header">

<li style="width:700px;"><a href="/@Resources.URLPlaces/@Model[i].Name.ToURL()/">@Model[i].Name</a></li>

</div>

<div class="panel-content">

</div>

</div>

}

</ul>

Pentru a putea utiliza aceste elemente este necesar să avem în folderul Content clasa .metro, în cadrul proiectului trebuie incluse și fișierele metrou-bootstrap.css și metrou.min.js.

III.4 CSS3

CSS este acronimul de la Cascading Style Sheets și este un standard folosit pentru a formata elementele unui document de tip HTML. Stilurile pot fi atașate elementelor HTML fie prin intermediul unor fișiere externe salvate cu extensia .css, fie în cadrul documentului, folosind elementul <style>.

Exemplu pentru folosirea unui CSS în interiorul documentului

<head>

<title> Acasa </title>

<style type="text/css">

Definire Stil CSS

</style>

</head>

CSS a ajuns în acest moment la un nivel mai avansat, permițând programatorilor de site-uri web să îmbunătățească aspectul paginilor web fără a mai apela la Cod JavScript.

CSS3 este într-o continuă dezvoltare, iar noile caracteristici nu sunt încă acceptate de toate browserele. Din aceasta cauza este necesara apelarea la anumite prefixe în funcție de suportul din diferite browsere.

Pentru browser-ul Mozzila Firefox se va folosi prefixul ”-moz-”, “-webkit-”pentru Google Chrome și Safari, iar pentru Internet Explorer “-ms-”.

Printre cele mai interesante funcții și caracteristici introduse de css3 se numără: Border-radius, multiple background, border-image, atributul @font-face, etc.

Border-radius ne permite să adăugam la elementele Html colturi rotunjite, fără a mai folosi imagini de fundal

Atributul @font-face

Cu ajutorul acestui atribut designerii de site-uri web pot folosi orice font își doresc, atât timp cât acesta este definit în cadrul atributului. Aceasta este o regula importantă a acestuia.

Border-image ne permite să creăm borduri la casetele de text folosind imagini.

In CSS3 se pot realiza și animații folosind sintaxa @keyframes, ce definește ce va face animația, apoi trebuie apelată animația în interiorul selectorului ce se dorește animat.

III.5 HTML5

HTML este acronimul Hypertext Markup Language și este un limbaj ce descrie structura și conținutul unui web site.

HTML 5 a fost publicat pe data de 22 ianuarie 2008, acesta aduce o serie de îmbunătățiri în ceea ce privește interoperabilitatea, flexibilitatea, interactivitatea site-urilor web, ajuta la scăderea costurilor de dezvoltare folosind norme precise în ceea ce privește modul de tratare, recuperare sau de evitare a erorilor.

HTML5 a fost conceput pentru să fie compatibil și cu celelalte versiunile HTML, așadar un document valid HTML 4 este și valid HTML5, atât timp cât folosește doctype-ul nou. <!DOCTYPE html>.

Elementele noi ce sunt folosite în HTML 5 sunt <section>, <nav>, <header>, <footer>, acestea ajuta la realizarea structurii documentului web. Printre noile caracteristici se mai numără și incorporarea video, grafica, documente interactive, etc.

Funcții noi în HTML 5:

pentru a desena grafice pe o pagina web este folosita eticheta canvas

pentru a reda fișiere de muzica sunt folosite etichetele audio și video

funcții pentru controalele de forma precum calendar, url, date

Versiunile mai vechi de HTML nu suportau direct etichetele video și audio.

HTML5 vine și cu o noua proprietate pentru obiectul global: Navigator.geoLocation

EX: function get_location() { navigator.geolocation.getCurrentPosition(show_map); }

In HTML 5 nu vom mai întâlni tagurile:

<Acronym>,

<applet>,

<basefont>,

<big>,

<center>,

<dir>,

<font>,

<frame>,

<frameset>,

<noframes>,

<xmp>

Tag-uri noi în HTML5

<article>- Folosit pentru definirea unui articol

<aside>: Folosit pentru definirea conținutului

<audio>: Folosit pentru definirea sunetului

<canvas>: Folosit pentru grafica

<datalist>: Folosit pentru definirea unei liste dropdown

<figure>: Folosit pentru definirea unui grup media

<footer>: Folosit pentru definirea secțiunii de footer

<header>: Folosit pentru definirea secțiunii de header

<hgroup>

<keygen>

<mark>

<nav>

<output>

Statistici ale versiunilor HTML

Conform site-ului http://try.powermapper.com/Content/images/graphs/html-versions.png:

HTML 5 DOCTYPE este în prezent cel mai folosit, exista pe mai mult de 50% din pagini

in schimb HTML 4.01 a scăzut de la 20% din pagini, în anul 2008, la mai puțin de 5% din pagini pana acum

Dimensiunea totală a eșantionului este de peste 6 milioane de pagini, cu aproximativ 250.000 de noi pagini

Figura 11 Statistici Versiuni HTML

http://try.powermapper.com/Content/images/graphs/html-versions.png

III.6 JavaScript, JQuery și Ajax

JavaScript este un limbaj de programare orientat pe obiecte și se bazează pe conceptul prototipurilor.[3] Acest limbaj ajuta programatorii să realizeze site-uri interactive ce comunică cu vizitatorii, site-uri dinamice, să valideze datele primite din formulare, etc[4].

Inițial limbajul a fost lansat sub numele de LiveScript, însă a fost schimbat din cauza unei strategii de market. Ca și CSS acesta se poate scrie direct în pagina HTML, sau se poate crea un fișier extern cu extensia .js și apoi inclus în pagina

In cadrul proiectului s-a folosit codul JavaScript pentru realizarea……

JQuery

JQuery este o librărie de JavaScript. Dimensiunea redusă a codului și faptul că este compatibil cu toate browserele reprezintă doar două din avantajele acestei librării JQuery.

Ajax este o abreviere de la Asynchronous Javascript And XML și a fost creat în anul 2005.

Acest limbaj a devenit cunoscut după ce Google™ l-a folosit în aplicațiile sale. Daca nu se folosește tehnologia AJAX, pagina web trebuie reîncărcata pentru fiecare interacțiune a unei aplicații cu serverul. Folosind aceasta tehnologie pot fi modificate și încărcate doar anumite parți din pagina, iar în acest mod se obține o încărcare mult mai rapida a paginii web

Arhitectura platformei EduCFP

IV.1 Structura fișierelor proiectului

Aceasta platforma, așa cum s-a precizat în capitolul anterior are la baza arhitectura Model Views Controler.

Fișierele ce fac parte din model sunt responsabile cu preluarea datelor și inserarea acestora în baza de date. Views este responsabil cu afișarea datelor, iar Controllerul interacționează cu utilizatorul.

Structura fișierelor MVC ASP.NET este:

Figura 12 Structura Fisierelor MVC ASP.NET

Fișierul Controller conține clasele:

ConferencesController

SponsorContoller

PlacesController

CalendarController

Figura 13 Folder Controller EduCFP

Clasele create în interiorul folderului Controller trebuie să conțină sufixul controller obligatoriu.

Aceste clase conțin codul pentru crearea legăturilor URL.

De exemplu următorul cod creează URL-urile educfp.com/calendar și educfp.com/calendar/an/luna:

public class CalendarController : MyBaseController

{

public const string ControllerName = "Calendar";

public CalendarController()

{

ViewBag.SelectedSection = "calendar";

}

AppUrlMultilang("Calendars", "/")

public ActionResult Index(string langLocale)

{

return View("Index", DateTime.Now);

}

AppUrlMultilang("Calendars", "/{year}/{month}/")

public ActionResult IndexDated(int year, int month)

{

return View("Index", new DateTime(year, month, 2));

}

}

Folderul Models conține fișierele ce lucrează cu tabelele din baza de date.

Figura 14 Folder Models EduCFP

Funcțiile apelate în cadrul fișierelor cshtml din folderul Views sunt create în cadrul acestor clase.

Exemplu cod pentru afișarea conferințelor din același an și aceeași localitate:

public ConferenceList SimilarConferencesByDateLocation

{

get

{

ConferenceList ret = new ConferenceList();

SqlCommand sql = new SqlCommand("SELECT TOP 5 * FROM conferences WHERE conference_id!=@id AND conference_city_id=@cityID AND conference_id în (SELECT DISTINCT cdate_conference_id FROM conference_dates WHERE YEAR(cdate_date)=@year)");

sql.Parameters.Add("@id", SqlDbType.Int).Value = this.ID;

sql.Parameters.Add("@year", SqlDbType.Int).Value = this.Dates[0].Date.Year;

sql.Parameters.Add("@cityID", SqlDbType.Int).Value = this.CityID;

ret.LoadFromDB(sql);

return ret;

}

}

Exemplu cod pentru afișarea conferințelor din aceeași categorie și același an.

public ConferenceList SimilarConferencesByDateCategory

{

get

{

ConferenceList ret = new ConferenceList();

SqlCommand sql = new SqlCommand("SELECT TOP 5 * FROM conferences WHERE conference_id!=@id AND conference_id în (SELECT cclink_conference_id FROM category_conference_link WHERE cclink_category_id în (" + this.Categories.ToIDCommaString() + ")) AND conference_id în (SELECT DISTINCT cdate_conference_id FROM conference_dates WHERE YEAR(cdate_date)=@year)");

sql.Parameters.Add("@id", SqlDbType.Int).Value = this.ID;

sql.Parameters.Add("@year", SqlDbType.Int).Value = this.Dates[0].Date.Year;

ret.LoadFromDB(sql);

return ret;

} }

Folderul Views stochează fișierele HTML și conține câte un folder pentru fiecare controller, fișierele din cadrul acestor foldere au extensia cshtml

Figura 15 Folderul View EduCFP

Exemplu Cod parțial Index.cshtml din folderul Home:

<div class="container">

<div class="span3">

<div class="home-content-box">

<h2 style="margin-left: 20px; width: 700px; ">Conferences with close first submission deadlines</h2>

<ul> @foreach (Conference conf în ConferenceList.HomePageConferences)

{

<li style="width:auto; height:30px;"><a href="~/conference/@conf.ID/"> @conf.Name</a></li>

}

</ul>

<div class="home-content-box-items"> </div>

</div>

<div class="home-content-box">

<h2 style="margin-left:20px;">Recently added conferences</h2>

<ul>

@foreach (Conference conf în ConferenceList.RecentlyAddedConferences)

{

<li style="width:auto; height:30px;"><a href="~/conference/@conf.ID/"> @conf.Name </a> </li>

}

</ul>

<div class="home-content-box-items"> </div>

</div>

Conținutul afișat pe paginile platformei este inserat din tabelele create în SQL SERVER, folosind funcțiile necesare.

Conexiunea la baza de date de realizează în fișierul Web.config astfel:

<connectionStrings>

<add name="DefaultConnection" connectionString="Data Source=89.44.121.78,14333;Database=EduCFP;User ID=fa;Password=educfp; Trusted_Connection=False;Encrypt=False; Connection Timeout=30;" providerName="System.Data.SqlClient" />

<add name="DebugConnection" connectionString="Data Source=BIANCA-PC\SQLEXPRESS;Database=EduCFP;Trusted_Connection=True;Encrypt=False;Connection Timeout=30;" providerName="System.Data.SqlClient" />

</connectionStrings>

Structura tabelelor din baze de date este următoarea:

Figura 16 Tabele SQL

Figura 17 Diagrama SQL

IV.2 Interfața Platforma EduCFP

Platforma web este structurată în două direcții: Conferințe și obiective turistice și conține 4 secțiuni:

Categories,

Calendar,

Places,

Sponsors

Pe prima pagina sunt afișate conferințele al căror termen de finalizare a articolelor se aproprie de sfârșit și conferințele ce își modifica anumite date, precum data de trimitere a articolelor.

Pentru a realiza aceasta pagina s-au creat fișierele: HomeController.cs în folderul Controller și Index.cshtml în folderul Home din cadrul folderului Views.

Codul pentru afișarea conferințelor al căror deadline este aproape și conferințele nou adăugate pe prima pagina a fost scris următorul cod:

<div class="home-content-box">

<h2 style="margin-left: 20px; width: 700px; ">Conferences with close first submission deadlines</h2>

<ul> @foreach (Conference conf în ConferenceList.HomePageConferences)

{

<li style="width:auto; height:30px;"><a href="~/conference/@conf.ID/"> @conf.Name</a></li>

}

</ul>

<div class="home-content-box-items"> </div>

</div>

<div class="home-content-box">

<h2 style="margin-left:20px;">Recently added conferences</h2>

<ul>

@foreach (Conference conf în ConferenceList.RecentlyAddedConferences)

{

<li style="width:auto; height:30px;"><a href="~/conference/@conf.ID/"> @conf.Name</a></li> }

</ul>

<div class="home-content-box-items"> </div>

</div

Figura 18 Home Page

Pagina Categories conține lista de categorii din care fac parte conferințele.

Pentru a fi afișată această listă de categorii din baza de date s-au creat fișierele:

In folderul Controler

ConferencesControler

In folderul Models:

Category.cs

CategoryConferencelinks.cs

City.cs

Coutry.cs

Conference.cs

In folderul Views

Folderul Conferences

Keyword.cshtml- aceasta clasa încarcă toate conferințele unei singure categorii

Index.cshtml – Aceasta clasa este responsabila cu designul paginii Conferințe

Conference.cshtml –in cadrul acestei clase se apelează funcțiile create în clasele din folderul Models, ce încarcă informațiile necesare unei singure conferințe.

In fișierul ConferencesControler se creează legăturile URL din pagina conference către pagina categoriei și către pagina conferinței.

In momentul în care se creează o pagina web este foarte important ca structura URL să fie cât mai clară și cât mai ușor de reținut. Un vizitator își poate da seama pe ce pagina se află în acel moment din URL atât timp cât acesta este scris corect. De obicei URL-urile trebuie să conțină cuvinte cheie din cadrul acelei pagini, să aibă sub 100 de caractere, iar dacă avem cuvinte compuse să fie scrise cu cratima.

De exemplu un URL către categoria Digital libraries trebuie să arate astfel: http://www.educfp.com/conferences/digital-libraries/. În general cuvintele din URL trebuie să fie scrise cu litere mici.

Exemplu cod pentru crearea URL-ului paginii conference:

http://www.educfp.com/conferences/

public const string ControllerName = "Conferences";

AppUrlMultilang("Conferences", "/")

public ActionResult Index(string langLocale)

{

CategoryList cl = new CategoryList();

cl.LoadFromDB();

return View(cl);

}

Exemplu cod pentru crearea URL-ului paginii categoriei:

http://www.educfp.com/conferences/categorie/

AppUrlMultilang("Conferences", "/{keyword}/")]

public ActionResult Keyword(string keyword, string langLocale)

{

CategoryList cl = new CategoryList();

cl.LoadFromDB();

Category c = null;

foreach (Category cat în cl)

{

if (cat.Name.ToURL() == keyword)

{

c = cat;

break;

}

}

if (c != null)

{ return View(c);

}

else

{

return HttpNotFound("Category not found"); } }

In folderul Models se creează funcțiile necesare, în cadrul cărora se interacționează cu baza de date.

Pentru încărcarea tuturor conferințelor, in cadrul clasei Conference.cs, s-a realizat funcția CategoryList:

public CategoryList Categories

{

get

{

if (_categories == null)

{

_categories = new CategoryList();

CategoryList all=new CategoryList();

all.LoadFromDB();

foreach (CategoryConferenceLink ccl in this.CategoryLinks)

{

Category cat = all.FindByID(ccl.CategoryID);

_categories.Add(cat);

}

}

return _categories;

}

set

{

_categories = value;

}

}

Pentru a încărcarea toate conferințele unei singure categorii s-a creat funcția ConferenceList:

private ConferenceList _Conferences = null;

public ConferenceList Conferences

{

get

{

if (_Conferences == null)

{

_Conferences = new ConferenceList();

_Conferences.LoadForCategoryID(this.ID);

}

return _Conferences;

}

set

{

_Conferences = value;

}

}

Fișierele din folderul Views conțin codul html pentru stilizarea paginii categoriilor, categoriei și conferinței.

Index.cshtml:

@{

int split = 4;

}

@for (int j = 0; j < split; j++)

{

<div class="span3">

<ul>

@for (int i = Model.Count / split * j; i < Model.Count / split * (j+1); i++)

{

<li><a href="/conferences/@Model[i].Name.ToURL()/">@Model[i].Name @ if(Model[i].Conferences.Count >0) { <text> (@Model[i].Conferences.Count)</text>}</a></li>

}

</ul>

</div>

}

</div>

Figura 19 Lista de Categorii

Keyword.cshtml:

Exemplu cod parțial pentru a afișa conferințele din cadrul unei categorii:

@model EduCFP.Models.Category

@{

ViewBag.Title = @Model.Name;

}

<h2 style="width:auto; height:50px;"><strong>@Model.Name</strong></h2>

@foreach (Conference con în Model.Conferences)

{

<li style=" width:auto; height: 25px;" ><a href="~/conference/@con.ID/"> @con.Name</a></li>

}

Clasa keyword.cshtml este creata pentru a afișa pagina unei categorii. Acesta conține toate conferințele ce fac parte din acea categorie.

Figura 20 Pagina unei Categorii

Fișierul Conference.cshtml a fost creat pentru afișarea informațiilor necesare pentru pagina conferinței.

Exemplu cod parțial fișier Conference.cshtml:

<h2 ><strong>@Model.Name</strong></h2>

<div class="container">

<div class="span5">

<h3 style="text-align:center"><b>@Model.ShortDescription</b></h3>

<ul>

<li style="margin-left: -20px; padding-left: 0;"><b>Categories:</b></li>

@foreach (EduCFP.Models.Category cat in Model.Categories)

{

<li><a href="~/@Resources.URLConferences/@cat.Name.ToURL()/" target="_blank">@cat.Name</a></li>

}

</ul>

<ul>

<li style="margin-left: -20px; padding-left: 0;"><b>Deadlines:</b></li>

@foreach (ConferenceDates cd in Model.Dates)

{

<li><i>@cd.DateType</i>: @cd.Date.ToInternationalString()</li>

}

<li></li>

</ul>

<p>Location:@Model.HotelName, @Model.City.Name, @Model.City.Country.Name</p>

<p> Link: <a href="@Model.Link" target="_blank">@Model.Link</a> </p>

</div>

<div class="span6">

…………………………………………………………………………………………………

@{

ConferenceList similarDateLocation = Model.SimilarConferencesByDateLocation;

}

@if (similarDateLocation.Count > 0) {

<p><a href="~/calendars/@Model.Dates[0].Date.Year/@Model.Dates[0].Date.Month/">Other conferences in @Model.Dates[0].Date.Year </a></p>

<ul class="side-extra">

@foreach (Conference conf in similarDateLocation)

{

<li><a href="~/conference/@conf.ID/">@conf.Name</a></li>

}

</ul>

}

<p>Similar conferences</p>

<ul class="side-extra">

@foreach (Conference conf in Model.SimilarConferencesByDateCategory)

{ <li><a href="~/conference/@conf.ID/">@conf.Name</a></li> }

Pagina unei Conferințe oferă informații despre categoria/categoriile din care face parte conferința, datele la care trebuie să fie gata articolele, o scurta prezentare, localizarea pe harta a locului unde se va susține conferința, precum și alte conferințe din aceeași categorie, același an/localitate:

Figura 21 Pagina unei conferințe

Pentru inserarea modului de harta s-a folosit codul JavaScript.

<script type="text/javascript">

var mapLoaded = false;

$(document).ready(function () {

$("#gmap_hotel").css("width", "300px;");

$("#gmap_hotel").css("height", "200px;");

});

</script>

…………………………………………………………………………………………………………..

<script type="text/javascript">

$(document).ready(function () {

var map = new GMaps({

div: '#gmap_hotel',

lat: @Model.HotelLatitude.ToString(System.Globalization.CultureInfo.InvariantCulture),

lng: @Model.HotelLongitude.ToString(System.Globalization.CultureInfo.InvariantCulture),

zoom: 15,

zoomControl : false,

panControl : false

});

map.addMarker({

lat: @Model.HotelLatitude.ToString(System.Globalization.CultureInfo.InvariantCulture),

lng: @Model.HotelLongitude.ToString(System.Globalization.CultureInfo.InvariantCulture),

title: '@Model.HotelName',

click: function (e) {

},

infoWindow: {

content: '<p>@Model.HotelName</p>'

}

});

mapLoaded=true;

});

</script>

Pagina Calendar oferă accesul de a căuta conferințele după dată.

Pentru realizarea acestei pagini s-au creat urmatoarele fisiere:

Folderul Controller:

CalendarCaontroller

Folderul Views

Index.cshtml

Exemplu cod partial pentru crearea URL-ului www.educfp.com/calendar și

www.educfp.com/calendar/an/luna:

[AppUrlMultilang("Calendars", "/")]

public ActionResult Index(string langLocale)

{

return View("Index", DateTime.Now);

}

[.AppUrlMultilang("Calendars", "/{year}/{month}/")]

public ActionResult IndexDated(int year, int month)

{

return View("Index", new DateTime(year, month, 2));

}

Având în vedere că pentru a afișa calendarul nu s-a necesitat nici o interogare în baza de date și nici o funcție, în cadrul folderului Models nu s-a mai creat nici o clasă.

Codul pentru crearea acestuia s-a realizat direct in fișierul Index.html din folderul Calendar, aflat in Folderul Views.

Exemplu cod parțial fișier Index.cshtml:

@{

ViewBag.Title = "Calendar";

DateTime lastDayNeeded = new DateTime(Model.Year, Model.Month, 1).AddMonths(1).AddDays(-1);

…………………………………………………………………………………………………

DateTime prevMo = new DateTime(Model.Year, Model.Month, 1).AddMonths(-1);

DateTime nextMo = new DateTime(Model.Year, Model.Month, 1).AddMonths(1);

}

<h2>Calendar</h2>

<table class="table bordered hovered striped">

<tr>

<th><a href="~/@Resources.URLCalendars/@prevMo.Year/@prevMo.Month/">&lt;&lt;</a></th>

<th colspan="5" style="text-align: center;">@Model.Year, @Model.Month</th>

<th><a href="~/@Resources.URLCalendars/@nextMo.Year/@nextMo.Month/">&gt;&gt;</a></th>

</tr>

<tr style="align-content:center">

<th width="14.25%">Sunday</th>

<th width="14.25%">Monday</th>

<th width="14.25%">Tuesday</th>

<th width="14.25%">Wednesday</th>

<th width="14.25%">Thursday</th>

<th width="14.25%">Friday</th>

<th width="14.25%">Saturday</th>

</tr>

@{

DateTime currentDate = new DateTime(Model.Year, Model.Month, 1);

while((int)(currentDate.DayOfWeek)>0){

currentDate = currentDate.AddDays(-1);

} ………………………………………………………………………………………………………

<td @if(currentDate.Month!=Model.Month){ <text> class="other-month"</text>}><span>@currentDate.Day</span><br />

………………………………………………………………………………………………………

Figura 22 Pagina Calendar

Pagina Places prezintă o listă de localități în care sunt susținute conferințele.

Fisierele create pentru aceasta pagina sunt:

Folder Controller

PlacesController

Folder Models

City.cs

Folder Views

Places.cshtml

Index.cshtml

Vizitatorul are posibilitatea de a vedea câte conferințe sunt realizate într-un anumit oraș și să vadă doar acele conferințe.

Figura 23 Pagina Localități

În momentul în care ajunge pe pagina orașului interesat, i se ofera informații atât despre conferintele ce au loc în acel oraș, cât și informații despre atracțiile turistice din acel oraș.

Figura 24 Pagina unei singure localități

Pagina Sponsors prezintă lista cumulată a sponsorilor si conferintele fiecarui sponsor.

Fisierele create pentru acesta pagina sunt:

Folder Controller

SponsorController

Folder Models

Sponsor.cs

Folder Views

Index.cshtml

Pentru a putea adauga sau modifica conferinte organizatorul se poate autentifica folosind butonul de log in sau folosind contul de facebook.

Figura 25 Pagina Log in

Pentru a putea crea autentificarea folosind contul de facebook, a fost necesara crearea unei aplicatii pe facebook cu numele site-ului.(vezi figura 27.)

Autentificarea folosind contul de facebook a fost motivul pentru care s-a dorit achizitionarea domeniului www.educfp.com.

De pe localhost ar fi aratat asa:

Figura 26 Eroarea afisata la incercarea de a conecta aplicatia facebook pe localhost

Figura 27 Creare aplicatie EduCFP

Manual de utilizare din punctul organizatorului

Daca organizatorul doreste sa foloseesca codul de facebook pentru a se autentifica acestuia ii va aparea urmatoarea interogare inainte de autentificare:

Figura 28 Accept autentificare Facebook

Daca nu are nu are un cont de facebook, poate folosi pagina register pentru a isi crea un cont.

Figura 29 Pagina autentificare

Dupa autentificare organizatorul poate adauga conferinte si modifica conferinte adaugate de el.

Figura 30 Profil organizator

Figura 31 Administrare conferințe

Concluzii

După realizarea tuturor obiectivelor s-a realizat un grafic pentru a vedea daca s-a reușit depășirea site-urilor concurente.

Figura 32 Grafic comparativ site-uri concurente

Funcții realizate și in curs de realizare:

Tabel 2 Lista de funcții ale website-urilor concurente

Legendă: -funcție disponibilă în presant

-funcție planificată pentru viitor

Lista termeni

AJAX 24

ASP.NET MVC 12

conferință 5

conferință academică 5

CSS3 21

HTML5 22, 23

JavaScript, JQuery si Ajax 24

Limbajul C# 11

Microsoft SQL Server 2012 17

Visual Studio 2013 11

Lista figuri

Figura 1 Site Lanyrd.com 8

Figura 2 ScreenShot site sonferencealerts 9

Figura 3 Site AllConferences.com 10

Figura 4 Dosare MVC 13

Figura 5 Folderul Controller 13

Figura 6 Folderul Models 14

Figura 7 Folderul Views 15

Figura 8 Metro ui Bara meniu 18

Figura 9 Bara meniu EduCFP 18

Figura 10 Componenta panel-collapsible Metro ui 20

Figura 11 Statistici Versiuni HTML 23

Figura 12 Structura Fisierelor MVC ASP.NET 25

Figura 13 Folder Controller EduCFP 25

Figura 14 Folder Models EduCFP 26

Figura 15 Folderul View EduCFP 28

Figura 16 Tabele SQL 30

Figura 17 Diagrama SQL 31

Figura 18 Home Page 33

Figura 19 Lista de Categorii 37

Figura 20 Pagina unei Categorii 38

Figura 21 Pagina unei conferințe 40

Figura 22 Pagina Calendar 43

Figura 23 Pagina Localități 44

Figura 24 Pagina unei singure localități 44

Figura 25 Pagina Log in 45

Figura 26 Eroarea afisata la incercarea de a conecta aplicatia facebook pe localhost 45

Figura 27 Creare aplicatie EduCFP 46

Figura 28 Accept autentificare Facebook 47

Figura 29 Pagina autentificare 47

Figura 30 Profil organizator 48

Figura 31 Administrare conferințe 48

Figura 32 Grafic comparativ site-uri concurente 50

Lista Tabele

Tabel 1 Eperiență ASP.NET 12

Tabel 2 Lista de funcții ale website-urilor concurente 41

Bibliografie

http://ro.wikipedia.org/wiki/Visual_Studio

http://ro.wikipedia.org/wiki/Microsoft_SQL_Server

http://ro.wikipedia.org/wiki/JavaScript

http://etutoriale.ro/articles/1771/1/Tutorial-complet-JavaScript-(prima-parte)/

C.J. Date – SQL and Relational Theory, 1st Edition, Ed. O'Reilly Media, Inc., 2009

Herbert Schildt – C#, Ed. Teora, 2009

Robin Reynolds Haertle – POO cu Visual Basic.Net și Visual C#.Net, Ed.Teora, 2009.

http://ctrl-d.ro/development/resurse-development/introducere-in-css3-proprietati/

Ioan Asiminoaei, curs asp_4_mvc_2014.pdf, 2014

CREAREA BAZELOR DE DATE SQL SERVER

ssmg3645@

Bibliografie

http://ro.wikipedia.org/wiki/Visual_Studio

http://ro.wikipedia.org/wiki/Microsoft_SQL_Server

http://ro.wikipedia.org/wiki/JavaScript

http://etutoriale.ro/articles/1771/1/Tutorial-complet-JavaScript-(prima-parte)/

C.J. Date – SQL and Relational Theory, 1st Edition, Ed. O'Reilly Media, Inc., 2009

Herbert Schildt – C#, Ed. Teora, 2009

Robin Reynolds Haertle – POO cu Visual Basic.Net și Visual C#.Net, Ed.Teora, 2009.

http://ctrl-d.ro/development/resurse-development/introducere-in-css3-proprietati/

Ioan Asiminoaei, curs asp_4_mvc_2014.pdf, 2014

CREAREA BAZELOR DE DATE SQL SERVER

ssmg3645@

Similar Posts