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
presian avatar presian 223 Точки

Хора аз нещо не мога да се ориентирам явно, но как взимате един юзер за да го едитва админа? Аз не намерих такава заявка!

1
presian avatar presian 223 Точки

Влади, аз това го видях, но това е след като си го едитнал. Аз имам предвид, че няма заявка примерно getById, както за обявите за да вземеш вече съществуваща обява и да я едитваш. 

  • Admin Edit User #/admin/users/edit/:id

подбно е и с градовете и категориите.

0
08/01/2015 11:37:56
crazy7 avatar crazy7 177 Точки

За градовете и категориите няма заявка да го вземеш по ID и аз затова сложих и името при едит в url, както ID-то и след това от там зареждам името в инпута.

 

Изглежда нещо от този род:

localhost:1111/#/admin/town/edit/12/name/Varna

 

Но това няма да сработи при User, защото там е доста информацията....

1
08/01/2015 14:03:42
Matrix avatar Matrix 1092 Точки

Ще има ли днес яснота за разпределението на защитата?

3
IvayloNikolov avatar IvayloNikolov 14 Точки

Нека поне се внесе яснота за онлайн защитите. Дали последно ще може да защитаваме онлайн ако сме присъствено, защото с всеки мейл се променя становището. 

0
arsoman avatar arsoman 419 Точки

Аз не съм получавал никакъв и-мейл по темата, все още не знам нищо за разпределението, явно утре ще научим на изпита по Unity...

1
Petya avatar Petya 2461 Точки

Здравейте! Преди малко пуснахме мейли с разпределение, както и повече информация за протичане на защитата по SPA with AngularJS курса.

2
kgerov avatar kgerov 49 Точки

Здравейте! Някаква идея защо при опит за триене на категория/град ми дава 500 Internal Server Error? Пробвах и през Постмна и там получавам същата грешка? Предполагам, че проблема е в това, че не могат да се трия градове/категори, за които вече са публикувани обяви?

0
09/01/2015 18:03:11
arsoman avatar arsoman 419 Точки

Това е сървърна грешка, не е от теб, вероятно временен проблем със сървъра...

0
Shade avatar Shade 33 Точки

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

0
aslv1 avatar aslv1 304 Точки

Здравейте, колеги!

За много години!

Бих искал да помоля за помощ. При редактиране на обява (от създателя ѝ - обикновен потребител), първо вземам самата обява и я слагам в $scope.adData. Така автоматично се зареждат нейните свойства по формата - т. к. всеки input си има ng-model.

Единствено не се получава при картинката. <input type="file" ...> си няма ng-model. Опитах да сложа:

  • ng-model="adData.imageDataUrl" - не става;
  • value="{{ adData.imageDataUrl }}" - също не става.

Как трябва да подпъхна низът, който имам - data:image/jpeg;base64,... в input-а, за да се изобрази картинката?
Нещо атрибут name, jQuery, ?!?

Благодаря предварително за помощта!

Поздрави, почивка и приятно кодене!

0
aslv1 avatar aslv1 304 Точки

Отговорих си.

Няма нужда да забъркваме <input type="file" ...>.
Просто в контейнера, където показваме картинктата, слагаме ng-src="{{ adData.imageDataUrl }}.

Успех!

3
milen_vm avatar milen_vm 68 Точки

Сблъсках се с един дребен бъг (не съм сигурен дали е бъг) в сървисите но ми отне цял ден, реших да го разнищя до край smile. Тъй като ползвам Firefox (в Хрома този проблем го няма) установих че при редактиране на дата на обявата, Файарфокса не разпознава часовата зона от дата стринга. След като променя дата винаги връща часа с 2 часа назад. Това не би било проблем, все пак редактираме датата не часа, но ако обявата е създадена в 00:12, след като променя дата на 30 януари като ме върне с 2 часа датата става 29-ти. Оправи се като добавих "Z" на края на дата(тайм) стринга. Това кара браузара да разпознава часовата зона. Този проблем се коментира тук.

Не е кой знае какво но реших да го споделя, пък и не остана много време до неделя.

2
09/01/2015 23:21:21
alexxdim94 avatar alexxdim94 33 Точки

Защо при редактиране на профил трябва задължително да променя e-maila? Връща "Invalid email. The email is already taken!" ако не го променя.

0
presian avatar presian 223 Точки

Ами, това е по същата причина по която ти изисква задължително да вкраш телефон ако си логнат като админ и едитваш усер!

 

laughing шегата на страна, но има доста проблемчета със сървисите, наистина дребни, но мен ме вадят от равновесие!

0
alexxdim94 avatar alexxdim94 33 Точки

Аз си го оправих проблема като пипнах бекенда, но това е защото съм си го пуснал локално. laughing Просто не знаех дали това би трябвало да си работи така и аз нещо не схващам или е просто бъг.

0
presian avatar presian 223 Точки

 

Хора понеже се борих тази сутрин с ерорите върнати от сървъра - как да хвана съобщенията от него, тъй като те са доста точни относно възникналия проблем - намерих някакво решение (поне така мисля):

 

function error(respond, text) {
var output = '';
if (respond.data) {
if (respond.data.modelState) {

if (respond.data.modelState[Object.keys(respond.data.modelState)[0]][1]) {
output = respond.data.modelState[Object.keys(respond.data.modelState)[0]][1];
} else {
output = respond.data.modelState[Object.keys(respond.data.modelState)[0]][0];
};

} else if (respond.data.error_description) {
output = respond.data.error_description;
} else if (respond.data.message) {
output = respond.data.message;
} else {
output = text;
}
} else {
output = text;
}

// кода на долу е за библиотеката, която аз ползвам 
Notification.error({
message: output,
delay: 3000
});
}

 

Ако някой е видял и друг формат на респонда от сървъра, ще се радвам да го сподели.

0
10/01/2015 12:08:59
nikolay.paskulov avatar nikolay.paskulov 55 Точки

Имам въпрос отностно т.н.  - self-evaluation картата :

В майла пише само да ги попълним, но не става ясно дали трябва да ги пращаме някъде/на някого предварително или да ги прикачим към проекта в github.

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

0
crazy7 avatar crazy7 177 Точки

Цитат от email-a:

"Изпращаме Ви като прикачен файл протокол, в който трябва да попълните оценките, които давате на Вашето изпълнение по зададените критерии на проекта. Този протокол трябва да качите в GitHub в основната папка на проекта."

0
nikolay.paskulov avatar nikolay.paskulov 55 Точки

Здравейте,

Защитата на индивидуалните проекти за курса SPA with AngularJS ще се проведе в неделя, 11 януари 2015. Подробно разпределение по часове Ви изпращаме приложено.Напомняме, че СофтУни вече се премести на нов адрес на ул. Тинтява 15-17, ет. 2. (виж на картата). Тя се намира близо до метростанция Г. М. Димитров. Оглеждайте се за жълта сграда на два етажа, с табели на Reset Computers и XS Software.Новата ни зала се казва Open Source.

Можете да видите заданието за индивидуалния проект от тук. Молим всички студенти предварително да са попълнили self-evaluation картата, която можете да изтеглите от тук.

Ако нямате възможност да присъствате, ще направим конферентен разговор по Skype.Нашите акаунти са: softuni.bg и softuni.org. Срещу името на всеки студент от файла с разпределението, можете да видите от кой акаунт ще може да се свържете с нас.Как можете да ни покажете екрана си чрез Skype? - Вижте стъпките от тук

Явно сме получили различни email-и...

Благодаря за тоговора!

0
crazy7 avatar crazy7 177 Точки

Има един по стар от: 06.01.2015, с заглавие: "Индивидуален проект по SPA with AngularJS & Lab".

От там е тази част не от последния.

0
XmUrF avatar XmUrF 363 Точки

Някой да има проблеми с базата? Тествам заявките през Postman, не съм променял нищо, както си е, така пробвам, сигурно 70-80% от заявките ми връщат

  • "message": "Authorization has been denied for this request."

 

Например искам да взема всички обяви на текущия юзер - излиза ми това(заявка пусната от сайтчето ми). Тествам с дефолтния юзер в Postman, пак същото.

Нямам никаква идея какво да го правя това и изглежда е само при мен. Дадох токена си на юзера, който ползвам на един колега и той няма никакви проблеми. Излиза си му всичко точно(празен обект, нямам обявИ).

0
crazy7 avatar crazy7 177 Точки

Оставяш ли интервал между Bearer и accessToken..?

0
LittleNinja avatar LittleNinja 71 Точки

И при мен го прави с token-а, който е зададен в Postman през collection-a.. Смени го с друг и ще тръгне..

0
XmUrF avatar XmUrF 363 Точки

Така, с дефолтния токен го прави в Постман същото. Импортвам отново всички заявки в Postman, за да съм сигурен, че не съм омазал нещо, копирам токена, който ми връща сървъра при логин и го изплющявам в Постман в Authorization(запазвам Bearer разбира се) и пак дава същото. Само че само при мен. При един колега си връща коректен резултат. Аз ли грешно го копирам, не знам. Сигурно и в проекта нещо греша, но когато Postman-a се гъбарка вече ми идва в повече :).

 

0
10/01/2015 17:31:02
G.Burlakova avatar G.Burlakova 36 Точки

Здравейте!

Имам проблем с вземането на информацията от профила на даден потребител. Когато изпратя заявка към BASE_URL + '/admin/users/' + userId, ми казва 404 Not found. Ще бъда много благодарна, ако някой помогне.

1
aslv1 avatar aslv1 304 Точки

Аз не виждам такава заявка.

Има да вземеш всички потребители и да вземеш потребител по потребителско име, но няма по id.

Виж тук.

0
G.Burlakova avatar G.Burlakova 36 Точки

Опитах и с потребителското име, но пак не става. Получавам това - The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

0
aslv1 avatar aslv1 304 Точки

Какъв ти е BASE_URL?

Да не си пропуснала api или някоя /?

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