Giter Site home page Giter Site logo

v2g-demo / v2g-demo Goto Github PK

View Code? Open in Web Editor NEW
11.0 4.0 5.0 4.55 MB

The goal of this demo is to illustrate Vehicle-to-grid (V2G) technology in simple multiplayer browser game

Home Page: http://v2g-demo.com

License: Apache License 2.0

JavaScript 1.64% TypeScript 36.82% HTML 4.82% CSS 3.24% Shell 0.77% Java 51.52% Dockerfile 1.20%
v2g vehicle-to-grid energy-transition browser-game beginners-friendly

v2g-demo's Issues

Main navigation - навигационная панель

На главной навигационной панели должны быть ссылки:

Getting Started - переименовать в V2G Demo и роутить на главную страницу
Components - переименовать в About и роутить на страницу About

с правой стороны только ссылка на гитхаб https://github.com/v2g-demo/v2g-demo

Car simulator microservice - микросервис симулирующий авто

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

Формула расчета разряда батареи относительно расстояния также будет в задаче

Map component based on Leaflet

https://github.com/Asymmetrik/ngx-leaflet

Нужно сделать компонент отображения карт на основе библиотеки Leaflet
Это даст возможность переключать провайдеров карт и уменьшить количество запросов к Google maps API

API построения маршрута между объектами

Есть задача для бэкенда, нужно написать метод, который будет получать на вход два объекта и строить маршрут между ними с помощью Google Routes API. Нужно сделать контроллер localhost:8080/api/buildroute?from=1&to=2 в нашем API, который будет читать из БД координаты объектов, звать метод построения маршрута и возвращать во вфронтенд json от google api

Vehicle tracking system - система трекинга автомобилей

Допустим, мы делаем реальную систему трекинга автомобилей на карте. Где-то там у нас ездят машинки с GPS датчиками и сообщают свои координаты и заряд батареи. Прямо Настоящий интернет вещей. Только вот реальных машин в демо игре нет, и надо делать их симуляторы

GameSelector component

Компонент должен отображать список игровых карт на главной странице фронтенда
список игровых карт нужно запросить с бэкенда

Список отображается в виде маленьких карт с именами и количеством онлайн игроков

после клика на элемент списка пользователь должен перейти в основное окно игры с отображением большой карты

Game quest generator - генератор игровых заданий

нужно написать класс генератор игровых заданий, он должен работать в отдельном потоке и раз в X секунд создавать игровую задачу для персонажа. Игровая задача или квест говорит, что персонаж должен доехать из точки А в точку Б. нужно взять из БД всех character, найти у каждого character объект типа VEHICLE и выбрать второй рандомный объект на игровой карте. игровую задачу надо сохранить в БД, поэтому под нее нужно создать еще одну Entity

DevOps инфраструктура

Для каждого репозитория внутри организации должны быть настроены автоматическая сборка и прогон тестов, сборка Docker контейнера

Должны быть написаны скрипты и инструкции по развертыванию рабочего и тестового окружения.

Должны быть написаны скрипты и инструкции для выкатки приложения в прод.

Basic game map config - базовая конфигурация игровой карты

Базовая конфигурация

  • название карты
  • множитель времени
  • ограничение карты по масштабу и границам
  • минимальный и максимальный прайс электричества
  • массив координат зарядных станций

Конфигуратция должна экспортироваться формате json

https://developers.google.com/maps/documentation/javascript/examples/control-bounds-restriction

Externalized Configuration backend - внешнее конфигурирование бекенда

нужно сделать возможность конфигурировать параметры spring приложения через переменные окружения, нужно для удобного запуска и тестирования как локально, так и в CI. и на продакшене.

Также в рамках задачи нужно убрать API ключи из тестов

пример

google.secret.key=${GOOGLE_API_KEY}
spring.datasource.url = ${V2GDEMO_MYSQL_DB_HOST}:${V2GDEMO_MYSQL_DB_PORT}/"v2gdemo"
spring.datasource.username = ${V2GDEMO_MYSQL_DB_USERNAME}
spring.datasource.password = ${V2GDEMO_MYSQL_DB_PORT}

документация
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

lint errors

npm run lint должен проходить

ERROR: /home/travis/build/v2g-demo/v2g-demo/src/app/components/map/map-constants.ts[1, 31]: " should be '
ERROR: /home/travis/build/v2g-demo/v2g-demo/src/app/components/map/map-constants.ts[13, 36]: object access via string literals is disallowed
ERROR: /home/travis/build/v2g-demo/v2g-demo/src/app/components/map/map-constants.ts[32, 36]: object access via string literals is disallowed
ERROR: /home/travis/build/v2g-demo/v2g-demo/src/app/components/map/map-constants.ts[51, 36]: object access via string literals is disallowed
ERROR: /home/travis/build/v2g-demo/v2g-demo/src/app/components/map/map-constants.ts[70, 36]: object access via string literals is disallowed
ERROR: /home/travis/build/v2g-demo/v2g-demo/src/app/components/map/map-constants.ts[89, 36]: object access via string literals is disallowed
ERROR: /home/travis/build/v2g-demo/v2g-demo/src/app/components/map/map-constants.ts[108, 36]: object access via string literals is disallowed
ERROR: /home/travis/build/v2g-demo/v2g-demo/src/app/components/map/map-constants.ts[127, 1]: Exceeds maximum line length of 140
ERROR: /home/travis/build/v2g-demo/v2g-demo/src/app/components/map/map-constants.ts[128, 1]: Exceeds maximum line length of 140
ERROR: /home/travis/build/v2g-demo/v2g-demo/src/app/components/map/map-constants.ts[129, 1]: Exceeds maximum line length of 140
ERROR: /home/travis/build/v2g-demo/v2g-demo/src/app/components/map/map-constants.ts[130, 6]: Missing semicolon
ERROR: /home/travis/build/v2g-demo/v2g-demo/src/app/components/map/map.component.spec.ts[4, 28]: " should be '
ERROR: /home/travis/build/v2g-demo/v2g-demo/src/app/components/map/map.component.spec.ts[5, 29]: " should be '
ERROR: /home/travis/build/v2g-demo/v2g-demo/src/app/components/map/map.component.spec.ts[6, 41]: " should be '
ERROR: /home/travis/build/v2g-demo/v2g-demo/src/app/components/map/map.component.spec.ts[42, 44]: object access via string literals is disallowed
ERROR: /home/travis/build/v2g-demo/v2g-demo/src/app/components/map/map.component.spec.ts[61, 44]: object access via string literals is disallowed
ERROR: /home/travis/build/v2g-demo/v2g-demo/src/app/components/map/map.component.ts[2, 28]: " should be '
ERROR: /home/travis/build/v2g-demo/v2g-demo/src/app/components/map/map.component.ts[3, 31]: " should be '
ERROR: /home/travis/build/v2g-demo/v2g-demo/src/app/components/welcome/welcome.component.spec.ts[5, 28]: " should be '
ERROR: /home/travis/build/v2g-demo/v2g-demo/src/app/components/welcome/welcome.component.spec.ts[6, 37]: " should be '
ERROR: /home/travis/build/v2g-demo/v2g-demo/src/app/components/welcome/welcome.component.spec.ts[7, 29]: " should be '
ERROR: /home/travis/build/v2g-demo/v2g-demo/src/app/components/welcome/welcome.component.spec.ts[8, 41]: " should be '
ERROR: /home/travis/build/v2g-demo/v2g-demo/src/app/components/welcome/welcome.component.spec.ts[16, 41]: variable 'MockMapboxmapComponent' used before declaration

Move object API - перемещение объекта на карте

нужно сделать API метод для перемещения объекта, Для простоты мы пока не будем делать анимацию передвижения авто, в первой версии машина будет телепортироваться моментально localhost:8080/api/moveVehicle?vehicleID=1&objectID=2 Код должен проверить что перемещаемый объект имеет тип VEHICLE и сменить его координаты в БД на координаты объекта к которому перемещаем

Interactive map - интерактивная карта

На карте должны отображаться статические и динамические объекты с возможностью фильрации по типам.

Перемещение динамических объектов должно отображаться в реальном времени.
Карта должа уметь строить маршруты от точке к точке.
Детализация по объекта должна отображаться в отделном виджете

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.