Giter VIP home page Giter VIP logo

tracktor's Introduction

Hey! Nice to see you.

I'm Alexander, Fullstack developer from Gubkin, Russia, currently living in Moscow.

📈 GitHub Stats

Anurag's GitHub stats Top Langs

🔍 Some info!

  • 🌱 I’m currently learning - Golang

tracktor's People

Contributors

garasev avatar kulikov17 avatar pespsa avatar shlyapos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

pespsa kulikov17

tracktor's Issues

Описать модель Track и TrackCheckPoint

В папке Database создать модель базы данных Track и TrackCheckPoint и составить конфигурацию в соответствии с приведенной ER-диаграммой
image

Подготовить ER модель базы данных

Описать такие сущности, как:

  1. Пользователь
    Поля:
  • id
  • логин
  • хеш
  • соль
  1. Трек
    Поля:
  • id
  • id автора
  • название
  • тип транспорта
  • регион/город
  1. Чекпоинт трека
    Поля:
  • id
  • id трека
  • широта
  • долгота
  1. Результат
    Поля:
  • id
  • id пользователя
  • id трека
  • рекордное время

Залить исходник и .png файл в папку /docs/images проекта

Создать репозиторий для работы с сущностями Track и TrackCheckPoint

Создать репозиторий для работы с сущностями Track и TrackCheckPoint.
Методы с припиской Async должны быть асинхронными.
В репозитории трека реализовать такие методы как:

  • GetAllTrackAsync (Получение списка всех треков)
  • GetTrackAsync (Получение трека по его id)
  • CreateTrackAsync (Создание трека, а также внесение его чекпоинтов в таблицу TrackCheckpoint, в качестве входных параметров модель трека и список моделей чекпонитов)
  • UpdateTrackAsync (обновление информации о треке, входные параметры: id обновляемого трека и модель трека с обновленной информацией)
  • DeleteTrackAsync (удаление трека по id)

В репозитории чекпоинта трека реализовать такой метод как:

  • GetPointsByTrackIdAsync (получение списка точек трека по id трека)

Настроить Angular проект

Настроить проект, добавить конфиги.

Как только будет готов макет, нужно будет перенести глобальные стили цветов и шрифтов

Создание макета в Figma

Необходимо создать макет для мобильного и веб клиентов в фигме

  • Проработать UX
  • Глобальные стили цветов
  • Глобальные стили шрифтов
  • Компоненты (конпки, текст, шрифты, блоки и пр.)
  • Страницы мобильного клиента
  • Страницы веб клиента

Создать репозитории для работы с сущностями Result и User

Создать репозиторий для работы с сущностями Result и User.
Методы с припиской Async должны быть асинхронными.
В репозитории результата реализовать такие методы как:

  • FindTopResultAsync (Получение сортированного по полю RecordTime списка результатов по переданному TrackId)
  • FindMyResultAsync (Получение результата прохождения трека пользователя, входные параметры: trackId, userId)
  • AddResultAsync (Создание результата прохождения трека, предусмотреть обнолвение поля AverageTime в таблице Track после внесения нового результата)

В репозитории пользователя реализовать такие методы как:

  • AddUserAsync (Создание пользователя)
  • GetUsersAsync (Получение списка всех пользователей)
  • Login (поиск пользователя с необходимым логином и паролем, отвечает за аутентификацию пользователя)

Настроить навигацию

Необходимо настроить навигацию между основными страницами. На страницах TrackInfo и TrackRun не должно быть компонента BottomNavigation.
Реализовать переход назад по нажатию на кнопку в компоненте TopMenu

Создать контроллеры для работы с сущностями Result и User

Создать контроллеры для работы с сущностями Result и User.
В контроллере результата реализовать следующие запросы:

  • AddResult (добавление результата, POST запрос по адресу result/)
  • GetTopResults (получение сортированного списка результатов, GET запрос по адресу result/{trackId:guid})
  • GetMyResults (получение результата пользователя по треку, GET запрос по адресу result/{trackId:guid}/{userId:guid})

В контроллере пользователя реализовать следующие запросы:

  • AddUser (добавление пользователя, POST запрос по адресу user/)
  • GetUsers (получение списка пользователей, GET запрос по адресу user)
  • Login (аутентификация пользователя по логину и паролю с использованием JWT-авторизации, GET запрос по адресу user/login)

Создание компонента TrackInfo

В левом меню реализовать переход на компонент TrackInfo, по нажатию на элемент списка. Сверстать по макету:

  • Название (оформить в виде text-field/input для возможности редактирования)
  • Регион
  • Тип транспорта
  • Расстояние
  • Среднее время
  • Ваше время
  • Таблица лидеров

Настроить решения для проекта

Описать в backend части проекта такие библиотеки классов как:

  • Adaptor (содержит классы для работы с бизнес логикой (репозитории, модели бизнес логики и т.д.))
  • Database (содержит модель базы данных, ее сущности и описывает связи между таблицами)
  • Tests (Модуль тестирования)
  • Webservice (содержит модели для работы с внешними сервисами (DTO) и контроллеры)

Описать модель Result и User

В папке Database создать модель базы данных Track и TrackCheckPoint и составить конфигурацию в соответствии с приведенной ER-диаграммой
image

Сервер PostgreSQL

Необходимо настроить PostgreSQL на сервере, а также pgAdmin для просмотра ее на малине.

Оформить страницу TrackInfo

Предусмотреть

  • Вывод карты
  • Вывод маршрута на карте
  • Выдвижное меню снизу поверх карты
  • Информация о треке
  • Информация о результатах пользователя по треку
  • Таблица лидеров

Создание компонента TrackListItem

Добавить следующие элементы:

  • Название трека
  • Вид транспорта
  • Город/Регион
  • ???Расстояние до пользователя???
  • Примерное время прохождения
  • Суммарная длина маршрута

Настроить swagger для проекта

Настроить swagger для проекта. Помимо сваггера необходимо также настроить небольшие фичи (автомиграции, и прочее)

Навести порядок в проекте

  • Настроить алиасы
  • Перевести все компоненты на классы
  • Удалить css стили и добавить для них ts файлы
  • Прибраться в файлах?

Создание страницы авторизации

Создать:

  • Заголовок с названием
  • Блок входа
  • Поле ввода логина для входа
  • Поле ввода пароля для входа
  • Кнопка подтвердить для входа
  • Блок регистрации
  • Поле ввода логина для регистрации
  • Поле ввода пароля для регистрации
  • Кнопка подтвердить для регистрации

Оформить страницу TrackListPage со списком треков

Сверстать TrackListPage, который реализует список из компонентов TrackListItem:

  • Создать общий компонент TopMenu
  • Сверстать список, сделать прокрутку
  • Предусмотреть передачу пропсов в TrackListItem, а в частности onClick
  • Реализовать перехоод на страницу TrackInfo по клику на трек

Создание страниц записи нового трека

Сверстать:

  • Блок со временем и пройденным расстоянием
  • Кнопка паузы
  • Отображения трека на карте
  • Кнопка "Сохранить"
  • Кнопка "Продолжить"
  • Кнопка "Не сохранять"

Добавление методов

Додавить методы для контроллера треков

  1. Метод удаления трека по заданному id
  2. Метод обновления трека, вызывающий соответствующий метод репозитория и принимающий номер трека и сущность обновленного трека

Создание спецификации RESTful API

Необходимо составить спецификацию RESTful API, на основе которой будет происходить взаимодействие сервера с веб и мобильным клиентами.

Создать контроллер для работы с сущностями Track и TrackCheckPoint

Создать контроллеры для работы с сущностями Track и TrackCheckPoint .
В контроллере реализовать следующие запросы:

CreateTrack (добавление трека, POST запрос по адресу track/)
GetTracks (получение списка треков, GET запрос по адресу track/})
GetTrack (получение трека по его id , GET запрос по адресу track{trackId:guid})

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.