GithubHelp home page GithubHelp logo

db_hack's Introduction

DB_hack

Код для работы с электронным дневником школы

Как пользоваться

Для начала необходимо сделать форк этого репозитория - https://github.com/devmanorg/e-diary и подключиться к БД (переменные окружения, запуск кода и описание моделей в том же репозитории).

Запуск скрипта

Чтобы запустить скрипт можно его целиком “копипастнуть” в shell, а можно положить файл с кодом рядом с manage.py и подключить через import. Второй путь удобнее и надёжнее.

Сценарии использования

Сценарии использования (use-cases) к третьем уроку модуля Django ORM курса Девман.

1. Исправить оценки

Школьник Ваня хочет исправить свои оценки. Сайт электронного дневника уже давно настроен и работает на отдельном сервере. У Вани есть к нему доступ. Он уже научился скачивать и загружать файлы на сервер. Также он умеет открывать консоль и запускать там команды.

У Вани есть ссылка на репозиторий с кодом, оттуда он и начинает свой путь:

  1. Ваня перешёл по ссылке на репозиторий GitHub
  2. По инструкции залил скрипт на сервер, положил в указанную папку
  3. Из README Ваня скопировал и запустил на сервере консольные команды
  4. Из инструкции скопировал и запустил внутри shell python-код, если такое требуется
  5. Ваня открыл сайт электронного дневника, нашёл себя
  6. Оценки исправлены?
  7. Жалобы исчезли?
  8. Появилась похвала от учителя? Ваня слаб в программировании, и действует строго по инструкции. Позаботьтесь о том, чтобы всё работало гладко, понятно и предсказуемо.

Хотя с английским языком Ваня дружит, но вот в IT терминологии он явно путается. Лучше не рисковать и сделать для него README на русском языке. Ещё лучше — снабдить документацию ссылками на полезные туториалы.

2. Помочь друзьям

  1. Из README Ваня узнаёт, как запустить скрипт для своего друга
  2. Ваня делает всё, что сказано в инструкции
  3. Проверяет оценки своего друга на сайте электронного дневника — оттуда исчезли все двойки и тройки
  4. Ваня открыл сайт электронного дневника, нашёл друга
  5. Оценки исправлены?
  6. Жалобы исчезли?
  7. Появилась похвала от учителя?

3. Многократное использование

Проходит месяц, а то и два. В дневнике Ваня снова набрал себе троек и теперь жаждет поднять успеваемость. Юный хакер вспоминает про ваш скрипт. Он находит ссылку на GitHub и следует инструкциям, как и в прошлый раз. Отличие этого сценария в том, что скрипт запускается многократно в течение учебного года. Каждый раз исправляются плохие оценки, удаляются жалобы и добавляется похвала. При этом важно, чтобы записи в дневнике выглядели реалистично: текст похвалы менялся от запуска к запуску, и записи не накапливались у одного единственного урока.

4. Ошибки ввода

Школьник Ваня не так хорош в программировании и с трейсбеками работать пока не умеет. Они его шокируют и пугают, поэтому читать их он вряд ли будет. Надо позаботиться о том, чтобы в случае ошибки скрипт понятным образом сообщил ему в чём дело и как это исправить.

  1. Подготовил скрипт к работе по инструкции в README
  2. Запустил скрипт, допустив опечатку в имени 'Симён'
  3. Скрипт сообщил об ошибке?
  4. По выводу понятно что с этим делать?
  5. Запустил скрипт, в качестве имени указав пустую строку ''
  6. Скрипт сообщил об ошибке?
  7. По выводу понятно что с этим делать?

Кроме имени школьника скрипт требует указать название урока, поэтому здесь то же есть свой сценарий с опечаткой:

  1. Подготовил скрипт к работе по инструкции в README
  2. Запустил скрипт, допустив опечатку в названии урока 'матиматика'
  3. Скрипт сообщил об ошибке?
  4. По выводу понятно что с этим делать?

5. Что за проект?

Другой программист случайно наткнулся на ваш репозиторий на GitHub. У него пока нет желания вникать в код и делать что-либо. Он хочет понять где оказался и как это относится к нему.

  1. Бегло, не вчитываясь, пролистал README
  2. Узнал, как этот код связан с электронным дневником и что полезного он делает
  3. Узнал, что надо заранее развернуть у себя сайт
  4. Нашёл ссылку на репозиторий электронного дневника, перешёл туда, ознакомился, вернулся
  5. В README заметил, что это учебный проект

6. Хочу такой же

Другой программист, уже знакомый с проектом, хочет развернуть код у себя и слегка "доработать напильником".

  1. Скачал репозиторий к себе
  2. Из README узнал, что понадобится файл БД и развёрнутый сайт
  3. Раздобыл где-то свой собственный файл БД
  4. Установил у себя сайт дневника, следуя инструкциям в его репозитории
  5. По инструкции подготовил скрипт к работе
  6. Запустил скрипт
  7. Открыл сайт электронного дневника, убедился, что оценки исправлены
  8. Полез читать код
  9. ...
  10. Profit!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.