Краткий функционал:
Удобный и быстрый сервис для поиска эстетичных локаций, который экономит время пользователей и предоставляет актуальную информацию.
Причины выбора темы:
В наше время ежедневно возникает вопрос «Куда пойдем погулять?» Особенно важно, чтобы место было не только интересным, но и эстетически привлекательным. Обычно поиск таких мест занимает много времени: пользователи просматривают Instagram, Telegram или TikTok, затем проверяют расположение в картах. Это может занять от 30 минут до 1,5 часов. Наш сайт поможет сократить время поиска, предоставляя удобный каталог локаций с фильтрами по местоположению, типу места и другим параметрам.
Основные функции сайта:
-
Каталог локаций с фотографиями, названиями, адресами, ближайшими станциями метро, координатами на картах, типом места (улица, кофейня и др.) и описанием.
-
Поиск по параметрам:
-
Ближайшее метро
-
Тип локации (улица, кафе, ресторан и т.п.)
-
Рейтинг
-
Фото
-
Интеграция с картами (Yandex Maps) для быстрого просмотра местоположения.
-
Добавление новых локаций пользователями.
-
Промокоды для сотрудничающих заведений.
-
Регистрация пользователя.
-
Авторизация.
Дополнительные возможности:
-
Удобный и современный интерфейс с адаптивным дизайном.
-
Просмотр всех локаций на одной карте
-
Добавление локации
-
Изменение всех параметров локации
-
Загрузка фото
-
Хранение данных в БД
Конечные технологии, которые использовались при реализации проекта:
-
Язык программирования: Python
-
Фреймворк: Flask
-
База данных: SQL, SQLite3
-
API: REST для взаимодействия с фронтендом
-
Yandex Maps API
-
ORM: SQLAlchemy
-
requirements.txt
-
Хеширование пароля
-
ООП
-
Хостинг
Интерфейс:
-
Bootstrap для адаптивного дизайна
-
Jinja2 для HTML-шаблонизации
База данных location:
Включает 2 таблицы:
- locations (id, name, type, address, metro, coordinates, map_link, photo, description, promo_code, rating, PRIMARY KEY)
- user (id, username, email, password_hash (хешированный пароль))
Описание структуры классов программы и за что они отвечают:
- class LocationForm - (Форма для добавления и редактирования локации)
- def add_location - Добавление новой локации
- def allowed_file - работа с файлом
- def show_map_with_photos - показывает точки на карте с помощью биботеки folium
- def edit_location - редактирование локации
- def delete_location - удаление локации
- class User - модель пользователя User в Базе данных
- class Location - Модель локации Location в Базе данных
- class RegistrationForm - класс для регистрации пользователя
- def load_user - Загрузчик пользователя
- def index - Главная страница
- def show_locations - Страница всех локаций
- def about - Страница о проекте
- def locations_map_with_photos - Страница с локациями на карте
- def register - Регистрация
- def login - Вход
- Скачайте зип архив с проектом и разархивируйте папку "CafeMap" в проект в пайчарме.
- Добавьте requirements.txt в проект и введите эту команду pip install -r requirements.txt в терминал.
- Запуститt код app.
- Чтобы получить возможность редактировать, добавлять и изменять локации зарегистрируйтесь!!
Этапы разработки:
- Проектирование структуры БД и API.
- Разработка сайта.
- Создание frontend-интерфейса (шаблоны, адаптивность).
- Интеграция с картами.
- Развертывание на хостинге.
Целевая аудитория:
- Люди, ищущие красивые места для фотосессий и прогулок.
- Посетители кафе и заведений, желающие найти уютные места.
- Владельцы заведений, заинтересованные в продвижении.