3D Art Portfolio е ASP.NET MVC
веб апликација која им овозможува на корисниците да се регистрираат и да ги објавуваат своите 3D креации
во форма на 2D рендерирани слики
, заедно со име и опис за истите. Покрај ова, артистите можат да пребаруваат други корисници и да ги гледаат нивните објави, како и да ставаат реакции на објавите. Оваа апликација му овозможува на артистите да ја користат како свое професионално 3D портфолио
кое можат да го споделуваат кога ќе аплицираат за работа кај клиенти и компании кои имаат потреба од 3D артисти.
3D Art Portfolio е креирана како проектна задача во склоп на предметот Интернет Технологии
во учебната 2020/2021 година на Факултетот за информатички науки и компјутерско инженерство – ФИНКИ при Универзитетот “Св.Кирил и Методиј“ – Скопје. Главната идеја за оваа апликација беше добиена од една слична професионална веб страна која нуди многу поголем број на функционалности и е добро позната меѓу 3D артистите ширум светот – ArtStation.
Апликацијата е составена од неколку главни контролери
(Profile
, Project
, Administrator
) кои се задолжени за обработување на најголем дел од текот на апликацијата. Искористен е Entity Framework
преку кој се овозможи системот за регистрација и најава на корисници (Account контролерот
).
Апликацијата содржи голем број на Models
и View Models
кои се користат за чување и испраќање на најразлични информации и податоци помеѓу контролерите и веб прелистувачот. Некои од поважните модели се: Profile
, ProjectEntry
, NewProjectEntry
и EditProjectEntry
.
Апликацијата има најразлични Views
кои му се прикажуваат на корисникот во зависност од ситуацијата. Сите погледи се стилизирани на ист начин, а воведени се и посебни стилизирани погледи кои се прикажуваат како резултат на настаната грешка при обработката на барањето од страна на контролерите.
Апликацијата користи една база на податоци во која има повеќе релациони табели кои овозможуваат голем број на функционалности и полесна обработка на податоците. Покрај табелата за корисници, направени се и табели за проектите, сликите од проектите, реакциите на проектите и софтверот искористен при креирањето на проектите.
Апликацијата има фолдер наречен UserUploads
во кој се чуваат сите прикачени слики од корисниците. При регистрација на нов профил се добива ID
и во фолдерот UserUploads
се прави нов фолдер со име ID
. Во овој фолдер се сместуваат сите фајлови кои соодветниот корисник ги прикачил на серверот. При креирање на нов проект се добива ID
и во фолдерот на соодветниот корисник се прави нов фолдер со ова ID
. Во овој фолдер се сместуваат сите фајлови кои соодвествуваат за конкретниот проект. Исто така, во UserUploads
има посебен фолдер со име Temp
, каде се чуваат привремени фајлови – на пример, при промена на профилна фотографија, прво фотографијата се сместува во овој фолдер, а потоа, откако ќе се потврди направената измена, фотографијата се префрла во фолдерот на соодветниот корисник.
Скоро на целата апликација (со исклучок на почетната страна и страните за најава и регистрација) е имплементирана автентикација – само најавени корисници можат да ги користат сите можности кои ги нуди истата.
Сите автентицирани корисници се поделени во две улоги: Администратор
и Корисник
. При регистрација на нов корисник, на истиот автоматски му се доделува улогата Корисник
. Постои еден администратор кој преку својот профил може да уредува делови од апликацијата како и да отстранува цели корисници од апликацијата.
Администраторот нема овластувања да креира проекти и да става реакции на објавите. При таков обид, апликацијата ќе прикаже соодветна порака. Корисниците немаат овластувања да пристапат до било која акција на администраторот. Исто така, еден корисник нема овластувања да ги изменува, бриши или да додава нови објави во име на друг корисник. При таков обид, апликацијата ќе прикаже соодветна порака.
Апликацијата интензивно користи Datatables
и Bootbox
компоненти. Datatables
се користат за листање на корисниците при нивно пребарување, за приказ на сите објави на даден корисник, за приказ на сите корисници кои ставиле реакција на дадена објава и слично. Bootbox
се користи за приказ на резултатите од пребарувањата, како и за приказ на слики – при клик на слика се отвора Bootbox
прозорец во кој се прикажува истата.
Апликацијата користи jQuery
за најразлични работи, меѓу кои и: едноставни анимации на некои елементи, додавање и бришење на елементи, како и користење на Datatables
. Во комбинација со Ajax
, jQuery
e искористен за да се прават асинхрони повици до серверот и да се обработат податоците кои се добиени како одговор. Поважни функционалности имплементирани со Ajax
се: системот за пребарување на сите корисници, системот за ставање реакции на објавите и системот за бришење на слики од проектите.
Низ целата апликација се користи еден ист стил со цел да се добие конзистентност во дизајнот на апликацијата. Апликацијата има посебен CSS
фајл кој во комбинација со готовите Bootstrap
класи е искористен за да се стилизира целата апликација. Исто така, искористена е надворешна библиотека за икони – Font Awesome – за да се прикажат стилизирани икони за емаил, телефон, пребарување и слично на неколку места низ апликацијата.
Дополнително направени се посебни страници за прикажување на грешки кои се стилизирани на ист начин како и целата апликација. Овие страници се прикажуваат при било каква грешка настаната при процесирање на барањата.
3D Art Portfolio е комплетно функционална веб апликација која момелтано повеќе наликува на мини социјална мрежа која има многу можности за надоградба, меѓу кои и: систем за следење/спријателување помеѓу корисниците, систем за пополнување на целосно CV на корисниците како и систем преку кој компаниите можат да ги разгледуваат профилите на корисниците и да ги контактираат оние 3D артисти кои се соодветни за работната позиција која компанијата ја нуди.