Git Product home page Git Product logo

knigopis2's Introduction

Knigopis2

CircleCI

Angular 2 клиент для api.knigopis.com.

Есть такой сайт www.knigopis.com — дневник читателя и сервис учёта прочитанных книг. Его создатель - мой друг Роман. Клиентская часть сайта Книгописи написана на первом Ангуляре, а в данном проекте я пытаюсь написать клиентскую часть на Ангуляре 2 и параллельно изучаю его. Для работы с книгами использую прокси и api.knigopis.com.

Как попробовать?

Посмотреть рабочую версию этого репозитория можно тут: alpha.knigopis.com.

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

  1. Установить Angular cli (будет запускаться локальный сервер с прокси);
  2. Клонировать репозиторий: git clone https://github.com/gurov/knigopis2;
  3. Зайти в полученный резозиторий cd knigopis2;
  4. Установить зависимости npm i
  5. Запустить проект npm run start

Разработка шаг за шагом

Ссылки на видео разработки доступны по клику для каждой части.

Часть 1

  1. О сайте книгописи
  2. Костяк проекта на Angular 2
  3. Настройка прокси

Книгопись и Angular 2, часть 1

Часть 2

  1. Создаем bookService для обращения к api
  2. RxJs и Observable объекты
  3. Модели Book, User, интерфейс List
  4. Вывод списка

Книгопись и Angular 2, часть 2

Часть 3

  1. Обработка ошибок для bookService
  2. Расширяем настройки прокси
  3. Добавляем UserService
  4. Выносим обработку запросов к http сервису в отдельный файл

Книгопись и Angular 2, часть 3

Часть 4

  1. Подключаем Bootstrap 4
  2. Создаем HomeComponent
  3. Добавляем главное меню

Книгопись и Angular 2, часть 4

Часть 5

  1. Создаем UserBookListComponent
  2. Добавляем getUserBooks функцию в UserService для получения списка книг
  3. Расширяем модель Book
  4. Прописываем роутинг на страницу пользователя

Книгопись и Angular 2, часть 5

Часть 6

  1. Добавляем отписку от роута в UserBookListComponent
  2. Создаем BookComponent
  3. Добавляем getUserInfo в UserService
  4. Форматируем UserBookListComponent
  5. Форматируем HomeComponent

Книгопись и Angular 2, часть 6

Часть 7

  1. Добавляем оглавление (Bootstrap 4: list groups)
  2. Адаптируем под широкие экраны и мобильные телефоны (Bootstrap 4: .push-md-* and .pull-md-*)
  3. Добавляем сортировку по годам (Angular 2 Pipe: yearSort)

Книгопись и Angular 2, часть 7

Часть 8

  1. Добавляем поиск по книгам (BookSearchPipe)
  2. Добавляем анимацию загрузки книг (CSS3 лоадер)
  3. Выводим ошибку загрузки книг PS) Извините, немного замешкался во второй половине видео

Книгопись и Angular 2, часть 8

Часть 9.1

  1. Добавляем виджет авторизации (uLogin)
  2. Добавляем initAuth функцию в window (RxJs Subject, AuthService)
  3. Получаем access-token (UserService, getCredentials, httpPost)

Книгопись и Angular 2, часть 9.1

Часть 9.2

  1. Изменяем модели (Credentials, User)
  2. Добавляем заголовок авторизации к запросам (ApiSerivice)
  3. Записываем токен в localStorage (AuthService)
  4. Запоминаем авторизованного пользователя (AuthService)
  5. Прячем uLogin меню и показываем юзера (AppComponent)

Книгопись и Angular 2, часть 9.2

Часть 10

  1. Добавляем в верхнее меню ссылки на свой список книг и на страницу добавления книги (AppComponent)
  2. Добавляем компоненту редактирования книги (BookEditComponent)
  3. Добавляем ссылку с книги на страницу редактирования (BookComponent)
  4. Добавляем метод put в ApiService
  5. Добавляем методы get и update в BookService

Книгопись и Angular 2, часть 10

Часть 11

  1. Добавляем метод delete в ApiService
  2. Создаем общую функцию getRequestOptionsArgs для методов ApiService
  3. Добавляем метод remove а BookSerice и изменяем update
  4. Добавляем методы saveAndClose, saveAndAdd, remove в BookEditComponent

Книгопись и Angular 2, часть 11

knigopis2's People

Contributors

angular-cli avatar gurov avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

barolina

knigopis2's Issues

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.