Skip to main content

"Информационна Система на Вестник" 📰✍️

Splash

Цел на Задачата:

Създайте многонишков сървър за информационна система на вестник, обслужващ различни видове потребители като писатели, редактори и администратори, всеки със специфични правомощия и функционалности.

Описание на Системата:

Системата трябва да позволява на потребителите да се логват чрез потребителско име и парола. В зависимост от тяхната роля, те имат достъп до различни функционалности.

Роли и Функционалности:

  1. Абстрактен Клас User:

    • Съдържа основни данни като потребителско име и парола.
    • Метод getUserType, който връща типа на потребителя (писател, редактор, администратор).
  2. Потребителски Класове:

    • Writer: Представлява писателя. Може да създава и изпраща статии за публикуване.
    • Editor: Отговаря за редактиране и одобряване на статии преди публикация.
    • Administrator: Управлява потребителски акаунти и има правомощия за създаване на нови акаунти.
  3. Автентикация и Валидация:

    • Потребителите влизат в системата чрез потребителско име и парола.
    • Използвайте регулярни изрази за валидация на потребителските имена и паролите.
  4. Функционалности на Системата:

    • Писатели: Създават и изпращат статии.
    • Редактори: Редактират, одобряват и публикуват статии.
    • Администратори: Създават и управляват потребителски акаунти.
  5. Многонишкова Обработка и Синхронизация:

    • Системата трябва да поддържа множество клиентски връзки едновременно.
    • Необходима е синхронизация при обработката на общите ресурси, за да се избегнат конфликти.

Технически Изисквания:

  • Мрежово Програмиране: Реализация на сървър и клиентски приложения с Java сокети.
  • Многонишково Програмиране: Създаване на нишки за обслужване на различни клиентски заявки.
  • Синхронизация: Използване на синхронизирани методи или обекти за управление на достъпа до споделени ресурси.

Задачи за Реализация:

  • Разработете абстрактния клас User и наследяващите го класове Writer, Editor и Administrator.
  • Имплементирайте механиз

ми за автентикация и валидация на потребителските данни.

  • Създайте многонишков сървър, който може да обработва заявки от множество клиенти едновременно.
  • Реализирайте специфичните функционалности за всяка потребителска роля.
  • Осигурете необходимата синхронизация при обработка на споделени ресурси.