Giter Site home page Giter Site logo

azakharko / barinb Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fafnur/barinb

0.0 1.0 0.0 18.69 MB

Пример Angular приложения с использованием лучших практик с использованием Angular CLI

JavaScript 0.53% TypeScript 89.20% HTML 7.32% SCSS 2.91% Shell 0.01% Dockerfile 0.04%

barinb's Introduction

Barinb

Barinb - пример "тестового" Angular приложения с использованием лучших практик.

Проект представляет собой реализацию одной из частей приложения для бронирования жилья (апартаментов или номера в отеле).

Для пользователя отображается список доступных вариантов на гугл карте. При клике на пин с вариантом, показывается доступная информация по варианту, и при клике на на изображение происходит переход на страницу выбранного варианта.

Интерфейс приложения ориентирован на два вида: мобильная версия и версия для настольного компьютера.

И если в десктопной версии приложения сразу отображаются доступные варианты в виде списка и карта, то в мобильном приложении отображается только один из предложенных вариантов, который можно изменить, кликнув по плавающей кнопке рядом с футером.

Cabinet

Также приложение реализует админ панель для 3 сущностей: Номер (Апартаменты), Отель (Здание) и Собственник (Хозяин).

В данном приложении собственник может иметь несколько зданий, а каждое здание может содержать несколько номеров ( апартаментов).

Интерфейс админ панели также ориентирован на два вида: мобильная версия и версия для настольного компьютера, где в мобильной версии представлен список сущностей, а в десктопной версии отображается таблица.

Admin

Установка

Установка yarn, angular-cli и зависимостей для приложения.

Для того чтобы продолжить, у вас должна быть установлен NodeJS. Подробнее об установке можно посмотреть в офф. документации NodeJS

Установка Yarn

В проекте, в качестве менеджера пакетов используется Yarn. Установите и настройте yarn для своей OS (https://classic.yarnpkg.com/en/docs/install#debian-stable).

После установки проверьте, что yarn global bin указывает на домашний каталог:

yarn global bin
// output: /home/<your-username>/.yarn/bin

Установка Ng

Для установки Angular cli, запустите команду:

yarn global add @angular/cli

Для проверки установки запустить команду:

ng

Подробнее о Angular cli можно посмотреть в офф. документации

Установка зависимостей

После клонирования приложения необходимо установить зависимости с помощью yarn:

yarn install

Для запуска приложения можно использовать команду:

ng serve

Альтернативная установка

Если нет желания разворачивать NodeJS, то можно запустить проект используя Docker.

Чтобы поднять контейнер с приложением и контейнером nginx, который будет разравать статику, запустите команду:

docker-compose up -d

Описание проекта

Весь процесс разработки описан в цикле статей на medium'е.

Тестовое задание на Angular. Введение.

Тестовое задание на Angular. Настройка базового приложения.

Тестовое задание на Angular. Настройка базовых стилей и Angular Material

Тестовое задание на Angular. Настройка локализации

Тестовое задание на Angular. Настройка Unit тестирования с помощью Jest

Тестовое задание на Angular. Создание основного лейаута

Тестовое задание на Angular. Добавление библиотек для упрощения тестирования

Тестовое задание на Angular. Создание модулей и компонентов

Тестовое задание на Angular. Создание базовых интерфейсов.

Тестовое задание на Angular. Создание и управление localStorage’ем

Тестовое задание на Angular. Установка redux и создание root store.

Тестовое задание на Angular. Создание логгера.

Тестовое задание на Angular. Использование localStorage.

Тестовое задание на Angular. Использование Ngrx State.

Тестовое задание на Angular. Работа с данными из State.

Тестовое задание на Angular. Создание lazy страницы.

Тестовое задание на Angular. Добавление google maps.

Тестовое задание на Angular. Создание State для бронирования варианта.

Тестовое задание на Angular. Создание UI kit для приложения.

Тестовое задание на Angular. Создание страницы бронирования.

Тестовое задание на Angular. Создание страницы апартаментов.

Тестовое задание на Angular. Работа с формами.

Тестовое задание на Angular. Навигация в приложении.

Тестовое задание на Angular. Создание admin лейаута.

Тестовое задание на Angular. Создание страницы в админ панели.

Тестовое задание на Angular. Тестирование сервисов.

Тестовое задание на Angular. Тестирование компонентов.

Тестовое задание на Angular. Заключение.

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

Первые четыре статьи (Настройка базового приложения, Настройка базовых стилей и Angular Material, Настройка локализации, Настройка Unit тестирования с помощью Jest) посвящены настройке базового окружения и настройки приложения для комфортной работы.

Статьи с 5 по 8 (Создание основного лейаута, Добавление библиотек для упрощения тестирования, Создание модулей и компонентов, Создание базовых интерфейсов) вводят читателя в основы разработки приложения на Angular. Создается базовый лейаут и закладывается структура приложения.

Статья 9 (Создание и управление localStorage’ем) знакомит читателя с созданием сервисов в Angular и объясняет основные нюансы.

Статья 10 (Установка redux и создание root store) приводит пример подключения Redux в Angular, а статья 13 и 14 (Использование Ngrx State, Работа с данными из State) показывает как его использовать.

Статья 16 (Добавление google maps) показывает как использовать “внешнее” API при работе с Angular.

Статьи с 17 по 20 (Создание State для бронирования варианта, Создание UI kit для приложения, Создание страницы бронирования, Создание страницы апартаментов) показывают на практике создание сложных компонентов, где много верстки и сервисов для реализации бизнес логики.

Статья 21 (Работа с формами) знакомит читателя с формами в Angular, где приводится пример реализации формы с использованием Angular Forms.

Статья 22 (Навигация в приложении) рассматривает концепт унификации навигации в Angular.

Статьи 23 и 24 (Создание admin лейаута, Создание страницы в админ панели) посвящены созданию админ панели и управлению сущностями.

Последние две статьи 25 и 26 (Тестирование сервисов, Тестирование компонентов) посвящены тестированию в Angular, где рассматриваются базовые механики тестирования.

В заключении будет краткий обзор проделанной работы.

barinb's People

Contributors

fafnur avatar

Watchers

 avatar

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.