fkn / ndo Goto Github PK
View Code? Open in Web Editor NEWThis project forked from kriasoft/react-starter-kit
NDO - Next DOmic
Home Page: http://ndoproject.org
License: MIT License
This project forked from kriasoft/react-starter-kit
NDO - Next DOmic
Home Page: http://ndoproject.org
License: MIT License
Сделать их с маленькой буквы
Сравните две страницы:
На второй промежуток больше и есть двоеточие
Нужно чтобы везде заголовок был как на первой
У нас есть базовая реализация хранения файлов. Там уже есть возможность загружать файл.
Нужно сделать следующее:
<input type=upload name=file1234/>
(чтобы тестировать - нужно его самостоятельно добавить)file1234
создается объект {id: ..., name: ..., ...}
(нудно подумать какие нужны поля)Для этой задачи нужно модифицировать https://github.com/fkn/ndo/tree/master/src/components/StudyEntityView
Эта задача зависит от #40
Перенести кнопку:
Со страницы:
http://localhost:3000/courses/79629d30-0e18-11e8-a0fc-03998ec082e6
На страницу:
http://localhost:3000/courses/79629d30-0e18-11e8-a0fc-03998ec082e6/users
(оформить её в виде кнопки +)
Сейчас написан "быстрый" код, который нельзя использовать в реальности (крайне небезопасный).
Нужно изучить модуль vm и сделать возможным использование его вместо new Function
.
Думается, что можно будет в вызов vm передавать "богатый" API, который сможет делать некоторые общие вещи (проверка теста, проверка файла, и др)
Lines 32 to 46 in 8102c26
Сейчас она хранится в оперативной памяти и после перезапуска приходится снова логиниться. Не удобно.
Везде провести переименование StudyEntity -> Unit
Во-первых нужно переименовать файлы (чтобы переименовывать файлы нужно использовать команду git mv
)
Во-вторых нужно переименовать во всех упоминаниях в файлах
В-третьих нужно поменять структуру базы данных
На этой странице
http://localhost:3000/courses/79629d30-0e18-11e8-a0fc-03998ec082e6/marks
Нужно отобразить списком учебные единицы (для начала просто скопировать код из списках учебных единиц: http://localhost:3000/courses/79629d30-0e18-11e8-a0fc-03998ec082e6)
Только оформить список в виде таблицы. И напротив каждой учебной единицы показывать максимальную оценку (для получения оценки студента за юнит нужно написать специальный API).
Требуется настроить passportjs таким образом, чтобы заработала авторизация в ВК
Задача сложная и не приоритетная
Нужно взять код для списка пользователей с этой страницы:
https://github.com/fkn/ndo/blob/master/src/routes/users/Users.js
И вынести его в отдельный компонент. В этом отдельном компоненте сделать так, чтобы пользователей можно было фильтровать через суффиксный поиск и чтобы была pagination (например, на одной странице можно было отображать не более 10 групп)
В будущем появятся группы пользователей и надо будет это учесть в том числе (#6 )
Сейчас это используется в SubscribeUsers
Обновить таблицу CourseStudyEntity и добавить туда свойство weight
Это будет вес учебной единицы в итоговой оценке за курс
По хорошему итоговая оценка за курс должна быть нормализована к 100 баллам, но вес просто должен быть коэффициентом для учебной единицы.
Пример
Есть 3 учебных единицы в курсе: А, Б, В
С весами: А - 10, Б - 5, В - 20.
Студент получил оценки: А - 90, Б - 50, В - 30
Итоговая оценка будет подсчитана следующим образом:
Сейчас есть длинный код в:
https://github.com/fkn/ndo/blob/master/src/components/UnitView/UnitView.js#L126
Необходимо сделать так, чтобы этот код был разделен на классы (каждый элемент - отдельный класс)
В момент написания этой задачи там есть 8 разных компонентов.
Значит нужно создать 8 классов. Возможно, что нужен будет ещё 9 класс для хранения каких-то общих утилитарных функций.
Нужно сделать следующее:
Например, на этой странице:
http://localhost:3000/courses/79629d30-0e18-11e8-a0fc-03998ec082e6/3c3f6be0-bf48-11e8-b3b1-13cb2b1a5408
Сделать вкладки:
На вкладке с редактированием схемы должен быть текстовый редактор JSON документа.
Зайдите под пользователем [email protected]
И откройте эту страницу:
http://localhost:3000/courses/869dc290-0e18-11e8-a0fc-03998ec082e6/ad32c630-0e18-11e8-a0fc-03998ec082e6
Администратор должен иметь возможность просматривать содержимое курса (но не должен иметь возможность ставить оценки).
Студент должен иметь возможность видеть список юнитов, но не иметь возможность смотреть конкретный юнит (так же для этого нужно изменить запросы в БД, чтобы разграничить права).
Преподаватель должен иметь возможность просматривать содержимое курса и иметь возможность ставить оценки.
На странице:
http://localhost:3000/courses/2/users
Сделать загрузку dot-файлов (язык для графов), прямо в учебную единицу.
Про dot-файлы можно почитать тут: https://ru.wikipedia.org/wiki/DOT_(язык)
Поиграть в это онлайн можно тут: http://viz-js.com
Есть библиотека D3 (https://d3js.org), которая идеально под это подходит, но есть вероятность, что она будет слишком медленной.
Поэтому появляется 2 пути решения:
Пока что я бы попробовал первый вариант. Бегло гуглится 2 реализации:
Нужно попробовать какую-нибудь из них. По-сути, чтобы вставить граф преподаватель должен будет написать какой-то такой код:
<script type="text/vnd.graphviz">
graph {
a -- b;
b -- c;
a -- c;
d -- c;
e -- c;
e -- a;
}
</script>
В user нет поля role. Role определяется для каждой пары Course-User в отдельности.
Нужно запрашивать роль где-то в тот же момент когда запрашиваются курсы текущего пользователя.
Может быть лучше добавить свойство role в CourseType для graphql.
ndo/src/routes/study-entity/StudyEntity.js
Line 371 in e8879eb
Нужно взять код для списка групп с этой страницы:
https://github.com/fkn/ndo/blob/master/src/routes/users/Users.js
И вынести его в отдельный компонент. В этом отдельном компоненте сделать так, чтобы группы можно было фильтровать через суффиксный поиск и чтобы была pagination (например, на одной странице можно было отображать не более 10 групп)
Хочется, чтобы преподаватель мог писать формулы в формате LaTeX, а студенты их могли видеть.
Есть 2 подхода:
<math>2 + 2 = 4</math>
$$ 2 + 2 = 4 $$
)Второй способ - лучше, но скорее всего лучше использовать первый.
Самое крутое средство на сегодняшний день - MathJax. Вот тут есть документация:
https://docs.mathjax.org/en/latest/start.html
Похоже, что вот эта библиотека лучший вариант (но надо ещё поискать):
https://github.com/wko27/react-mathjax
На странице курсов нужно чтобы отображались они следующим образом:
Создать checklist для проверки всё ли сделано правильно при коммите и правильно ли сделан коммит
Написать как сделать синхронизацию с upstream'ом
Написать как сделать pull request
Создать файл тут:
https://github.com/fkn/ndo/new/master/docs
Сейчас при добавлении оценки она не появляется в списке и нужно обновить страницу. Нужно, чтобы добавленная оценка отображалась автоматически
Имеется ввиду эта страница:
http://localhost:3000/courses/79629d30-0e18-11e8-a0fc-03998ec082e6/98d574d0-0e18-11e8-a0fc-03998ec082e6
На этой странице:
http://localhost:3000/users
В модальном окне редактирования группы надо добавить поле для изменения её имени
Можно посмотреть как оно сделано в редактировании юнита
В юните нужно добавить возможность выбирать "стратегию" оценивания (поле markStrategy:enum).
Пока что видны следующие стратегии:
Стратегия будет просто строкой и дальше будет использоваться на странице со списками оценок.
(то есть просто через switch-case надо будет выбирать нужную стратегию)
Вот на этой странице:
http://51.15.53.245/users
Можно увидеть email'ы всех пользователей. По-хорошему доступ к email пользователя должен отсутствовать у не администратора. Тем более у обычных пользователей.
Сейчас же можно собирать данные с этой страницы и рассылать спам на email'ы
Поэтому можно выделить такие задачи:
Нужно продолжить задачу #26
Если пользователь - преподаватель, то нужно отобразить не одного студента, а всех подписанных студентов
Вот эта страница должна быть обновлена:
http://localhost:3000/users/4595ded0-9051-11e7-9277-efa5ca42ec56
На странице:
http://localhost:3000/courses/2/2
Исправить этот компонент:
ndo/src/components/UsersList/UsersList.js
Line 13 in 55ad734
Добавить поле для ввода над списком, чтобы пользователь мог вводить туда текст и список фильтровался по этому тексту
Для каждого запроса нужно сделать следующее:
query <NAME> {
или с mutation <NAME> {
)Этот процесс не работает в данный момент и есть как минимум 2 ошибки:
Подписать 2-х пользователь не администраторов:
Зайти под учеником
Зайти под преподавателем
Описать необходимое программное обеспечение с ссылками для скчавания
Указать настройки прокси во всех программах
Сделать в виде пошагового рокуводства
Нельзя удалять и создавать новый файл. Нужно сделать переименование
На этой странице:
http://localhost:3000/users/4595ded0-9051-11e7-9277-efa5ca42ec56
Сделать так, чтобы пользователь мог кликнуть на карандаш напротив своего имени и изменить его
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.