Сайт футбольных лиг МФЛ в Ставрополе
2026 · Дизайн и разработка
МФЛ — любительские футбольные лиги Ставрополя в формате 7×7: дневная МФЛ, ночная МНЛ и детские чемпионаты по годам рождения. В VK у лиг 7,2 и 2,3 тысячи подписчиков. А своего сайта не было: лига жила в сообществах, а команды записывались в личных сообщениях организатору.
Сайт футбольной лиги должен был дать ей память: у каждого матча, команды и игрока — своя страница, а у игрока — статистика, за которой можно следить.
Что было
Своего сайта у лиг не было. Дневная МФЛ и ночная МНЛ вели по сообществу в VK, и всё, что происходило в лиге, проходило через них. Чтобы записать команду, капитан писал организатору в личные сообщения.
Страницы игрока не было — как и сайта, на котором она могла бы жить. Голы, передачи и сыгранные матчи за сезон нигде не складывались в одну картину.
Гипотеза
Если у каждого матча, команды и игрока будет своя страница, а запись команд переедет из личных сообщений на сайт, то лига перестанет держаться на ленте и переписке — а игрок будет приходить не только за счётом, но и за своей статистикой.
Принципы
Телефон первым
Сайт и админка сначала собраны под экран телефона, широкий экран — потом. Длинный список делится на страницы по 20 строк, а не тянется полотном.
Запись — без переписки
Капитан входит через VK или по почте и подаёт заявку команды прямо на странице турнира. Организатор видит её в админке, а не в личных сообщениях.
Счёт складывается из голов
Отдельного поля для счёта нет: он считается из голов матча. Поэтому таблица, бомбардиры и профили игроков не могут разойтись между собой.
Новую лигу заводит организатор
Лига — запись в админке, а не строчка в коде. Четвёртую, пятую или женскую лигу организатор заводит сам — без программиста и без обновления сайта.
Решение
01 — Главная
Две лиги жили в двух сообществах VK — на сайте у них одна главная, вместе с детскими чемпионатами. Ближайшие матчи всех лиг идут одной лентой, поэтому у каждого стоит логотип его лиги: чей это матч, видно без перехода. Взрослых и детей разделяет переключатель.


02 — Страница турнира
Турнир целиком — по одной ссылке: таблица, расписание, статистика и команды живут на одной странице вкладками. Таблицу никто не пересчитывает вручную: очки складываются из результатов, как только матч завершён. Закончившийся сезон не пропадает — он уходит в «Прошедшие» на странице лиги.


03 — Страница матча
Страница матча — источник всей статистики лиги. Гол вносится с автором и передачей, и из одного матча обновляются таблица, бомбардиры турнира, профили игроков и рейтинг. Звание лучшего игрока матча уходит в профиль — это достижение остаётся с игроком.


04 — Профиль игрока
Профиль сделан, чтобы игрок следил за своим сезоном. В нём собрано всё сыгранное — по каждому турниру отдельно, а кто играет за две команды в двух лигах, видит один профиль, а не два. Кнопка «Это мой профиль» запоминает игрока на телефоне без регистрации: дальше пункт «Профиль» в меню открывает сразу его страницу.


05 — Заявка команды
Запись переехала из личных сообщений на страницу турнира. Пока идёт регистрация, капитан входит через VK или по почте и подаёт заявку с составом — а если что-то поменялось, правит её сам. Организатор видит заявки в админке. Фото игроков тренер и капитан тоже загружают сами, со своих аккаунтов.

06 — Админка
Админка сделана под телефон организатора. Результат вносится событиями — гол, автогол, карточка, — и каждое сохраняется сразу, кнопки «Сохранить» нет. Таблицу, бомбардиров и рейтинг сайт считает сам. Новые заявки видно на обзоре числом, а сезоны, туры и группы организатор собирает там же.
Что не сработало с первого раза
Первая версия считала голы, передачи и карточки по любому матчу — в том числе по идущему. А сыгранные матчи — только по завершённым. Организатор вносил гол по ходу игры, и в профиле бомбардира появлялось «1 гол · 0 матчей»: гол есть, а матча, в котором он забит, как будто нет.
Правило перевернули: вся личная статистика — голы, передачи, карточки, сыгранные матчи и рейтинг — считается одним фильтром, только по завершённым матчам. Гол идущего матча попадает в профиль вместе с финальным свистком. Лучшего игрока матча тоже показывают только после него. Пока матч идёт, это ещё не статистика.
Почему это сработало
Сайт лиги — это не ещё одна лента. Лента у неё уже была, в VK.
В ленте матч живёт, пока пост наверху. На сайте он остаётся: в таблице, в профилях бомбардиров, в рейтинге, а закончившийся сезон — в «Прошедших».
Лента прокручивается. Статистика — копится.
