- Создаем виртуальное окружение: python3 -m venv flask_venv
- Активируем venv: source flask_venv/bin/activate
- Устанавливаем зависимости: pip install -r requirements.txt
- Создаем локальную БД: flask db upgrade
- Активировать миграции: flask db init
- Создать миграцию: flask db migrate -m "comment"
- Применить миграции: flask db upgrade
- Запуск: pytest -v tests
Complete | Priority | Auth | Task | Url |
---|---|---|---|---|
USER | ||||
✔️ | Base | Регистрация пользователя | POST: /users | |
✔️ | Base | Список пользователей | GET: /users | |
✔️ | Base | Пользователь по id | GET: /users/{id} | |
❌ | Medium | Авторизация пользователя | GET: /auth/token | |
❌ | High | Редактирование пользователя | PUT: /users/{id} | |
❌ | Medium | Удаление пользователя | DELETE: /users/{id} | |
NOTE | ||||
✔️ | Base | Создание заметки | POST: /notes | |
✔️ | Base | Список заметок | GET: /notes | |
✔️ | Base | Заметка по id | GET: /notes/{id} | |
❌ | Medium | Список всех публичных заметок | GET: /notes/public | |
❌ | Medium | Список заметок по имени тега | GET: /notes/filter?tag=<tag_name> | |
❌ | Low | Публичные заметки по имени автора | GET: /notes/filter?username= | |
❌ | High | Редактирование заметки | PUT: /notes/{id} | |
❌ | Medium | Удаление заметки | DELETE: /notes/{id} | |
❌ | Base | Добавление тегов заметке | PUT: /notes/<note_id>/tags \ body: {“tags”: [id1, id2]} | |
❌ | Medium | Удаление тегов с заметок | DELETE: /notes/<note_id>/tags \ body: {“tags”: [id1, id2]} | |
TAG | ||||
✔️ | Base | Создание тега | POST: /tags | |
✔️ | Base | Список всех тегов | GET: /tags | |
❌ | High | Редактирование тега | PUT: /tags/{id} | |
❌ | Medium | Удаление тега | DELETE: /tags/{id} |
Создание нового пользователя в БД.
Получение токена авторизации (Bearer Token)
Каждая заметка привязывается к конкретному пользователю.
Пользователь должен видеть только заметки созданные им и публичные заметки других пользователей.
По id можно получить только свои заметки или публичные заметки созданные другими пользователями.
Получает список всех публичных заметок всех пользователей.
Теперь заметки можно фильтровать по прикрепленным к ним тегам.
Если указано имя несуществующего тега, то возвращаем пустой список, т.е. заметки с таким тегом не найдены.
Возвращаем все публичные заметки автором с указанным username.
Если автор с указанным username не существует, возвращаем пустой список.
Изменение текста заметки и ее статуса(публичная/частная). Пользователь может редактировать только свои заметки.
Удаление заметки из базы. Пользователь может удалять только свои заметки.
Можно создать теги(метки, хештеги). Затем каждый тег(или несколько тегов) можно назначить заметке. Теги дают возможность удобной фильтрации заметок.
Каждой метке можно назначить любое кол-во тегов. Теги дают возможность удобной фильтрации заметок.
Изменение названия тега.
Удаление тега из базы.
Таблица приоритетов: чем выше приоритет в списке, тем задача важнее.
Priority | Description |
---|---|
Base | Самые важные задачи, без которых невозможно продолжать курс |
High | Задачи с высоким приоритетом, их рекомендуется выполнять в первую очередь |
Medium | Задачи со средним приоритетом, их рекомендуется выполнять когда нет задач с более высокими приоритетами |
Low | Дополнительные задачи с низким приоритетом, их рекомендуется выполнять в самый последний момент./ Часто - это задачи повышенной сложности |