С чего начать разработку Информационной системы?

Добрый день, друзья!

Преамбула/О себе:
В настоящий момент окончил курсы по Python (НОУ ИТМО в СПб + курс на edx.org), имею представление o GitHub, базовые знания HTML5 и СSS3 (CodeCademy, курсы HTMLAcademy, StackOverflow). JavaScript и JQuery - общее представление. В качестве дипломного проекта по Python делал браузерную карточную игру на python+flask. Защищал на локальном ПК, сетевое взаимодействие игроков не успел реализовать.

Вдоволь начитавшись мотивирующих постов окончательно осознал, что пока не создашь сам что-либо, необходимых навыков не приобретешь.
Минус, который вижу - разработка в одиночестве. Не прочувствовать все прелести agile, scrum и прочих методологий, не говоря уже о подводных камнях.

В итоге решил разработать информационную систему для сбора анализа данных сетевой оргтехники для выполнения задач:
Инвентаризация оборудования (хранение сведений о поступлении/перемещении/ремонтах)
Централизованное получение сведений о состоянии оборудования для оператвного заказа и замены расходных материалов.

Backend:
  • Python + Flask
  • БД (postgresql)

Frontend:
  • HTML
  • CSS
  • JQuery


Для чего/Почему это затеял/Цель:
  1. Автоматизация рутинных задач поиска данных об устройстве, его расположении и
  2. Создать проект, который не стыдно указать в своем портфолио начинающего программиста.
  3. Охватить спектр технологий для дальнейшего трудоустройства junior-разработчиком к концу года.


Вопрос:
С чего начать разработку информационной системы?
Как спланировать работу по разработке?


В голове слишком много вопросов, не знаю с какой стороны подойти:
Сбор данных (есть xls-файл с данными по оргтехнике), Архитектура системы, Проектирование БД, web-интерфейс, функционал, пользователи системы (коллеги в отделе), UI, MOCKUPы, где и как вести планирование и выполнение работы?! Блог/GitHub или что-то иное?

Вся эта каша в голове порой сводит с ума и мешает начать. А это самое главное! Потому что потом я врядли остановлюсь не доделав. Не смотря на то, что вокруг говорят, что это никому не нужно.
Сейчас нужно, как минимум, одному человеку - мне. Потом пригодится многим.
  • Вопрос задан
  • 5458 просмотров
Решения вопроса 2
viktorvsk
@viktorvsk
1. Сделайте блок-схемы (скетчи, вайрфреймы) каждой страницы приложения на бумаге
2. Сверстайте их
3. Реализуйте постепенно функционал для каждой из них

Начинайте с ключевого функционала, что б не застрять на регистрации, авторизации, смене пароля, правах доступа, оптимизации и т.д.
Ответ написан
Andrey_Pletenev
@Andrey_Pletenev
Pletenev.com
1) Создание полноценной ИС в одиночку - это изобретение велосипедов. Опыт будешь набирать медленно и никто не укажет тебе ни твои ошибки, ни лучшие решения. Даже, если доведешь до конца, система будет сырой и слабой. Никого, кто умеет читать код, ты ей не впечатлишь. Твоего текущего опыта и портфолио уже вполне хватает для джуниора. Рассылай резюме и устраивайся на работу. В команде, работая над реальными задачами вырастешь очень быстро.
2) Если п. 1 не вытащил гвоздь из твоей головы, тогда тебе дорога на sourceforge и иже с ним.
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
mmmaaak
@mmmaaak
Если сильно упростить цель Вашего проекта, то получится простое приложения для проведения CRUD операций. Примеров таких приложений, думаю, много. Плюс пару плюшек для импорта и экспорта данных извне (xsl). Для скорости и простоты построения UI - какой-нибудь CSS Framework, на личный выбор: Bootstrap, Foundation ... Базу данных - если проект небольшой, то SQLite. Ну и систему контроля версий тоже обязательно. Советую Git. Для того, чтоб идти в ногу со временем, в построении Web-приложений, советую заиспользовать какой-нибудь фронтендерский фреймворк: Angular, Ember ...
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
просто делать
гитхаб это просто котроль версий без него жизни не бывает
я так понимаю что вы уже где то работаете и где то собираетесь применять эту систему , то просто сядьте и пишите, интерфейс на бутстрапе сделайте стандартный.
Ответ написан
хех, сам пишу аналогичные вещи =)
Начать несомненно с описания самого главного, оборудования.
Какое оборудование вы хотите хранить?
---Составить список моделей, производителей
какие параметры будут его характеризовать?
---Какие различные параметры каких типов.
И тут надо принять одно из самых главных решений в области хранения параметров, как оно должно быть представлено в БД.
Если всегда одни и теже параметры, то одна таблица с необходимыми полями, если существуют группы оборудования со своими наборами параметров, и их не много и не будут они расширятся, то отдельные таблички с описанием параметров отдельного типа оборудования. И *барабанная дробь* самый универсальный случай, когда каждая модель может иметь произвольный набор параметров, модели создаются через конструктор, тут опять несколько вариантов, или организовать EAV, или допустим хранить шаблон параметров и сами значения в json (в постгре какраз удобно), или самое сложное но и гибкое, разнесение по отдельным типам в бд разных типов параметров, с кастомным поведением для каждого. - честно говоря реализация последнего вам уже до конца года хватит ^^
Собственно по каждому типу параметров определится с его особенностями, допустим будут ли у вас адреса, если да, просто текстом будет хранится или из некой базы подтягиваться (ФИАС прикрутить допустим), можно будет выбрать только дом или можно будет привязать оборудование к кварталу или улице, что делать если нет определённого адреса? хранить ли геокординаты?. Если нужны ip адреса, просто это ип, или необходимо указание к какой подсети он относится, связанно собственно с системой учёта ip адресов.
Какие поля будут уникальными, какие обязательными для заполнения, какие доступными только для чтения, как сообщить пользователю об этих особенностях.

Ну и там всякие сложности, может ли оборудование иметь топологические отношения. Нужен ли учёт портов (сетевых электрических и тд), влан, клиентов на оборудовании, взаимодействие с самим оборудованием из интерфейса системы, продолжать можно очень долго, и большинство из этого вам не нужно ^^

Вопрос на чём вы хотите сосредоточится?
Если хотите разобраться с Вёрсткой, не используйте готовые фреймворки, почитайте про БЭМ, попробуйте less или sass, реализуйте хоть страшный но свой интерфейс, протестируйте в разных браузерах. Потом натяните нормальный css фреймворк, попробуйте кастомизировать под себя.
Неплохой задачкой было бы построение RESTapi для вашего сервиса, с версионностью, поддержкой метода INFO... И взяв хороший js фремворк, организовать общение страницы и сервера именно через апи.
К гиту лучше всего привыкать сразу, и желательно поробовать работать используя такой подход habrahabr.ru/post/106912
БД само собой делать в 3-й нормализованной форме, контролируйте сколько и каких запросов бд, разберитесь с EXPLAIN и как работают составные индексы, да и собственно различные виды индексов в постгре, и да попробуйте использовать ОРМ(с фласком видимо прямая дорого к sqlalchemy).

з.ы. извиняюсь за сумбур =)
Ответ написан
Spetros
@Spetros
IT-шник
Вопрос:
С чего начать разработку информационной системы?

С технического задания, подробно описывающего информационную систему.

Как спланировать работу по разработке?

Разбить реализацию на этапы.
Ответ написан
@Riedel87
Oracle/Python/IOS Developer
Привет! В целом, что тебе говорят здесь - правильно. Я сам по образованию разработчик корпоративных информационных систем.
Вот книга, я надеюсь, она тебе поможет. Хотя бы структурировать мысли.
Сейчас в Озоне ее нет, но ты можешь найти в других магазинах.
Удачи!
www.ozon.ru/context/detail/id/3811655
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы