Loading...
nakov avatar nakov SoftUni Team Trainer 5295 Точки

SPA with AngularJS: курсови проекти

Колеги, готови сме с условията на курсовите проекти за курса "SPA with AngularJS":

Както знаете, този курс ще се завършва с практически проект, който всеки си прави вкъщи. Ще има защита на живо и по Skype за онлайн курсистите.

Какво представлява AngularJS Ads проектът?

  • Дадено вие как изглеждат екраните от система за онлайн обяви (UI prototype)
  • Дадена е REST услуга, която пази данните и имплементира всички необходини действия
  • Посетителите на сайта без регистрация могат да разглеждат обявите, да се регистрират и логват
  • Логнатите потребители могат да си редактират обявите
  • Администраторът (поребител с по-високи права) може да редактира обяви, потребители, категории и градове - тази част е бонус, защото е по-трудна и по-оебмна за имплементация

За да ви помогнем по изграждането на практическия курсов проект добавяме още учебни занятия към курса:

  • 5 януари от 12 до 20 часа - колегата Владо ще пише проекта на живо пред всички, от нулата стъпка по стъпка. Ще запишем видео за онлайн курсистите. Няма да ви дадем сорс кода, за да си го напишете сами. Това е важно условие в заданието.
  • 6 януари - от 16 до 22 часа - ще правим Lab, отново работа по практическия проект.
  • 11 януари (неделя) - защита на проектите - ще направим записване и разпределение по часове.

В понеделник и вторник остават планираните учебни занятия:

  • Services, ruting, directives
  • Работа по практическия проект

Обръщам внимание че има важно изискане да работите с Git и да commit-вате редовно в GitHub. Ако не го правите, ще загубите половината от точките за проекта. Трябва да покажете, че сте работили здраво по този проект и не сте го преписали от ваш колега.

Проектите са индивидуални. Няма да има разпределение на отбори.

Ще запиша и видео разяснения по проекта до няколко дни.

Започвайте работа! Имате право да обсъждате публично и да споделяте кой до къде е стигнал.

За REST услугите админската парола е admin / admin.

Препоръчам ви да си пуснете услугите локално (показано е във видеото как става с [Ctrl+F5] във Visual Studio).

19
JavaScript Applications 26/12/2014 22:39:07
kasskata avatar kasskata 492 Точки

Проблем Със сървъра. На 

PUT api/user/Profile

Ми дава 500: Internal Server Error, Ако може някой да го погледне.

Който прочете това да вземе мерки, MОЛЯ, спрете да слагате огромни снимки на обявите си в онлайн сървъра, лагва ми страницата на лаптопа, а не искам да знам при по-слаби машини как е. А тези които са готови с администрацията, изтрийте картинките, моля. Особено родвайлера :D 

Ако не днес то утре аз ще съмготов с триенето предполгам... :D 

0
04/01/2015 05:29:44
ttitto avatar ttitto 1153 Точки

пусни си локално услугите и няма да имаш проблем с големите снимки!

0
kasskata avatar kasskata 492 Точки

Сигурен съм че е така, но онлайн е по-весело, пък и не ми се занимава локално да го правя тепърва на завършен проект, вземе нещо да гръмне... :D

1
f1mp3r avatar f1mp3r 35 Точки

И аз имам същия проблем. Същото е и с промяната на паролата.

0
08/01/2015 20:23:13
venconi91 avatar venconi91 18 Точки

Здравейте колеги, искам да обърна внимание че в документацията (word документа ) в следното : 

Change User Password

Endpoint: http://softuni-ads.azurewebsites.net/api/user/changePassword, Method: DELETE
Headers: Authorization: Bearer user_access_token
Parameters: oldPassword, newPassword, confirmPassword

има грешка - метода не трябва да е DELETE а PUT както е в POSTMAN-a : )

1
04/01/2015 10:11:17
VGeorgiev avatar VGeorgiev 1384 Точки

Благодаря. Оправено е.

0
borislavml avatar borislavml 368 Точки

Някаква идея как стоят нещата с rejected обявите на сървъра? В смисъл като я reject-не админа, влиза ли  в някакъв черен списък id-то. Мога ли след това да я edit-вам и publish again, или остава само опцията delete. Логично е да мога..

2
kasskata avatar kasskata 492 Точки

Хората, които още не са мислили за alert системата, имам страхотна идея която ще ви спести писането на излишен код. 

Това е моя коледен подарък след като Наков даде своя: 

HTML, този код трябва да е някъде високо в index.html или да не влиза в ng-view за да се визуализира всеки път при викане(статичен HTML таг(не мога да повярвам че го казах:D)):

<div class="row" style="height: 35px; overflow: hidden;" id="alerts">

</div>

JS code в някоe Factory, или service:

function alertFade(type, message) {
//alerts Bootstrap: info, warning, success, danger
window.scrollTo(0, 0);
var $div = $('<div id="addSuccess" class="alert alert-' + type + '"><span><strong>Feedback</strong></span>' + message + '</div>');
$('#alerts').append($('<div id="addSuccess" class="alert alert-' + type + '">' + message + '</div>'));
$('#alerts').children().fadeIn().delay(3000).fadeOut('slow', function () {
$(this).remove();
});
}

И в контролера когато потрябва(при success или error):

staticFuncs.alertFade('danger', 'Edit on Poster failed. Please try again later.');
3
04/01/2015 19:23:02
arsoman avatar arsoman 419 Точки

Колеги, имам въпрос защо при извикване на url: http://softuni-ads.azurewebsites.net/api/admin/ads като админ, връща твърде малко обяви, около 10-11 на брой, като само обявите на тест-потребителя са повече?! Някой пробвал ли го е?

0
ttitto avatar ttitto 1153 Точки

Защото ти връща само обявите от първата страница и с дефолтния pageSize (който е 10). Пробвай да пуснеш заявката с параметър url...?pageSize=20 и ще ти върне 20 обяви. Така работеше и заявката за публичните обяви.

1
arsoman avatar arsoman 419 Точки

Значи явно задължително ще се прави paging...Тъкмо мислех да пропусна...

0
arsoman avatar arsoman 419 Точки

Колеги, от няколко дни имам следния проблем: при създаване на нова обява, при деактивиране и при ре-събмитване ПОНЯКОГА не се обновява информацията, примерно съм я ресъбмитнал, дал съм отново да извика контролера, в заявката по мрежата пристига обновено, но визуализацията е старата! Същото е при деактивиране, а при нова обява само понякога също НЕ ъплоудва снимката, при положение, че я подавам в заявката към сървъра както трябва! Вие имате ли подобен проблем, защото не искам заради бъг да се отнемат точки! Отбелязвам, че респонса от сървъра е коректен и ми дава обновени данни...

PS: заявката за нова обява нещо е счупена, до снощи работеше, ще си я видя, може аз да съм объркал, но при другите проблема е истински...

Странно, когато е с английски букви обявата, се качва без проблеми, с български пак понякога прави грешки и не качва снимката...

Последно, проекта съм го качил на сайт, и оттам правя тези неща, може ли нещо в тази връзка да става?

Значи май намерих проблема с бутоните при деактивиране и ре-постване, просто на извикващите функции сложих забавяне от 100 милисекунди, явно толкова му стига за да обнови инфото на сървъра, явно твърде бързо взема заявката и не обновява инфото в html-a. Сега обаче остана проблема със снимките, някой да има подобен опит?

0
05/01/2015 13:28:37
borislavml avatar borislavml 368 Точки

Аз досега не съм имал проблеми от тоя род със сървъра. Каквото му подам, ако ми е чиста заявката рекуеста си връща каквото трябва. Коя информация имаш предвит да се обнови при ресъбмит на деактивирана обява? Информация се променя само при едит на обява... в този случай аз си правя релоуд на page-a $route.reload() , което ми презарежда и обявите за да ми пристигне обновена обявата. Иначе няма как да визуализирам директно променената обява. Има де, с jQuery, може да набуташ на едит-ваната обява ново-въведените данни, но няма да е "истинска" актуализацията и не е никак коректно според мен. Според мен някъде кода ти гърми, няма как да пуснеш успешна заявка за нова обява с валиден  base64string  за dataImageUrl и после да ти върне празен стринг или null.  

1
05/01/2015 13:32:17
arsoman avatar arsoman 419 Точки

Това с route.reload() не го знаех, ползвах едни хакове за да презаредя, май е хитро и ще го пробвам, ако остане време, иначе проблема с бутоните го реших, просто дадох на презареждащата функция да изчака 100 милисекунди, но проблема със снимките стои, просто понякога не ми ги слага в тялото на заявката...

PS: За съжаление никъде не ми дава грешка в конзолата, просто понякога не закача dataImageUrl към заявката, ще продължа да разследвам...

0
05/01/2015 14:54:36
presian avatar presian 223 Точки

На някой да му направи впечатление, че при едит на профила се изисква задължително телефон, а при регистрация не?

Много странно!

0
VGeorgiev avatar VGeorgiev 1384 Точки

Оправих го само трябва да deploy-нем към azure. Ако си нетърпелив си свали локална версия :)

0
presian avatar presian 223 Точки

Аз работя с локалната, така или иначе. Сега ще си я ъпдейтна.laughing

Между другото мисля, че има някакво разминаване и при статусите на обявите (поне според това което е обяснил Наков - 1,2,3,4), а в локалната по документация са 0,1,2,3 - и реално са така в базата!

0
arsoman avatar arsoman 419 Точки

Здравейте, само да попитам видеото от понеделник по изработка на SPA ще бъде ли дадено като линк в сайта на курса? Засега виждам такова видео в youtube-канала, но е 4 часа, а по предварително инфо май беше 8 часа. Две видеа ли са, или просто упражнението е приключило по-бързо?

0
LittleNinja avatar LittleNinja 71 Точки

Това, което е 4 часа е самия Workshop. Другото видео от тогава е: AngularJS Best Practices.. И като сложиш няколко почивки стават 8 часа.. :)

3
arsoman avatar arsoman 419 Точки

Благодаря ти! Тоест за 4 часа се прави проекта? Малко ми е чудно, ще го гледам довечера, но колкото и да е добър...

0
externo avatar externo 119 Точки

дали ще бъде качено видеото от 

  • 6 януари - от 16 до 22 часа - ще правим Lab, отново работа по практическия проект

?

0
cheezus1 avatar cheezus1 6 Точки

 Здравейте и честита нова година на всички,

 Имам следния въпрос, който може и да е малко глупав, но ще помоля някой, който е сигурен, да ми отговори, тъй като се случи така, че този курс почти го изпуснах. Кодът от workshop-a имаме ли право да го ползваме в проектите?

 Благодаря Ви предварително :)

1
Samuil.Petrow avatar Samuil.Petrow 1550 Точки

Според мен да, стига да можеш да го "защитиш" и обясниш. Поне не виждам причина да е другояче.

2
07/01/2015 11:21:56
Yulia avatar Yulia 1346 Точки

Аз моля за своевременна информация за поправителният/повишителен изпит по AngularJS. Все ще има някой, който няма възможност да си защити проекта тази неделя, например. И нова задача ли ще се дава, ще има ли достатъчно време за изпълнението й, или ще е същата, но с повече време? Честно ли ще е така? Ще има ли изобщо повишителен/поправителен изпит и какво планирате като цяло - да няма прекалено много изненади после.

3
07/01/2015 13:30:16
Matrix avatar Matrix 1092 Точки

В откриващото видео за тази година от новата зала, Наков ми се стори, че каза, че поправителния изпит ще е върху същия проект, но нека все пак още веднъж се помисли и потвърди... Тъй като, ако е така, честно казано предпочитам директно да се ява на поправката, отколкото сега да жертвам от ценното време за подготовка по КПК и Unity 3D изпитите, за да предам колкото се може по-завършен Ангулар проект в срок тази неделя...

0
Yulia avatar Yulia 1346 Точки

Да, то всеки така ще иска да има повече време - да се яви направо на поправката...

1
07/01/2015 14:50:10
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.