WEB сайт-игра "Угадай местность"
Для реализации используется Java Script API Google и Yandex.
Игра состоит в том, чтобы по карте Google Street View понять ваше местоположение и указать ее на мини-карте. Таким образом набрать как можно большее количество очков за 3 раунда. Чтобы начать игру запустите main.py, откройте сайт по адресу http://127.0.0.1:5000 и нажмите кнопку Начать игру. Возможна проблема с панорамой — если она не загрузилась, то обновите страницу.
На сайте также присутствует авторизация для сохранения результатов игрока. Доступен анонимный вход, в котором пользовательская статистика не сохраняется.
Реализовано REST API. По адресу /api/users можно получить топ 10 игроков. А по /api/users/id, где id натуральное число, конкретного пользователя. Можно добавлять пользователя методом post, с ключами username и password.
get('http://localhost:5000/api/users')) # get top 10 users by score print(post(
('http://localhost:5000/api/users', json={'username': 'artem', 'password': 'artem22'}) # Добавляет нового пользователя.
Note: Пароль должен быть длинее 6 символов!
get('http://localhost:5000/api/users/2').json() # get user by id
Иерархия папки:
│ main.py - главный файл c кодом каркаса сайта
│ rest_api_stuff.py - REST API
│ russiacities.csv - список координат мест России, в случайном радиусе от которых будет отображаться панорама при игре
│ worldcities.csv - список координат мест, в случайном радиусе от которых будет отображаться панорама при игре
│
├───data - код для работы с базой данных
│ │ db_session.py
│ │ user.py
│ │ __all_models.py
│
│
├───db
│ web_project.db - хранит пользовательские данные
│
├───forms
│ │ edit_form.py - форма изменения пароля/имени пользователя
│ │ login_form.py - форма входа
│ │ signup_form.py - форма регистрации
│
│
├───static
│ 3d.js - код игры
│ style.css - таблица стилей всего сайта
│
├───templates
│ 3d.html - код страницы игры
│ base.html - код страницы главного меню
│ login.html - код страницы входа
│ profile.html - код страницы профиля
│ register.html - код страницы регистрации
│ settings.html - код страницы настроек
│ signup.html - код страницы регистрации
Иерархия сайта:
/ - главное меню
/login - вход
/signup - регистрация
/logout - выйти
/session/type - игра типа type (russia, world и 55.3454 54.3534 например)
/idn - профиль пользователя с id равным n (натуральное число)
/settings - настройки
В проекте >500 строчки кода (с учетом js, комментариев и пустых строк, но без HTML/CSS) Проект также хостится на https://myproject25.herokuapp.com/ (сайт также полностью адаптивен для мобильных устройств)