В некотором университете есть группа студентов (отобрали более-менее способных) специальности прикладная математика, которые желают получать реальные не притянутые за уши практические задания для того, чтобы на ходу обучаться программированию и не только.
Суть в том, что в ходе обсуждения наших потребностей возникла мысль написать некую спецефичную CMS.
Написать это все желаем на Python, т.к. применяем его уже в других проектах и более-менее студенты с ним знакомы.
После запуска и тестирования, если наши желания оправдаются, мы планируем выпустить мобильное приложение с аналогичным функционалом.
У нас есть ребята, которые занимались web-дизайном, есть те, кто занимался версткой, есть те, кто знаком с django.
Мы уже сформировали ТЗ, теперь возникает вопрос, что делать дальше?
Прошу опытных веб-разработчиков набросать примерный план действий для нас.
Не ожидал, что так быстро откликнется столько людей. Понял, что недостаточно точно сформулировал цель проекта.
В первую очередь проект учебный. Помимо самого продукта целью является закрепление навыков (а у некоторых участников получение) программирования на Python, получения опыта командной работы. Продукт в массы выпускаться не будет.
Максимальное количество пользователей системы ожидается не больше 500, а реально я ожидаю около 300.
Может быть нам и не нужно разрабатываь CMS в обычном смысле этого понятия.
Нам нужен некий портал, где будет присутствовать немного необычная новостная лента, логин пользователей (можно даже без регистрации), их личный кабинет, где они получают доступ к персонализированным данным и функциям, система личных уведомлений.
Почему я сказал CMS - нужно выбрать нескольких пользователей и дать им возможность добавления новостей в ленту, переключения некоторых атрибутов и разграничения прав доступа. Но для упрощения разработки можно не реализовывать такие механизмы внутри системы, а вынести оих отдельно.
Wordpress никто копировать не собирается, такое не нужно. Нужно что-то простое, но желательно, чтобы контентом могли управлять люди без специальных знаний.
Dmitry Strelnikov: "Почему я сказал CMS - нужно выбрать нескольких пользователей и дать им возможность добавления новостей в ленту, переключения некоторых атрибутов и разграничения прав доступа."
Это называется не CMS, а админка. CMS - это как платформа для создания различных сайтов и управления ими. Не сам сайт, а инструмент для его создания.
Собственно, раз у вас уже есть ТЗ, вы уже знаете что должно получится, теперь надо решить какие вам подойдут инструменты. Я про фреймворки, библиотеки, субд итд. Проходите список фич и думаете, что для реализации этого понадобится? В итоге определитесь еще и с примерной последовательностью.
Если разработка командная, то перед началом программирования, надо наладить командное взаимодействие. Принять какие то стандарты, договоренности, распределить обязанности, настроить окружения (может пригодится Vagrant), создать git репозиторий, чтобы путаницы не вышло. Короче организационные вопросы.
Потом составляем план работы, раздаем задачи, кодим = )
Код стараемся сопровождать тестами. Сначала реализуются критичные и связующие места, потом все остальное. Примерный макет дизайна надо иметь заранее, но за полноценный дизайн и верстку беремся ближе к концу.
Вы уверены что надо писать именно CMS? То есть обобщенный продукт для управление контентом абстрактных сайтов? Что то мне кажется вы на самом деле хотите писать не CMS, а движок или веб-приложение...
Если хотите кмс потом выпустить в массы то не надо питон! Там конкретность огромная. Выберите себе какой то новый язик который набирает популярность и изучите его (к примеру Golang) сделайте и в случае с бобром выстрелит ваша кмс так как аналогов не будет. (особенно если сделаете копию вордпреса :D )
Мы уже сформировали ТЗ, теперь возникает вопрос, что делать дальше?
Если вкратце, то сценарий следующий:
1. Разбить ТЗ на подзадачи.
2. Ознакомиться с методикой, типа SCRUM.
3. Начать работать позадачно, и не забыть про систему контроля версий. Решили задачу - протестировали - далее коммит. И так по кругу до конца.
Мужик, хочешь cms - определи цели. В большинстве случаев — это тупик. Управление контентом — второстепенная вещь. Сперва нужно наподобие движка, который бы что-то выводил, из шаблонов генерировал. Очень прильщает всё настраивать как в том же wordpress, но это далеко не первоочерёдное.
Вашу бы энергию да в мирных целях...
я вот ищу кто мне софтину для машинного зрения на С++ напишет для linux. в первом приближении cython тоже сгодится.