Учебный проект на TypeScript
Разработать приложение, используя TypeScript и принципы ООП, которое позволит управлять каталогом книг в библиотеке, добавлять новые книги, редактировать информацию о них, удалять и просматривать списки книг с использованием фильтров.
- Каждый пользователь должен быть представлен отдельным классом со следующими полями, такие как - Имя, email, роль и т.д.
- Должны быть различные роли пользователей, такие как администратор, библиотекарь и пользователь.
- Администратор должен иметь права на управление пользователями (добавление, редактироание и удаление пользователей).
- Библиотекарь должен иметь права на управление каталогом книг (добавление, редактироание и удаление книг).
- Пользователь должен иметь возможность просматривать каталог книг и осуществлять поиск.
- Администратор должен иметь возможность добавлять новых пользователей с указанием основных параметров, таких как Имя, email, роль и т.д.
- Администратор должен иметь возможность редактировать информацию о пользователях, включая изменение параметров.
- Администратор должен иметь возможность удалять пользователей.
- Должна быть возможность отображать полный список пользователей.
- Библиотекарь должен иметь возможность добавлять новые книги в каталог с указанием основных параметров, таких как название, автор, жанр и год издания.
- Библиотекарь должен иметь возможность редактировать информацию о книгах, включая изменение параметров.
- Библиотекарь должен иметь возможность удалять книги из каталога.
- Должна быть возможность отображать полный список книг в каталоге.
- Все пользователи должны иметь возможность осуществлять поиск книг по различным параметрам, таким как название, автор, жанр и год издания.
- Результаты поиска должны отображать список книг, соответствующих критериям поиска.
- Пользователи должны иметь возможность добавлять книги в список "Избранное" для отложенного просмотра.
- Должна быть возможность оставлять отзывы и оценки для прочитанных книг.
- Приложение должно быть разработано с использованием TypeScript и принципов ООП.
- Интерфейс для этого задания не требуется, достаточно написание всех необходимых классов и объектов.
- Данные о книгах, пользователях и других сущностях должны хранится в отдельных JSON файлах.
Приложение должно быть реализовано с использованием принципов SOLID и должно быть расширяемым для возможной добавления новых функциональностей в будущем.
- Анализ требований и составление подробного плана разработки.
- Разработка базовой архитектуры приложения.
- Разработка функциональности пользователей.
- Разработка функциональности управления каталогом книг.
- Разработка функциональности поиска книг.
- Реализация дополнительных функций.
- Тестирование и отладка приложения.
- класс пользователь
- различные роли пользователя - администратор, библиотекарь, пользователь
- выводить полный список пользователей
- админимтратор должен уметь
- добавлять пользователей с указанием основных параметров
- удалять пользователей
- редактировать пользователей и изменять их параметры
- библиотекарь должен управлять каталогом книг
- добавлять книги с указание основных параметров
- удалять книги
- редактировать книги и изменять их параметры
- пользователь должен
- просматривать каталог книг
- осуществлять поиск по каталогу
- * добавлять книги в список "Избранное"
- * выводить список книг из избранного
- * возможность оставлять отзывы и оценки для прочитаных книг
- каталог книг
- все пользователи могут отображать полный список книг в каталоге
- результаты поиска должны отображать список книг соответствующий критериям поиска
Замечания:
- Можно разделить класс пользователя на 3 подкласса
- Номерацию индексов лучше сделать через отдельный индекс
- Максимум 2 if вложенных
- Для индексов лучше казывать не кокретный тип, а : Book["id"] - значение в типе по ключу id
- Каждый класс в отдельном файле - проще поддерживать и меньше конфликтов при изменении