{"id":20129530,"url":"https://github.com/appleipx/news-feed","last_synced_at":"2026-05-05T16:39:19.568Z","repository":{"id":219914586,"uuid":"750210434","full_name":"AppleIpx/news-feed","owner":"AppleIpx","description":"МыслиВслух","archived":false,"fork":false,"pushed_at":"2024-01-30T10:06:51.000Z","size":1379,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-13T08:34:55.248Z","etag":null,"topics":["celery","python3","redis","rest-api","unit-testing"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AppleIpx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-30T07:44:42.000Z","updated_at":"2024-01-30T11:02:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"8b957140-63d9-4424-8ab1-b1382d7dd1c5","html_url":"https://github.com/AppleIpx/news-feed","commit_stats":null,"previous_names":["appleipx/news-feed"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AppleIpx%2Fnews-feed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AppleIpx%2Fnews-feed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AppleIpx%2Fnews-feed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AppleIpx%2Fnews-feed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AppleIpx","download_url":"https://codeload.github.com/AppleIpx/news-feed/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241573342,"owners_count":19984456,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["celery","python3","redis","rest-api","unit-testing"],"created_at":"2024-11-13T20:34:50.081Z","updated_at":"2026-05-05T16:39:19.527Z","avatar_url":"https://github.com/AppleIpx.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Буря идей, волнение вдохновения: ваш личный поток мыслей в МыслиВслух\n\n## Развертывание проекта\n\n1. Сделать клон проекта \"https://github.com/AppleIpx/news-feed.git\"\n2. Cоздать виртуальное окружение \"python3  -m venv venv\" и активировать его \"source venv/bin/activate\"\n3. Установить библиотеки с requirements.txt \"pip install -r requirements.txt\"\n4. Ввести данные вашей электронной почты и SECRET_KEY в (backend/news_feed/settings.py), образец находится в infra/.env.example\n5. Выполнить миграции находясь в директории backend \"python manage.py migrate\"\n6. Создать супер пользователя (админ) \"python manage.py createsuperuser\"\n7. Запустить локальный сервер \"python manage.py runserver\"\n8. Зайти в панель администратора 127.0.0.1:8000/admin, используя логин и пароль введенные при создании супер пользователя\n\n## Техническое задание (ТЗ)\n\n## 1. Введение\n\n### 1.1 Описание проекта\n\nПриложение \"МыслиВслух\" предназначено для создания уникальных и интересных личных блогов, где пользователи могут \nсвободно выражать свои мысли, идеи и чувства. Оно предоставляет платформу, где каждый может поделиться \nсвоим внутренним миром, находить вдохновение в мыслях других и оставлять комментарии. \"МыслиВслух\" создано \nдля того, чтобы стимулировать творчество, обмен опытом и построение сообщества, где каждая мысль имеет свое место и значение.\n\n### 1.2 Контекст проекта\n\nВозникла идея создать приложение \"МыслиВслух\", чтобы удовлетворить потребность в креативном самовыражении и обмене \nмыслями, предоставляя уникальное пространство для пользователей выражать свои идеи и взгляды в личных блогах.\n\n## 2. Требования\n\n### 2.1 Функциональные требования\n\n#### 2.1.1 Основные функции\n\n- Регистрация и аутентификация пользователей.\n- Отправка email письма при регистрации пользователя.\n- Создана форма сброса пароля пользователя, отправкой email письма.\n- Создание, редактирование и удаление постов.\n- Оставление комментариев под конкретным постом\n- Поиск постов по названию и дате.\n- Интеграция Swagger для удобной документации API и взаимодействия с ним.\n- Реализована защита от множественных запросов от анонимов (50 запросов) и авторизированных пользователей (100 запросов)\nдля предотвращения злоупотреблений и улучшения общей производительности системы.\n\n## 3. Архитектура\n\n### 3.1 Архитектурные решения\n\n- Backend: Django с использованием Django REST framework.\n- Backend: Отправка писем асинхронно с использованием Celery и Redis\n- База данных: SqLite3\n\n### 3.2 База данных\n\n- База данных будет содержать таблицы для пользователей, постов и комментариев.\n\n## 4. Разработка\n\n### 4.1 План разработки\n\n- Этап 1: Проектирование базы данных и бэкенда.\n- Этап 2: Тестирование и отладка.\n- Этап 3: Релиз и развертывание.\n\n### 4.2 Ресурсы и инструменты\n\n- Python, Django, Django REST framework, Celery, Redis, Djoser, для бэкенда.\n- Инструменты для тестирования - unit test.\n\n## 5. Тестирование\n\n### 5.1 План тестирования\n\n- Тестирование функциональности регистрации и аутентификации пользователей.\n- Тестирование создания постов и комментариев к ним.\n\n### Результат работы:\n\n## Авторизация и Регистрация:\n\n- Пользователи могут создавать учетные записи и входить в систему.\n![Регистрация пользователя](public/user_registration.png).\n- При регистрации пользователи получают email письмо.\n![Полученное email письмо после регистрации](public/receiving_an_email_after_registration.png).\n- Если пользователь забыл пароль, он может его восстановить, инструкция придет по email.\n![Полученное email письмо для сброса пароля](public/received_password_reset_email.png).\n- Пользователи разделяются на администраторов и обычных пользователей.\n![Разделение пользователей](public/separation_of_users.png).\n\n## Посты:\n\n- Пользователи могут создавать, редактировать и удалять свои посты.\n![Создание поста](public/create_blog_post.png).\n- Пользователи могут оставлять комментарии под постами.\n![Оставление комментария](public/leave_a_comment.png).\n- Просмотр оставленного комментария.\n![Просмотр оставленного комментария](public/view_comment.png).\n- Пользователи могут фильтровать посты по их названию. Введем \"по\"\n![Фильтрация поста по названию](public/filtering_a_post_by_title.png).\n- Фильтрация по дате. Введем 30.01.2024.\n![Фильтрация поста по дате](public/filtering_a_post_by_data.png).\n\n## Документация\n\n- Документация доступна по адресу \"127.0.0.1:8000/swagger/\".\n![Документация](public/swagger.png).\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappleipx%2Fnews-feed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fappleipx%2Fnews-feed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappleipx%2Fnews-feed/lists"}