Далее в разделе Backlog выложены основные подразделы сайта, которые необходимо реализовать.
В каждом разделе описаны сущности. Это не таблицы БД, хотя и могут описывать структуру таблиц. В любом случае нормализацию необходимо провести.
Выполнение задания подразумевает 3 этапа: проектирование, реализация, наполнение данными (часть реальных данных) и тестирование.
Выполнять задания можно группами из двух человек.
На этапе проектирования и разработки:
- Описать обобщенную постановку задачи в 3 относительно коротких предложения: 1.1. Что вы делаете и зачем это нужно. Тут необходимо описать объект проектирования с точки зрения его ценности для конечного пользователя. 1.2. Как вы это делаете? Здесь нужно подумать над методом, используемым в процессе разработки. Например, метод comet - опишите основные этапы проекирования. 1.3. Какими инструментами вы это делаете. Тут можно описать
- Описать диаграмму вариантов использования, ER-иаграмму, диаграму классов и прототип пользовательского интерфейса (figma или непосредственно верстка)
- Утвердить педлагаемые решения у преподавателя.
- Реализовать предложенный модуль в программном коде. За основу необходимо взять проект https://github.com/ksvyatov/csdprt и встроить свои решения в существующую структуру уже подготовленного сайта, включая меню.
- Создать pull request для применения изменений в основную ветку проекта.
- Показать проект на защите проектов.
Воозможность писать статьи, которые могут быть оформлены как отдельные страницы, либо как новости
- Теги (id, name, description, author, date) - для создания рубрикатора и облака тегов, которые связывают многие сущности между собой (статьи, проекты, дисциплины, преподаватели)
- Статьи (id, title, text (wysiwyg), tags[], author, date, comments)
- Типы статей (id, name, title)
Идеи проектов, которые могут быть реализованы студентами, у которых не хватает идей для реализации, или кому-то хочется что-то реализовать, но не хватает рук. Здесь необходимо проводить модерацию перед опубликованием.
- Ideas (id, title, description, tags[], likes, dislikes, comments, goal, methods, technologies, is_moderated, moderator, projects)
Проекты, которые реализуются на факультете
- Labs (id, description, address, tags[], areas[], )
- Projects (id, description, tags[], posts[], areas[], lab, comments)
- Areas (id, title, description) - области исследований (например, ML, robotics, ...)
Мероприятия, которые проводятся на факультете. Важно сделать календарь событий во фронтовой части (представления за месяц/неделю/день)
- Events (id, title, event_type, description, date_start, date_end, tags[], participants[], projects[], areas[], parent_event)
- EventTypes (id, title, name)
- Vacancies - список вакансий (структуру описания вакансии можно взять с hh.ru)
- CVs - резюме тех людей, которые хотят найт работу. Необходимо задействовать ссылки на лаборатории, теги, проекты, идеи, статьи блога
- Persons - преподаватели (почти готово уже)
- Partners (id, name, address, persons, programs, tags, projects) - компании-партнеры
- Departments (id, name, descritption, history, persons, labs, events, projects) - кафедры
- Programs (id, name, description, program_type, duration, partners) - направления подготовки
- Program types (id, name, description) - типы направлений подготовки
- Disciplines (id, name, description, tags, mooc_url, tags, projects, persons, course_num, has_exam, has_mark, has_course_work, lectures_hrs_num, practice_hrs_num, total_hrs_num) - дисциплины
https://www.twilio.com/blog/2017/02/an-easy-way-to-read-and-write-to-a-google-spreadsheet-in-python.html https://buildmedia.readthedocs.org/media/pdf/gspread/latest/gspread.pdf
docker-compose up -d --build
docker-compose down -v
docker-compose exec webcs python manage.py makemigrations
docker-compose exec webcs python manage.py migrate --noinput
docker-compose exec webcs python manage.py createsuperuser
docker-compose logs -f
docker container ps -a
docker exec -it [ID] /bin/sh