Git Product home page Git Product logo

mathshub_typescript_project's Introduction

Название проекта: Система управления библиотекой

Учебный проект на TypeScript

Задание:

Цель проекта:

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

Требования к функциональности:

Функциональность пользователей:

  1. Каждый пользователь должен быть представлен отдельным классом со следующими полями, такие как - Имя, email, роль и т.д.
  2. Должны быть различные роли пользователей, такие как администратор, библиотекарь и пользователь.
  3. Администратор должен иметь права на управление пользователями (добавление, редактироание и удаление пользователей).
  4. Библиотекарь должен иметь права на управление каталогом книг (добавление, редактироание и удаление книг).
  5. Пользователь должен иметь возможность просматривать каталог книг и осуществлять поиск.

Управление пользователями:

  1. Администратор должен иметь возможность добавлять новых пользователей с указанием основных параметров, таких как Имя, email, роль и т.д.
  2. Администратор должен иметь возможность редактировать информацию о пользователях, включая изменение параметров.
  3. Администратор должен иметь возможность удалять пользователей.
  4. Должна быть возможность отображать полный список пользователей.

Управление каталогом книг:

  1. Библиотекарь должен иметь возможность добавлять новые книги в каталог с указанием основных параметров, таких как название, автор, жанр и год издания.
  2. Библиотекарь должен иметь возможность редактировать информацию о книгах, включая изменение параметров.
  3. Библиотекарь должен иметь возможность удалять книги из каталога.
  4. Должна быть возможность отображать полный список книг в каталоге.

Поиск книг:

  1. Все пользователи должны иметь возможность осуществлять поиск книг по различным параметрам, таким как название, автор, жанр и год издания.
  2. Результаты поиска должны отображать список книг, соответствующих критериям поиска.

*Дополнительные функции:

  1. Пользователи должны иметь возможность добавлять книги в список "Избранное" для отложенного просмотра.
  2. Должна быть возможность оставлять отзывы и оценки для прочитанных книг.

Технические требования:

  • Приложение должно быть разработано с использованием TypeScript и принципов ООП.
  • Интерфейс для этого задания не требуется, достаточно написание всех необходимых классов и объектов.
  • Данные о книгах, пользователях и других сущностях должны хранится в отдельных JSON файлах.

Дополнительные требования:

Приложение должно быть реализовано с использованием принципов SOLID и должно быть расширяемым для возможной добавления новых функциональностей в будущем.

План проекта:

  1. Анализ требований и составление подробного плана разработки.
  2. Разработка базовой архитектуры приложения.
  3. Разработка функциональности пользователей.
  4. Разработка функциональности управления каталогом книг.
  5. Разработка функциональности поиска книг.
  6. Реализация дополнительных функций.
  7. Тестирование и отладка приложения.

Функионал

  • класс пользователь
  • различные роли пользователя - администратор, библиотекарь, пользователь
  • выводить полный список пользователей
  • админимтратор должен уметь
    • добавлять пользователей с указанием основных параметров
    • удалять пользователей
    • редактировать пользователей и изменять их параметры
  • библиотекарь должен управлять каталогом книг
    • добавлять книги с указание основных параметров
    • удалять книги
    • редактировать книги и изменять их параметры
  • пользователь должен
    • просматривать каталог книг
    • осуществлять поиск по каталогу
    • * добавлять книги в список "Избранное"
    • * выводить список книг из избранного
    • * возможность оставлять отзывы и оценки для прочитаных книг
  • каталог книг
    • все пользователи могут отображать полный список книг в каталоге
    • результаты поиска должны отображать список книг соответствующий критериям поиска

Замечания:

  1. Можно разделить класс пользователя на 3 подкласса
  2. Номерацию индексов лучше сделать через отдельный индекс
  3. Максимум 2 if вложенных
  4. Для индексов лучше казывать не кокретный тип, а : Book["id"] - значение в типе по ключу id
  5. Каждый класс в отдельном файле - проще поддерживать и меньше конфликтов при изменении

mathshub_typescript_project's People

Contributors

cucumberian 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.