char16t / address-book

Address book (Java, Spring, PostgreSQL)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Что это?

Адресная книга. Можно зайти и посмотреть свои контакты, поискать по ним, отредактировать, можно присвоить тэги "Друзья", "Семья" и т.д. для каждого контакта, можно так же оставлять заметки. Можно импортировать контакты из разных источников. Например, можно экспортировать контакты из mail.ru и перетащить их легко в наш сервис, перетащить так же легко контакты из вконтакте и нужные контакты по нашей задумке автоматически объединятся, то есть есть часть информации о человеке вконтакте, а часть в почте. При импорте всё это будет учтено и данные вставятся в нужный контакт.

Развертывание локальной среды разработки с Vagrant

  1. Установить Vagrant
  2. Получить содержимое этого репозитория git clone https://bitbucket.org/char16t/address-book.git
  3. Перейти в директорию репозитория cd address-book
  4. Поднять виртуальную машину vagrant up, всё необходимое установится на виртуальную машину в процессе первого запуска
  5. Открыть в браузере http://localhost:8080
  6. После завершения работы выключить вирутальную машину vagrant halt

Сборка и деплой бэкэнда

1 способ:

  1. Выполнить vagrant provision --provision-with shell
  2. Открыть в браузере http://localhost:8080 и проверить изменения

2 способ:

  1. Зайти внутрь виртуальной машины vagrant ssh
  2. Перейти в /vagrant/backend (cd /vagrant/backend)
  3. Выполнить mvn clean package
  4. Скопировать собранный EAR-файл в папку Wildfly для горячего деплоя (sudo cp ear/target/addressbook-ear-1.0.ear /opt/wildfly/standalone/deployments)
  5. Открыть в браузере http://localhost:8080 и проверить изменения

Структура проекта

Директория Описание
cm (configuration managment) содержит файлы с конфигурацией и настройками среды работы приложения
docs содержит документацию проекта
database содержит SQL-скрипты схемы базы данных и тестовые данные
database/schema.sql содержит схему базы данных
database/initdata.sql содержит информацию, которой наполняем схему сразу после её создания
database/demodata.sql содержит демонстрационные данные
frontend содержит файлы клиентской части приложения
backend содержит серверную часть приложения
backend/core здесь в основном лежат entity-бины + "репозитории"
backend/managers здесь обертки над API для разных сторонних систем (типа LDAP, NAT, RADIUS и т.д.) и разного рода API социальных сетей и интернет-сервисов.
backend/managers-impl в папке выше лежат интерфейсы, здесь имплементация
backend/services здесь stateless бины для работы с базой и тому подобное
backend/web здесь классы, которые отвечают за rest-сервисы

Открытые порты

После запуска виртуальной машины и до её выключения становятся доступны некоторые сервисы через перечисленные порты. Нужно убедиться, что до старта виртуальной машины эти порты свободны.

  • 8080 веб-интерфейс приложения через Nginx
  • 8081 обращение к API напрямую через Wildfly
  • 5433 порт Postgresql
  • 5006 порт для удаленной Java-отладки
  • 9990 порт для администрирования Wildfly

Доступ

Доступные адреса:

  • http://localhost:8080 -- Веб-интерфейс приложения
  • http://localhost:9990 -- Панель администрирования Wildfly
  • http://localhost:8081 -- Прямой доступ к Wildfly. По http://localhost:8080 доступ происходит через Nginx. А запросы на адреса вида /addressbook/rest/*перенаправляются к Wildfly. В случае возникновения неполадок можно попробовать поработать c API напрямую с Wildfly

Доступ к базе данных:

  • Хост localhost
  • Порт 5433
  • Пользователь addressbook
  • Пароль passwd
  • База данных addressbook

Доступ к администрированию Wildfly:

  • Логин: admin
  • Пароль: passwd

Прямые запросы к базе данных в консоли PostgreSQL

Чтобы начать писать прямые запросы к базе данных, можно воспользоваться консолью PostgreSQL. Для этого нужно

  1. Зайти внутрь виртуальной машины: vagrant ssh
  2. Зайти в консоль PostgreSQL sudo -u postgres psql -d addressbook

Чтобы посмотреть все таблицы в базе данных, нужно ввести \d, чтобы посмотреть поля таблицы \d <имятаблицы>, чтобы выйти -- нужно ввести \q.

About

Address book (Java, Spring, PostgreSQL)


Languages

Language:HTML 88.5%Language:Java 10.6%Language:Python 0.8%Language:Shell 0.1%