Первое, что вы должны сделать, это собрать как можно больше информации о том, как должен выглядеть конечный продукт . От вашего вопроса у меня есть ощущение, что у вас есть только смутное представление о том, чего хотят заинтересованные стороны. Не бойтесь спрашивать больше о неясной задаче. Лучше потратить 30 минут на обсуждение и принятие к сведению, чем показывать конечный продукт через месяц и понять, что это не то, чего хотел ваш босс / команда.
Вопрос, который я хотел бы задать
- Кто будет использовать это приложение? (технический или нетехнический персонал)
- Для какой цели это разрабатывается?
- Нужно ли размещать его в Интернете или использовать локально?
- Как многим пользователям необходимо иметь доступ к этому приложению?
- Обрабатываем ли мы конфиденциальную информацию с помощью этого приложения?
- Нужно ли в какой-то момент дополнять ее другими функциями?
Это всего лишь пример того, что я бы попросил, во время разговора с заинтересованными сторонами наверняка появится намного больше.
Что я думаю, вам нужно сделать
Вам нужно создать систему мониторинга для задач, которые должны быть выполнены вашей командой разработчиков (например, Kanban)
Что, я думаю, у вас уже есть
- Интерфейс с картой, которую можно перетаскивать в каждую корзину. Я также предполагаю, что вы можете создать новую карту и удалить ее во внешнем интерфейсе. Внешний интерфейс, скорее всего, записан в React , Angular или Vue. js. У вас также может не быть инфраструктуры веб-интерфейса (сочетание jQuery и vanilla js), но обычно разработчик веб-интерфейса в итоге выбирает инфраструктуру своего рода, чтобы помочь разработке.
- API бэкэнда в Python (в Flask или с Django -rest-framework наиболее вероятно), который связывается с базой данных SQL, такой как postgresql или База данных документов, такая как MongoDB .
Я делаю много предположений здесь, но ваша цель должна состоять в том, чтобы понять технологию, с которой вы будете работать, чтобы проверить, какой хостинг будет работать лучше всего. Например, если настраиваемая база данных - это база данных MySQL, у вас могут возникнуть проблемы с каким-либо хостинг-провайдером.
Что я думаю, что вам не хватает
В настоящее время интерфейс и бэкэнд не работают. не общаться друг с другом. Когда вы перетаскиваете карту, она не сохраняется, если вы обновите sh страницу. Кроме того, все это находится на вашем компьютере и не может быть использовано кем-либо из вашего персонала. Сначала необходимо соединить внешний интерфейс с внутренним, чтобы приложение имело стойкость . Затем вам нужно развернуть это приложение где-нибудь , чтобы оно было доступно вашим сотрудникам.
Сначала я бы поработал локально, чтобы убедиться, что слой сопротивления работает. Это подразумевает одновременную работу сервера API, внешнего сервера и сервера базы данных на вашем компьютере. Затем вы должны получить данные из API, чтобы узнать, какие карты есть в базе данных, а затем визуально создать их в своем интерфейсе в нужном месте. Когда вы перетаскиваете карту на новое место после перетаскивания, она должна инициировать POST-запрос к вашему API-серверу, чтобы обновить статус этой конкретной карты (посмотрите документацию вашего API, чтобы проверить, что вам нужно отправить). Сервер должен отправлять обратно обновленную версию статуса карточек, если запрос POST был успешным, поэтому ваше приложение должно просто перерисовать карточку в нужном месте (для вас это не будет иметь значения, так как они уже справа) spot, и ваша оболочка внешнего интерфейса, скорее всего, не будет действовать на это изменение, так как состояние не изменилось). Это все, что я бы сделал для этой части .
Затем я бы перешел к этапу развертывания, чтобы убедиться, что все, что вы делали локально, все еще может работать в сети. Я бы использовал Heroku , чтобы начать вместо того, чтобы прыгать прямо к AWS. Heroku - это сервис, построенный поверх AWS, который справится с большой сложностью AWS для вас. Это отлично подходит для создания прототипов, и это означает, что когда ваш материал готов, вы можете легко перейти на AWS и быть уверенным, что существует настройка для работы вашего приложения. Вы также можете быть привязаны к серверам вашей компании, что я бы также попросил заинтересованную сторону (например, где я могу разместить это приложение, а где нет).
Поток для внешнего интерфейса. Приложение + api + база данных на Heroku обычно выглядит следующим образом. Вы создаете репозиторий github для своего веб-интерфейса (делайте его приватным) и создаете приложение на Heroku, которое будет следить за изменениями в этом хранилище. Он повторно развернет приложение для вас, когда увидит изменение в указанном субдомене c хостинга Heroku. Вам нужно будет настроить некоторые procfiles , которые сообщат Heroku, что делать с данным типом приложения. Здесь вам нужно дважды проверить, какой интерфейс вы используете, так как это может изменить используемые procfiles. Скорее всего, это интерфейс на основе node.js (React, Angular или Vue), так что просмотрите здесь , чтобы узнать, как разместить его в сети.
Вам потребуется также сделать репо для бэкэнда, который отделен от внешнего интерфейса, эти два объекта различны и взаимодействуют только через HTTP-запрос (frontend-> backend) и JSON (backend-> внешний интерфейс). Вам нужно будет следовать той же идее, что и при развертывании внешнего интерфейса, перейдите здесь .
После того, как у вас есть эти два онлайн, вам нужно создать базу данных на Heroku . Это делается путем добавления хранилища данных к вашему API, над здесь . Существует некоторая конфигурация, определяющая структуру c, которую необходимо выполнить, чтобы заставить API взаимодействовать с онлайновой базой данных, но тогда вам нужно будет найти эту конфигурацию в документации инфраструктуры. База данных также может быть запущена на вашем сервере, и в этом случае вам просто нужно настроить свой онлайн-бэкэнд для связи с этой конкретной базой данных по определенному адресу.
После того, как все вышеперечисленное выполнено , повторно протестируйте свое приложение, чтобы убедиться, что вы получаете то же поведение, что и раньше. Это полезный MVP, однако нет никакого уровня безопасности. Любой, у кого есть правильный URL, может просто загрузить ваш интерфейс и начать возиться с вашими данными.
Для того, чтобы сделать этот жизнеспособный конечный продукт, необходимо еще разработать. Это приводит нас к моему последнему замечанию: почему вы не используете такой продукт, как Trello, Jira или даже Github Project? Если вы хотите сэкономить на том, чтобы не платить за подписку, я думаю, вы должны учитывать стоимость разработки, безопасности и обслуживания этого приложения.
Надеюсь, это поможет!