Skip to content

Latest commit

 

History

History
51 lines (37 loc) · 4.07 KB

README.md

File metadata and controls

51 lines (37 loc) · 4.07 KB

Photolibrary — это веб-приложение для управления альбомами фотографий. Оно построено с использованием Spring Boot и использует PostgreSQL для хранения данных альбомов и фотографий. Приложение позволяет пользователям создавать альбомы, загружать фотографии и просматривать их.

Функции:

Создание альбомов: все пользователи могут создать альбом и "привязать" к нему загруженные пользователем фотографии.

Просмотр альбомов: все пользователи могут просматривать альбомы и их фотографии.

MainController:

  • redirect (GET /) — перенаправляет на страницу всех альбомов.
  • albums (GET /albums) — отображает список всех альбомов.
  • album (GET /albums/{id}) — отображает страницу просмотра конкретного альбома с его фотографиями.
  • createAlbumPage (GET /albums/create) — страница для создания нового альбома.
  • createAlbum (POST /albums/create) — сохраняет новый альбом.
  • deleteAlbum (POST /albums/{id}/delete) — удаляет конкретный альбом (по id).

Модели:

  • Album — модель для альбома, содержит поля для уникального идентификатора, имени альбома и коллекции "входящих" фотографий.
  • Photo — модель для фотографии, содержит поля для уникального идентификатора, имени фотографии, её строкового представления и "принадлежность" к альбому.

Репозитории:

  • AlbumRepo — интерфейс для работы с сущностью альбома.
  • PhotoRepo — интерфейс для работы с сущностью фотографии.

Сервисы:

  • AlbumService — предоставляет функциональность для работы с альбомами через взаимодействие с репозиторием данных AlbumRepo.

    • getAllAlbums() — реализация показа всех альбомов в БД.
    • getAlbumById(Long id) — реализация показа определённого альбома из БД (по id).
    • createAlbum(Album album) — реализация сохранения альбома в БД.
    • deleteAlbum(Long id) — реализация удаления определённого альбома из БД (по id).
  • PhotoService — предоставляет функциональность для работы с фотографиями. Он реализует асинхронное сохранение фотографий в базу данных с использованием репозитория PhotoRepo.

    • save(Photo photo) — реализация сохранения фотографии в БД.

Описание маршрутов:

    /albums

Главная страница с лентой существующих в БД альбомов.

    /albums/{id}

Страница с содержимым альбома (имя и фотографии альбома).

    /albums/create

Страница для создания нового альбома.

    /posts/{postUrl}/delete

Удаление альбома и всех фото, привязанных к нему. (Кнопка удаления находится на странице просмотра альбома.)


Для запуска веб-приложения необходимо создать новую БД postgres — photolibrary.

В psql: CREATE DATABASE photolibrary;