1

Этап 1

Организовать доступ к данным через Entity Framework и Linq

2

Этап 2

Организовать подтверждение адреса электронной почты

3

Этап 3

Разработать web-программу, которая позволяет разным пользователям просматривать домены, на которые у них есть права

4

Этап 4

Улучшить интерфейс, добавлением "одновременного редактирования"

5

Этап 5

Сделать вход через другие сайты и соцсети

6

Этап 6

Хранить историю изменений

7

Этап 7

Сделать API для "внешних разработчиков"

8

Этап 8

Единая сквозная аутентификация для нескольких сайтов

9

Этап 9

"Кровавый энтерпрайз"

10

Этап 10

Финальная битва

1

Этап 1

Организовать доступ к данным через Entity Framework и Linq

2

Этап 2

Организовать подтверждение адреса электронной почты

3

Этап 3

Разработать web-программу, которая позволяет разным пользователям просматривать домены, на которые у них есть права

4

Этап 4

Улучшить интерфейс, добавлением "одновременного редактирования"

5

Этап 5

Сделать вход через другие сайты и соцсети

6

Этап 6

Хранить историю изменений

7

Этап 7

Сделать API для "внешних разработчиков"

8

Этап 8

Единая сквозная аутентификация для нескольких сайтов

9

Этап 9

"Кровавый энтерпрайз"

10

Этап 10

Финальная битва

03 августа 2020 01 января 2021
Цель просрочена на 1302 дня

Цель заброшена

Автор не отписывался в цели 3 года 9 месяцев 20 дней

Автор цели

Проект-Х или просто учебные задачи

Сам не знаю, что это. Выглядит неподъёмно, но надо же с чего-то начинать.

Этапы будут добавляться по мере выполнения задач. А пока начнём с малого.

 Критерий завершения

Проект-Х или просто учебные задачи выполнены!

  1. Организовать доступ к данным через Entity Framework и Linq

    Драйверы конкретной системы управления базами данных (MsSQL или PostgreSQL) должны указываться в конфигурационном файле приложения.

  2. Организовать подтверждение адреса электронной почты

    Сделать подтверждение адреса электронной почты путём отправки письма. Иначе, что пользователям делать, если забыт пароль?

    Встанет вопрос, с какого адреса отправлять. Тут надо предположить, что вообще говоря есть "локальный" почтовый сервер (или свой, или предоставляемый провайдером, ну в самом крайнем случае - гугл), на нём есть аккаунт. Дальше (теоретически) есть два варианта - 1) отправка писем идёт напрямую на сервера получателей, 2) отправка писем идёт через локальный сервер, а сервер сам делает доставку позже в случае недоступности связи с удалённым сервером в данный момент. Я не изучал API для работы с почтой, и насчёт наличия в нём двух вариантов не уверен (т.е. можно ли там указывать целевой почтовый сервер дополнительно к указыванию адреса получателя). Если есть возможность отсылать через свой сервер, то выбор одного из двух вариантов должен конфигурироваться в настройках web-приложения.

    Использовать надо библиотеку MailKit - https://github.com/jstedfast/MailKit

    Потому что так написано тут - https://docs.microsoft.com/en-us/dotnet/api/system.net.mail.smtpclient?view=netcore-3.1

    Как-то так, наверное - https://dotnetcoretutorials.com/2017/11/02/using-mailkit-send-receive-email-asp-net-core/

    С отправкой почты через google нужны ещё дополнительные настройки безопасности - https://stackoverflow.com/questions/33496290/how-to-send-email-by-using-mailkit

  3. Разработать web-программу, которая позволяет разным пользователям просматривать домены, на которые у них есть права

    1. Если есть право на редактирование, то могут устанавливать и удалять флаг "нужен сертификат для HTTPs".

    2. Идентификация должна проводиться по email, пароли храниться на сервере должны в зашифрованном виде.

  4. Улучшить интерфейс, добавлением "одновременного редактирования"

    Используя протокол HTTP/2 (но не HTTP/3)

  5. Сделать вход через другие сайты и соцсети

    Существуют разные соцсети типа ВКонтакте, Facebook, Яндекс-паспорт, google, имея аккаунты в которых можно быстро зарегистрироваться на сайте. В некоторых играх (например в EVE-online) тоже есть такая функция, когда сторонний сайт может использовать имена игроков и логин через сайт EVE. Ещё бывает авторизация через портал госуслуг России (но её делать не надо, потому что там надо иметь юрлицо и договор с порталом госуслуг).

    Сделать регистрацию через хотя бы один стронний сервис на своём сайте.

  6. Хранить историю изменений

    История тоже может понадобиться (но не сразу, сначала сделать minimum viable product (MVP)!), например для ведения личного денежного баланса в личном кабинете пользователя. Там ещё бывают "тарифные планы" и "перечень заказанных услуг", однозначно тянет на отдельный этап :)

  7. Сделать API для "внешних разработчиков"

    Современные сервисы предоставляют возможность внешним организациям интегрироваться с кодом сервиса. Реализовать управление функциями приложения (через WebAPI).

    В качестве примера можно посмотреть на API игры EVE Online. Но это полезно и для других видов сервисов, например для организации хостинга, для работы с франчайзи, и вообще в целом при заключении договоров.

    У API должно быть развитие, две-три версии, по мере добавления на сайт новых функций. Это нужно для того, чтобы изучить/понять/проработать/описать, как обновлять API от одной версии к другой.

  8. Единая сквозная аутентификация для нескольких сайтов

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

  9. "Кровавый энтерпрайз"

    Реализовать Kerberos-аутентификацию. Вынести все секреты с серверов на контроллер домена. Верить нельзя никому!

  10. Финальная битва

    Объединить все наработки в одном проекте и создать подробную документацию о том, что и как сделано. Документация должна включать в себя генерирование страниц по XML-Comments, Web-отображение исходников, Web-отображение структуры БД. Есть готовые компоненты для всего (или как минимум многого) из этого. Автоматизировать актуализацию документации (посмотреть на github web hooks). Организовать поиск по документации при помощи NLucene (Пользоваться NLucene несложно, но выглядит наличие поиска очень красиво). Документация должна быть доступна по частям (одна часть - один исходный репозиторий, наверное), с управлением доступом, в том числе в результатах поиска.

  • 1380
  • 03 августа 2020, 14:37
Регистрация

Регистрация

Уже зарегистрированы?
Быстрая регистрация через соцсети
Вход на сайт

Входите.
Открыто.

Еще не зарегистрированы?
 
Войти через соцсети
Забыли пароль?