Содержание

Тестовое задание от компании Oracle Digital

Задание: Школа

С помощью фреймворка Django напишите сайт для автоматизации школьных процессов. На сайте должны быть реализованы следующие функции:

  • Регистрация учителя через сайт
  • Аутентификация учителя (авторизация через логин и пароль)
  • Добавлять, читать, изменять, удалять (CRUD) учеников
  • После создания ученика, отправить ему email уведомление
  • Поиск учеников
  • Отправлять сообщение на mail учеников (рассылка).

Модели:

“Ученик”:

  • ФИО
  • Mail
  • Дата рождения
  • Класс
  • Адрес
  • Пол
  • Фото (необязательно)

“Учитель”:

  • Номер телефона
  • Класс
  • Название предмета

“Класс”:

  • Название
  • Учитель (один)
  • Ученики (много)

“Школа”:

  • Название
  • Классы
  • Примечание

Модель “Учитель” должен наследоваться от встроенного в django класса “AbstractUser” и заходить на сайт через “номер телефона”.

Требования

  • Код в репозитории на GitHub
  • Понятная документация по установке проекта в файле README.md
  • Список всех зависимостей должен храниться в requirements.txt, соответственно можно установить их командой
    pip install -requirements.txt
  • Разработка должны вестись в virtualenv, но сама директория с virtualenv должна быть добавлена в .gitignore
  • По frontend требований никаких не предъявляется. Интерфейс на ваше усмотрение и он не будет оцениваться
  • После создания ученика отправлять уведомление использовав django signals
  • Запуск через Docker

Стек технологий

  • Python
  • Django
  • Postgres
  • Git, Github
  • Docker

Запуск и реализация

Для начала клонируйте репозиторий и перейдите в рабочую директорию:

git clone https://github.com/joerude/oracle-digital-assignment
cd oracle-digital-assignment 

Далее, чтобы запустить приложение есть два варианта:

  1. С помощью Docker
  2. Локально

Для удобства, при работе с включенным режимом отладки будет использоваться база Sqlite3, а иначе — Postgres

1. Docker

Удостоверьтесь, что в файле .env DEBUG=False (выключен режим отладки)

Оба компонента системы (проект Django и база данных) развертываются в отдельных контейнерах Docker. Настройки компонентов указываются в docker-compose.yml. Для запуска введите команду:

docker-compose up

После установки необходимых образов (images) и компонентов перейдите по адресу: http://0.0.0.0:8000/ или http://127.0.0.1:8000/

2. Локально

Удостоверьтесь, что в файле .env DEBUG=True (включён режим отладки)

Скачайте виртуальное окружение и установите необходимые зависимости:

python3 -m venv env                    # устанвока виртуального окружения
source env/bin/activate                # активация виртуального окружения 
pip install -r requirements.txt        # установка необходимых зависимостей
python3 manage.py migrate              # миграция данных
python3 manage.py loaddata db.json     # установите готовую базу
python3 manage.py runserver            # запуск сервера

Перейдите по адресу http://0.0.0.0:8000/ или http://127.0.0.1:8000/

Для создания, изменения или удаления учеников необходима регистрация-авторизация пользователя (учителя)

В файле .env также содержится конфигурация Django для отправки email писем с SMTP сервера. При необходимости определите свои параметры.

Если будут вопросы пишите в телеграм: