DyerQ / Java-SE-Practice-Artifacts

0 stars 0 forks source link

Java SE проект #1

Open DyerQ opened 8 years ago

DyerQ commented 8 years ago

Обзор

Пишем программку, которая будет массово отправлять почту. Ключевыми возможностями будут хранение списка рассылки в xml и поддержка шаблонов для писем.

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

Папка итогового приложения будет выглядеть следующим образом (директории помечены жирным):

Папка bin хранит в себе собранные jar'ники вашего кода и все используемые библиотеки. Это версия, которая будет в релизе, а во время разработки мы будем писать код в папку src и использовать pom.xml (настроечный файл Maven).

Папка config будет содержать файлы .properties, задающие настройки приложения:

Папки входных данных business_cards и mail_tempates устроены следующим образом:

recipients.xml - хранит данные обо всех загруженных пользователей.

Далее идут скрипты запуска, останова приложения и файл, в который будет складываться вывод. По плану приложение не должно быть привязано к какому-либо окну операционной системы.

Сроки

На всё про всё у нас должно уйти 2 недели. Первую неделю мы будем заниматься реализацией, а на 2-й неделе будем решать возникающие вопросы и заниматься интеграцией ваших API.

Технические данные

Ориентируйтесь на то, чтобы писать в Java 7+, корневой пакет для всех классов ru.ncedu.bestgroup.mailing, применяемые классы и подпакеты будут опрелелены в других ишах.

DyerQ commented 8 years ago

Основные классы

public abstract class BusinessCard {
    private String mail;
    private Map<String, String> properties = new HashMap<>();

    public String getMail() {
        return mail;
    }

    public String getProperty(String key) {
        return properties.get(key);
    }
}
public abstract class Mail {
    private String to;
    private String body;

    public String getTo() {
        return to;
    }

    public String getBody() {
        return body;
    }
}
public abstract class MailTemplate {
    private String body;

    public String getBody() {
        return body;
    }

    public abstract Mail getMail(BusinessCard card, Properties defaultProperties);
}
DyerQ commented 8 years ago

Формат адресной книги

<?xml version = "1.0"?>
<business-cards>
    <business-card>
        <mail>vasiliy.urosov@phystech.edu</mail>
        <properties>
            <property>
                <name>full-name</name>
                <value>Василий Уросов</value>
            </property>
            <property>
                <name>university</name>
                <value>МФТИ (ГУ)</value>
            </property>
        </properties>
    </business-card>
    <business-card>
        ...
    </business-card>
</business-cards>