https://github.com/belyashnikovatn/blogicum
Сайт для публикации постов: создать пост с возможностью отложенной публикации, оставить комментарий.
https://github.com/belyashnikovatn/blogicum
django docker html nginx python
Last synced: 3 months ago
JSON representation
Сайт для публикации постов: создать пост с возможностью отложенной публикации, оставить комментарий.
- Host: GitHub
- URL: https://github.com/belyashnikovatn/blogicum
- Owner: belyashnikovatn
- License: other
- Created: 2024-05-05T10:14:55.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-27T13:33:16.000Z (over 1 year ago)
- Last Synced: 2025-12-31T11:28:05.776Z (6 months ago)
- Topics: django, docker, html, nginx, python
- Language: Python
- Homepage: https://litblogicum.ru/
- Size: 289 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Blogicum
Проект представляет собой [социальную сеть](https://litblogicum.ru/) для публикации личных дневников.
Функционал:
- личный кабинет (создать пост, запланировать пост)
- вывод постов в виде ленты
- вывод конректного поста с возможностью комментировать
- посты по конкретной категории
- страница с описанием сети
- страница с правилами сети
## Содержание
- [Технологии](#технологии)
- [Установка окружения](#установка-окружения)
- [Структура проекта](#структура-проекта)
- [Тестирование](#тестирование)
- [Развёртывание](#развёртывание)
## Технологии
Django, python, html, SQLite, Docker, nginx
## Запуск проекта
```bash
$ git clone https://github.com/belyashnikovatn/blogicum.git
$ python -m venv venv
$ source venv/Scripts/activate
$ python -m pip install --upgrade pip
$ pip install -r requirements.txt
$ python manage.py migrate
$ python manage.py runserver
```
## Структура проекта
Созданы и зарегистрированы приложения:
- pages — для работы со статическими страницами проекта;
- blog — для работы с публикациями пользователей.
Реализованы модели:
- Post (Публикация)
- Category (Тематическая категория)
- Location (Географическая метка)
Загружены фикстуры из файла db.json.
Настроена админка (локализация, подключены модели, прописаны арибуты моделей и подсказки - согласно ТЗ).
Прописаны view для работы с данными из БД.
Настроены маршруты и описаны представления на уровне приложений.
Созданы шаблоны страниц на уровне проекта, подключена статика.
Настроена админка.
Прописаны модели, подключена БД sqlite.
Написаны view функции.
## Тестирование
Для проверки кода создателями курса предусмотрены авто-тесты. Для их запуска из корневой папки нужно выполнить:
```
$ pytest
```
## Развёртывание
### Настройка контейнеризации
- Создан Dockerfile для backend, gateway, db
- Созданы docker-compose.yml и docker-compose.production.yml
|Имя образа |Название контейнера|Название volume|
|:-------------:|:-------------:|:-------------:|
|postgres:13|db|pg_data_production|
|blogicum|blogicum|static_volume, media_volume|
|gateway|gateway|static_volume, media_volume|
### Настройка CI/CD
- Прописан workflow в main.yml:
- проверка кода по PEP8 (push в любую ветку)
- сбор образов и push на докерхаб (push в main ветку)
- обновление образов на сервере и перезапуск приложения (push в main ветку)
- загрузка статики и загрузка предварительных данных
- Изменены настройки nginx на удалённом сервере