An open API service indexing awesome lists of open source software.

https://github.com/dariadia/meleton


https://github.com/dariadia/meleton

Last synced: 7 months ago
JSON representation

Awesome Lists containing this project

README

          

# Meleton тестовое задание

## Об этом приложении
- [Nuxt.js v.2.x](https://nuxtjs.org)
- [Vuetify v.2.x](https://vuetifyjs.com/)
- SPA

## Build Setup

```bash
# установить зависимости
$ npm install

# запустить в дев-режиме с hot reload localhost:5005
$ npm run dev

# собрать для прода и запустить сервер
$ npm build
$ npm start

```

## Функциональность

- Пользователь может добавить/редактировать/удалить событие;
- Редактировать можно: название, текст, время и тип события; цвет сменится автоматически по привязке тип события – цвет (*);
- Каждому типу событий в настоящее время соответствует определенный цвет (* упрощение и возможности для улучшения);
- Для каждого события пользователь должен установить: название, описание, время начала и окончания, он может либо ввести тип события, либо выбрать его из списка;
- Если пользователь нажимает на день, а не на кнопку «добавить новое событие», то дата в новом событии вводится в соответствии с датой в календаре, на которую пользователь нажал. Время устанавливается на «00:00», если щелкнуть в режиме просмотра «Месяц», или на время, на которое пользователь нажал в режиме просмотра «Неделя/День». Пользователь может все править, если захочет.
– Если пользователь нажимает на дату вне текущего месяца, то она подставляется в событие, а календарь открывается на том месяце. Например: открыт март, пользователь жмет на 29 февраля – в событии подставляется 29/02 00:00 и календарь листается на февраль;
- Если пользователь нажимает "добавить новое событие" – все поля пустые;
- Если пользователь начал создавать новое событие – но не сохранил его – и закрыл, то поля обнуляются и новое событие нужно заполнять заново;
- При клике на конкретный день предлагается форма во всплывающем окне, где предлагается создать новое событие на данный день. Поля формы должны проверяются на корректность введенных данных и заполнение. Все поля обязательны;
- Все данные сохраняются локально в LocalStorage;
- Если до отмеченного события остается 1 час (если страница приложения была открыта раньше) или меньше (т. е. Допустим клиент открыл приложение за 23 минуты до события) — на основном экране приложения должно появится диалоговое окно с уведомлением (текст уведомления) и кол-во минут оставшееся до начала события. У этого окна цвет типа события оповещения. Диалоговое окно можно закрыть;
- Пользователь может нажать на кнопку рядом с названием открытого в календаре месяца и выбрать другую дату через всплывающий в другом окне календарь. Для случаев, когда ему, например, нужно открыть на год вперед;
– Пользователь может переключаться между "открытый месяц" – прошлый/следующий с помощью стрелок наверху календаря;
– Кнопка "сегодня" вернёт пользователя на текущую дату;

### Событие включает в себя:
- Дата и время события;
- Продолжительность события (если кол-во часов выходит за пределы дня, то визуально событие продолжается на следующие дни);
- Тип события (День рождения, Встреча, и т. д. Пользователь может выбрать из имеющихся вариантов или дополнить этот список свои вариантом);
- Текст уведомления (до 300 символов);

[Заметки и комментарии](https://github.com/dariadia/meleton/pull/2#issuecomment-1978955560), что можно улучшить в этом решении.
"Всё что можно улучшать" отмечено комментарием "simplification".