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

https://github.com/belyashnikovatn/blogicum

Сайт для публикации постов: создать пост с возможностью отложенной публикации, оставить комментарий.
https://github.com/belyashnikovatn/blogicum

django docker html nginx python

Last synced: 3 months ago
JSON representation

Сайт для публикации постов: создать пост с возможностью отложенной публикации, оставить комментарий.

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 на удалённом сервере