Skip to content

AlexKozhanov/TF4

Repository files navigation

TF4

  • Номер проекта - TF4
  • Название проекта - Веб-приложение для ведения личного дневника
  • Направление - Fullstack
  • Тэги: Django, Git, ORM, PEP8, Permission, PostgreSQL, Readme, Docker, Docker-Compose, Templates
  • Ветка develop

Содержание

Требования

Технологии

  • Python
  • Django
  • PostgreSQL
  • Git
  • ORM
  • Permission
  • Docker
  • Docker-Compose

Описание задачи:

Необходимо разработать веб-приложение для ведения личного дневника. Приложение должно позволять пользователям создавать, редактировать и удалять записи в дневнике, а также просматривать свои записи в удобном интерфейсе. Пользовательский интерфейс должен быть реализован с использованием Django шаблонов и Bootstrap стилей для создания адаптивного и современного дизайна.

Задача

  1. Сверстать сайт для ведения личного дневника.
  2. Подключить сайт к админке Django.
  3. Использовать Bootstrap для создания адаптивного и привлекательного интерфейса.

Функционал сайта:

  1. Регистрация и аутентификация пользователей:
    • Пользователи должны иметь возможность зарегистрироваться, войти в систему и выйти из неё.
  2. Создание, редактирование и удаление записей в дневнике:
    • Авторизованные пользователи могут добавлять новые записи в дневник, редактировать существующие записи (только свои) и удалять ненужные записи.
  3. Просмотр записей:
    • Пользователи могут просматривать список всех своих записей.
    • Пользователи могут просматривать отдельные записи в подробном виде.
  4. Поиск по записям:
    • Возможность поиска записей по заголовку или содержимому в интерфейсе сайта.

Технические требования:

  1. Язык программирования:
    • Python 3.11 и выше
  2. Фреймворк:
    • Django для реализации веб-приложения
  3. База данных:
    • PostgreSQL для хранения данных о пользователях и записях
  4. Шаблоны и стили:
    • Django шаблоны для рендеринга HTML страниц
    • Bootstrap для стилизации интерфейса
  5. Контейнеризация:
    • Docker для упаковки приложения и базы данных
  6. Документация:
    • В корне проекта должен быть файл README.md с описанием структуры проекта и инструкциями по установке и запуску

Начало работы

Сборка проекта 1 Локальная

  1. Клонируйте репозиторий
git clone git@github.com:AlexKozhanov/TF4.git
  1. Установите зависимости
pip install -r requirements.txt

или

poetry install
  1. Создайте файл .env из копии файла .env.sample и вставьте значения переменных своими данными
copy .env.sample .env
  1. Не забудьте создать БД
  2. Активируйте миграции
python manage.py migrate
  1. Зарегистрируйте суперпользователя и наполните БД данными (выполнять по очереди) python manage.py add_objects выполнить только после успешной регистрации и изменении почты на свою
python manage.py csu
python manage.py create_group
python manage.py add_objects
  1. Запускайте проект
python manage.py runserver
  1. Перейдите по ссылке
http://127.0.0.1:8000/

Сборка проекта 2 Локальная с Docker

Требования Docker 20.10+ docker-compose 1.29+

Запуск проекта

  1. Клонируйте репозиторий:
git clone git@github.com:AlexKozhanov/TF4.git
  1. Создайте файл .env из копии файла .env.sample и вставьте значения переменных своими данными
copy .env.sample .env
  1. Запустите проект
docker-compose up --build
  1. Проект будет доступен по адресу: http://localhost:8000

Сборка проекта 3 Сервер

Настройка сервера

  1. Подключитесь к своему серверу:
ssh user_name@your_server_ip
  1. Запустите необходимые обновления
sudo apt update && sudo apt upgrade
install docker.io docker-compose
  1. Настройте брандмауэр и откройте необходимые порты
sudo ufw status
sudo ufw enable #in case firewal is turned off
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 22/tcp

Установка

  1. Клонируйте репозиторий:
git clone https://github.com/AlexKozhanov/TF4.git
  1. Перейдите в каталог проекта и настройте переменные env в соответствии с .env.sample:
cd tf4/
nano .env
  1. Запустите контейнер:
docker-compose up
  1. Поздравляю! Проект успешно запущен! Чтобы воспользоваться всеми возможностями, перейдите по ссылке http://IP_SERVER и создайте учетную запись пользователя.

При пуше произойдет

  • Линтинг кода
  • Запуск тестов
  • Сборка Docker-образов
  • Пуш образов в Docker Hub
  • Автоматический деплой на сервер

Тестирование

Тестирование доступно командой:

python manage.py test

FAQ

Зачем вы разработали этот проект?

Чтобы был.

А нужен ли он

Ооочень нужен

To do

  • Добавить крутое README
  • Сверстать сайт для ведения личного дневника
    • Django startapp users and diary
    • Настроить Django шаблоны и Bootstrap стили (min-версия)
  • Подключить сайт к админке Django
    • Подвязать CRUD
    • Настроить просмотр записи в удобном интерфейсе
    • Добавить права на CRUD операции (доп-но добавить в команды)
  • Использовать Bootstrap для создания адаптивного и привлекательного интерфейса
  • Подкрутить адаптивный и современный дизайн в пользовательский интерфейс с использованием Django шаблонов и Bootstrap стилей (max-версия)

Проверка наставника

  • Работа сдана в виде PR, в коммиты не попали игнорируемые файлы, в проект добавлен .gitignore
  • Информация о проекте собрана в README
  • В проекте используется фреймворк Django для бэкенда, HTML/Bootstrap для фронтенда, СУБД Postgres в качестве БД
  • Все секреты собраны в .env, в проекте есть шаблон для .env
  • Реализована регистрация и авторизация пользователя в системе
  • Реализованы модели личного дневника, для которых реализован CRUD: авторизованные пользователи могут добавлять новые записи в дневник, редактировать существующие записи (только свои) и удалять ненужные записи.
  • Настроена административная панель
  • Используется Docker для упаковки приложения и БД
    • добавить тесты
  • Настроены права доступа
    • Пользователи могут просматривать список всех своих записей
    • Пользователи могут просматривать отдельные записи в подробном виде
  • Реализована возможность поиска записей по заголовку или содержимому в интерфейсе сайта

Команда проекта

  • Alex — Всё-на-свете Engineer

Источники

  • Вдохновение и банка пива

About

Web application for keeping a personal diary

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors