5. Керівництво з використання програми
Для того, щоб повноцінно користуватися всіма функціями системи «EFOD», необхідно пройти реєстрацію. Для цього необхідно виконати наступні дії:
а) перейти за посиланням «реєстрація» (див. рис.5.1);
б) заповнити поля, які запропонує система (див. рис.5.2);
в) після заповнення полів натиснути кнопку «Регистрация».
У разі успішної реєстрації, користувач переходить на головну сторінку. Для того, щоб почати користуватися системою, йому необхідно авторизуватися. Для цього необхідно набрати свій пароль і логін і натиснути кнопку «Login».
Після цього користувач перейде на стартову сторінку, і справа вгорі на екрані відобразиться його привітання (див. рис.5.3)
Для того, щоб загрузити документ, необхідно:
а) вибрати в меню «upload document», і перейти на сторінку, як показано на рис. 5.4;
б) за допомогою кнопки «Выбрать…» вибрати(або написати вручну) шлях до файлу;
в) натиснути кнопку «upload file» і дочекатися переходу на головну сторінку, все файл завантажено.
Для завантаження сторінки довідки необхідно натиснути на посилання «FAQ»
Для редагування прав користувачів необхідно:
а) натиснути посилання «My documents»;
б) вибрати файл та натиснути на кнопку «add new user to correct» (див. рис. 5.5);
в) поставити галочки навпроти тих, хто повинен надалі мати право на доступ до файлу(див. рис. 5.5);
г) натиснути кнопку «Confirm».
Для того, щоб видалити файл, необхідно:
а) натиснути посилання «My documents»;
б) вибрати файл та натиснути на кнопку «delete document»(див. рис. 5.5);
в) погодитися на видалення документу.
У випадку, коли користувач являється ще й адміністратором, він може переглянути розгорнутий список всіх користувачів системи. Для цього необхідно натиснути на посиланні «Users list». Після цього з’явиться сторінка зі списком сих користувачів системи. Причому на даній сторінці можна редагувати ролу користувачів, а також видаляти акаунти користувачів.
Висновки
В результаті виконання дипломного проекту була розроблена система електронного документообігу, що дозволяє скоротити час на обробку даних на паперових носіях, та автоматизувати процес документообігу. Дана система дозволяє отримати швидкий доступ до інформації, а також захистити її від несанкціонованого доступу.
На стадії проектування системи був проведений аналіз систем такого класу. Оцінивши всі достоїнства і недоліки вже запропонованих систем, стало можливим зрозуміти, якою саме має бути система, щоб вона задовольняла основному завданню – максимально пришвидшити процес документообігу та захистити данні від втрати та несанкціонованого доступу. Крім того, було сформульовано ряд вимог, які повинна задовольняти система. З огляду на динамічність системи, були побудовані вимоги до платформи і методам розробки системи.
У процесі розробки система була протестована на різних платформах і в різних умовах навантаження. Система показала себе добре, а помилки, які були допущені в процесі розробки були усунені, а також внести додаткові елементи захисту інформації.
В результаті розробки отримана система, яка може працювати в реальних умовах з сильним навантаженням, і при цьому залишатися стабільною. В майбутньому планується розширення даної системи, що дозволить збільшити коло її користувачів. Окрім того, планується покращити підсистему зберігання інформації та застосувати більш надійні алгоритми шифрування даних.
Перелік посилань
1. web-сайт посвященный програмуванню [Електронний ресурс] – Режим доступа : www/URL: http://tools.ietf.org/html/rfc3174 - 10.12.2003 г. - Загл. з екрану.
2. web-сайт, присвячений програмуванню [Електронний ресурс] – Режим доступа: www/ URL: http://www.glossary.ru – 30.05.2009г. - Загл. з екрану.
3. Бондарев, В.М. Учебное пособие по программированию на Java [Текст] / Бондарев В.М.. – Х.: Диалектика, 2003. – 296 с.
4. Хансен Г.Д. Базы данных: разработка и управление [Текст] / Хансен Г.Д., Хансен Д.А. – М.: БИНОМ, 1999. – 704 с.
5. M. Brandis The Oberon System Family [Текст] / M. Brandis R. Crelier M. Franz J. Templ – Software Practice and Experience, 1995, p. 1331-1366.
6. Planning the content of instruction / Brecht B.J., McCalla G.I., Greer J.E. 1989, p. 32-41.
7. Methods and techniques of adaptive hypermedia. / Brusilovsky P., 1996, p. 87-129.
8. Brusilovsky P., Eklund J., Schwarz E., 1997, p. 278-285.
9. Knowledge tracing in the ACT programming tutor. / Corbett A.T., Anderson J.A., 1992.
Додаток А
Програмний код класу взаємодії з БД сутності «користувач»(User)
package diploma.hibernateDAO;
import java.util.ArrayList;
import java.util.List;
import diploma.dao.DAO;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.annotations.Cascade;
import diploma.Role;
public abstract class HibernateDAO<T> implements DAO<T> {
private static final Log log = LogFactory.getLog(HibernateDAO.class);
public boolean create(T newInstance) {
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
try {
session.save(newInstance);
tx.commit();
return true;
} catch (Exception e) {
System.out.println(e);
log.error(e);
tx.rollback();
return false;
} finally {
HibernateUtils.closeSession(session);
}}
public boolean delete(T inctance) {
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
try {
session.delete(inctance);
tx.commit();
return true;
} catch (Exception e) {
System.out.println(e);
log.error(e, e);
tx.rollback();
return false;
} finally {
HibernateUtils.closeSession(session);
}}
@SuppressWarnings("unchecked")
public List<T> getAll() {
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
try {
Class clazz = (Class) ((java.lang.reflect.ParameterizedType) getClass()
.getGenericSuperclass()).getActualTypeArguments()[0];
List list = session.createCriteria(clazz).list();
return list;
} catch (Exception e) {
log.error(e, e);
return new ArrayList<T>();
} finally {
HibernateUtils.closeSession(session);
}}
public boolean update(T newInstance) {
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
try {
session.update(newInstance);
tx.commit();
} catch (Exception e) {
log.error(e, e);
tx.rollback();
return false;
} finally {
HibernateUtils.closeSession(session);
}
return true;
}}
Додаток Б
Програмний код основного CRUD менеджеру
package diploma.hibernateDAO;
import java.util.ArrayList;
import java.util.List;
import diploma.dao.DAO;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.annotations.Cascade;
import diploma.Role;
public abstract class HibernateDAO<T> implements DAO<T> {
private static final Log log = LogFactory.getLog(HibernateDAO.class);
public boolean create(T newInstance) {
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
try {
session.save(newInstance);
tx.commit();
return true;
} catch (Exception e) {
System.out.println(e);
log.error(e);
tx.rollback();
return false;
} finally {
HibernateUtils.closeSession(session);
}
}
public boolean delete(T inctance) {
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
try {
session.delete(inctance);
tx.commit();
return true;
} catch (Exception e) {
System.out.println(e);
log.error(e, e);
tx.rollback();
return false;
} finally {
HibernateUtils.closeSession(session);
}
}
@SuppressWarnings("unchecked")
public List<T> getAll() {
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
try {
Class clazz = (Class) ((java.lang.reflect.ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
List list = session.createCriteria(clazz).list();
return list;
} catch (Exception e) {
log.error(e, e);
return new ArrayList<T>();
} finally {
HibernateUtils.closeSession(session);
}
}
public boolean update(T newInstance) {
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
try {
session.update(newInstance);
tx.commit();
} catch (Exception e) {
log.error(e, e);
tx.rollback();
return false;
} finally {
HibernateUtils.closeSession(session);
}
return true;
}
}