Open IrshakAnna-Mariia opened 3 years ago
Приложение "События" - список событий по датам
При входе требует логин - форма с двумя полями для имейла и пароля. Кнопка для возможности зарегистировать нового пользователя. За каждым пользователем должен сохраняться свой список событий. Все данные хранятся на сервере. Пароли хранить с помощью bcrypt (прочитай, первые две ссылки в описании, чтобы понять суть bcrypt)
После логина переходим на страницу, на которой выводим таблицу, которая представляет текущий месяц по дням, вот так
Пн | Вт | Ср | Чт | Пт | Сб | Вс |
---|---|---|---|---|---|---|
1 | 2 (3) | 3 | 4 | 5 | ||
6 | 7 | 8 (1) | 9 | 10 | 11 | 12 |
в скобках выводит количество событий в этот день. Должно быть две кнопки для перехода на предыдущий и следующий месяц. При клике на день выводим список событий
На списке событий выводим время каждого события и описание события. События можно добавлять, удалять, редактировать. Время можно указывать как инпуте с валидацией, типа xx:xx
, так и двумя полями, для часов и минут, так и использовать сторонний компонент.
Для работы с датами советую посмотреть на moment
На выполнение 10 дней
Гарного дня, @redexp ! Завдання виконала.
У тебя есть ещё три дня, давай, чтобы выпускная выглядела вообще класно - добавь хранение данных в какой-то БД - думаю mongodb + mongoose будет проще всего.
Гарного дня, @redexp . Зберігання даних в БД додала.
я уважаю твои старания, вижу ты по ходу написала коментарий в 2 ночи, но я не просил делать быстро, я просил делать качественно, и я посмотрел одним глазом, там работа с бд - не супер. Потрать ещё день
Гарного дня, @redexp . Роботу, ніби, підправила.
шо вот это такое?!? https://github.com/IrshakAnna-Mariia/GeekHub-2020/blob/7e3470c6d8f679140bc9fb58f344816d02c2bfbd/calendar/client/src/logIn/SignIn.js#L31-L43 почему ты этот эррор не вывела по нормальному как вот этот редирект? https://github.com/IrshakAnna-Mariia/GeekHub-2020/blob/7e3470c6d8f679140bc9fb58f344816d02c2bfbd/calendar/client/src/logIn/SignIn.js#L52
шо вот это такое?!? https://github.com/IrshakAnna-Mariia/GeekHub-2020/blob/7e3470c6d8f679140bc9fb58f344816d02c2bfbd/calendar/client/src/logIn/SignIn.js#L9-L10 https://github.com/IrshakAnna-Mariia/GeekHub-2020/blob/7e3470c6d8f679140bc9fb58f344816d02c2bfbd/calendar/client/src/logIn/SignIn.js#L48-L49 я разве показывал что вот так нужно работать с формами?
Пересмотрел твою домашку react-form
и не понял как я её пропустил, в ней нет обработки события submit
, нет работы с инпутами. Стало понятно почему ты совершенно не ориентируешься как взять значение из инпута и используешь вот такие костыли.
Посмотри как я сделал домашку react-form
и исправь свою выпускную
https://github.com/redexp/GeekHub-2020.js/tree/master/examples/react-form
все вот эти четыре поля тут бессмысленные - ты их просто прокидываешь в Main
который и так напрямую подключён к стору и может сам взять всё что ему нужно, но ты этого не делаешь, значит не поняла сути функции connect
https://github.com/IrshakAnna-Mariia/GeekHub-2020/blob/7e3470c6d8f679140bc9fb58f344816d02c2bfbd/calendar/client/src/app/Main.js#L154
работа с моментом - очень печальная, такое чувство что он тебе больше мешал чем помогал... Ты могла бы вместо currentMonth: 1
сделать currentMonth: moment()
и по prev делать просто currentMonth.subtract(1, 'month')
а по next currentMonth.add(1, 'month')
и вместо вот этого moment(moment().get('year').toString() + monthThis + '01', "YYYYMMDD").format('MMMM')
писать просто currentMonth.format('MMMM')
в это вся сила момента
Даю тебе ещё два дня.
Гарного дня, @redexp . Роботу виправила.
Работа с монгой - неправильная, что странно, потому что там нет ничего сложного https://github.com/IrshakAnna-Mariia/GeekHub-2020/blob/975ee013857b94fa2eb956f3d89be2d1e4684c8e/calendar/index.js#L29-L37 тут неправильно сразу куча всего, нужно было написать по простому
let usersBase = await User.find({});
res.send(usersBase);
ты перемешала два противоположных подхода async/await
и error first callback
, т.е. ты либо используешь await либо колбек
https://github.com/IrshakAnna-Mariia/GeekHub-2020/blob/975ee013857b94fa2eb956f3d89be2d1e4684c8e/calendar/index.js#L79-L92
let doc = await User.findOne({email: req.body.email})
if (doc) {
check.email = true;
check.count = 1;
document = {password: doc.password, events: [...doc.events]}
}
let resp = await bcrypt.compare(req.body.password, document.password)
if (resp) {
check.events = [...document.events];
check.password = true
res.status(201).jsonp(check)
return
}
либо
User.findOne({email: req.body.email}, (err, doc) => {
if (err) {
res.status(500).json({message: err.message});
return
}
if (doc) {
check.email = true;
check.count = 1;
document = {password: doc.password, events: [...doc.events]}
}
bcrypt.compare(req.body.password, document.password, (error, resp) => {
if (err) {
res.status(500).json({message: err.message});
return
}
if (resp) {
check.events = [...document.events];
check.password = true
res.status(201).jsonp(check)
}
})
})
Но я не преподавал монгу и обещал что не буду давать того чему не учил.
С дизайном - можно было бы подключить хотябы bootstrap чтобы выглядело хоть сколько-нибуть симпотично.
Не так нужно делать редиректы, а через объект histoy https://github.com/IrshakAnna-Mariia/GeekHub-2020/blob/975ee013857b94fa2eb956f3d89be2d1e4684c8e/calendar/client/src/app/Main.js#L61
Ты всё ещё поленилась посмотреть что же там есть ещё у момента кроме add subtract https://github.com/IrshakAnna-Mariia/GeekHub-2020/blob/975ee013857b94fa2eb956f3d89be2d1e4684c8e/calendar/client/src/app/Main.js#L51 а есть там вот такое
if (currentData.date() > 0 && currentData.date() <= 31) {
и условие крайне странное - день месяца всегда будет больше 0 и меньше равен 31, зачем это проверять?
вот это вообще меня выбило из колеи https://github.com/IrshakAnna-Mariia/GeekHub-2020/blob/975ee013857b94fa2eb956f3d89be2d1e4684c8e/calendar/client/src/app/Main.js#L88 почему не просто
if (item[0] !== "") {
item[1] = item[0] === currentData.date()
Сертификат я тебе дам за общие заслуги, но имей ввиду, уровень у тебя хромает. Я бы глядя на такое тестовое не взял тебя в компанию в которой работаю. Но в тоже время в тебе есть очевидный потенциал. Тебе нужно ещё немного попрактиковаться. Я выложу описание всех домашек которые давал другим студентам и настоятельно советую тебе сделать ещё одно как минимум из этого списка, прежде чем подавать заявки на трудоустройство в какую-либо компанию.
Дуже дякую за все, @redexp . Я обов'язково буду виправляти свої помилки і більше практикуватися. Ще раз дякую.
Гарного дня, @redexp ! Хотіла б отримати тему для роботи. Дякую.