Отчет по курсу «Технологии программирования»
Проектная документация
к задаче «Файловый Менеджер»
Состав команды:
Ершов Никита
Хидиров Виктор
3 курс 1 группа.
Воронеж 2010
СОДЕРЖАНИЕ.
СОДЕРЖАНИЕ. 2
Введение. 3
Постановка задачи. 4
Анализ требований. 5
Аналоги. 5
Use Case (Варианты использования). 8
Архитектура ПО. 9
Структурная схема приложения. 9
Схема БД. 10
Схема Интерфейсов. 11
Требования к программному обеспечению: 13
Средства разработки: 13
Календарный план. 15
План Тестирования. 15
Введение.
В нашем мире мы все чаще и чаще сталкиваемся с актуальной для всех проблемой – переносом и передачей информации. Не важно, какими средствами: диски, флеш-накопители, посредством интернета. И каждый из этих способов имеет как свои плюсы, так и минусы.
Физический перенос данных хорош тем, что объемы полезной информации, которые можно там разместить, колоссальны, это, и документации, и мультимедиа информация и различные развлекательные приложения.
Но мы чаще всего сталкиваемся с тем, что в самый необходимый момент этих самых средств может просто не оказаться под рукой. Поэтому передача информации посредством интернета сейчас наиболее актуальна. Объемы передаваемых данных по интернету ничуть не уступают своим физическим аналогам. Современные интернет провайдеры предлагают массу услуг, а скорость передачи позволяет в режиме реального времени передавать и принимать информацию и быть в курсе всех событий.
Тенденция развития такова, что объемы передач посредством интернет соединений будет все увеличиваться и увеличиваться, не теряя при этом свою эффективность. Поэтому и возникает вопрос о хранении информации непосредственно в глобальной сети. Почтовые ящики и социальные сети не могут удовлетворить вдоволь все возрастающие потребности людей, а файловые обменники зачастую наповал забиты рекламой, подвержены вирусными атаками.
Файловый менеджер было принято решение оформлять в виде сайта, а не в виде установочного приложения, обращающегося во всемирную глобальную сеть. Мобильность и доступность является ключевым аспектом разработки подобного проекта.
Постановка задачи.
«Файловый Менеджер» состоит из двух сущностей – это администрирование и файловое хранилище.
В функции администрирования будет входить:
- вход/выход
- создание /удаление пользователей
- распределение ролей (гость, зарегистрированный пользователь, администратор)
- работа с БД (хранение списка пользователей и их паролей, шифрование пароля)
В функции файлового хранилища будет включено:
- сканирование сервера
- скачка на сервер/ с сервера файлов
- просмотр/ редактирование/ удаление файлов
- просмотр/ редактирование/ удаление папок
- создание отдельной директории для каждого пользователя
Дополнительные требования к проекту:
- многоязычность сайта
Анализ требований.
Аналоги.
Перед созданием своего проекта необходимо было найти аналоги файлового менеджера.
1. Проект Relay-Ajax
AjaXplorer представляет собой файловый менеджер, который незаменим для удаленного управления файлами на веб-сервере.
Он подходит для различных целей, например, для управления файлами, фотогалереи, просмотра кода и т. д. База данных не нужна.
Возможности:
- переименовать / копировать / переместить / удалить / скачать файлы или папки
-загружать несколько файлов одновременно и отслеживать состояние на прогресс баре (Flash требуется)
- создавать папки и файлы
- изменять текстовые файлы и скрипты (JS, PHP, HTML, Java, SQL, Perl),
- просмотр фотографий, просмотр изображений
Недостатки:
- доступна только коммерческая версия
- отсутствие поддержки русского языка
2. Проект Relay - Ajax directory manager.
Relay является бесплатным файловым менеджером для веб, он позволяет просмотр эскизов файлов, включая PDF, также позволяет загружать и изменять файлы и папки с помощью браузера.
Возможности:
- позволяет легко перемещать файлы и папки обычным перетаскиванием.
- предварительный просмотр эскизов, включая PDF.
- многопользовательский интерфейс.
Недостатки:
- отсутствие поддержки русского языка
- не эргономичный интерфейс
- низкая функциональность
3. Проект DropBox
Dropbox — облачное хранилище данных, принадлежащее компании Dropbox Inc., позволяющее пользователям хранить свои данные на серверах в облаке и разделять их с другими пользователями в Интернете. Работа построена на синхронизации данных.
Dropbox позволяет пользователю размещать файлы на удалённых серверах при помощи клиента или с использованием веб-интерфейса через браузер. Хоть главный акцент технологии делается на синхронизации и обмене информацией, Dropbox ведёт историю загрузок, чтобы после удаления файлов с сервера была возможность восстановить данные. Также ведётся история изменения файлов, которая доступна на период последних 30 дней, кроме этого доступна функция бессрочной истории изменения файлов «Pack-Rat».
Возможности:
История изменения файлов ведётся по принципу дельта-кодирования, чтобы сэкономить место, занимаемое файлами. В истории изменения записывается только отличие одной версии файла от другой. Файлы, загруженные через клиент, не имеют ограничения на размер, но файлы загруженные через веб-интерфейс ограничены 300 МБ. Есть также возможность выкладывать файлы для общего доступа через папку «Public», что позволяет использовать сервис в качестве файлообменника.
Недостатки:
- отсутствие русскоязычного интерфейса
- отсутствие возможности редактировать файлы непосредственно на сервере
- необходимость хранить все данные для синхронизации в одной папке
Сравнение с аналогами.
|
Аналог |
Регистрация |
Многоязыч-ность |
Простота использования |
Бесплатность |
Многофункциональность |
|
Relay-Ajax |
+ |
- |
+ |
- |
+ |
|
Relay - Ajax directory manager |
- |
- |
- |
+ |
- |
|
Dropbox |
+ |
+ |
+ |
+/- |
+ |
|
Online-file - manager |
+ |
+ |
+ |
+ |
- |
Use Case (Варианты использования).

Архитектура ПО.
Структурная схема приложения.
Браузер – та программа, с помощью которой пользователь может осуществлять работу с системой.
Model - необходимы для того чтобы проследить четкую структуру приложения. Модели составляются заранее перед проектированием, чтобы писать программные код точно по модели.
Business Logic - это непосредственно программный код, который будет распределять полученные данные и обрабатывать и передавать их в нужной форме.
View - после выполненной программы необходимо отобразить для пользователя результаты работы. Эта часть приложения как раз определяет как что и как мы будет отображать пользователю.
Controller - на стороне клиента мы получаем пользовательский интерфейс, в котором отобразится необходимая информация.
СУБД - База данных, которая будет хранить всю информацию о данных нашего проекта.

Схема БД.

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

Далее появляется окно, в котором будет предложено войти в свой аккаунт на сайте. 
Если же вы не зарегистрированы для вас будет предложены тестовые входные данные.

При успешном входе в систему для пользователя станет доступно следующая страница.

Почти вся функциональность проекта осуществляется при использовании этой страницы. Страница разделена на 2 окна. В первом окне(левое) отображена личная папка пользователя (со всеми папками и файлами в ней).
В правом окне в самом верху отображена текущая директория, с которой осуществляется работа. Все действия (загрузка файла, удаление/создание папки/файла) будет производиться в текущей директории. Удалить папку возможно только при отсутствии в ней файлов.
Требования к программному обеспечению:
Данный сайт будет поддерживаться следующими браузерами:
Opera, Mozilla Firefox, Internet Explorer, Google Chrome, поддержка остальными – не гарантируется.
Средства разработки:
При разработке данного проекта будут использоваться следующие языки: html, css, php, sql, а так же javascript.
SVN
Для системы контроля версия мы использовали SVN. Для этого мы пользовались услугами сайта www. code. . Название нашего проекта online-file-manager. Разместив проект там, мы тут же приступили к постепенному выполнению проекта.
Главная страница размещенного проекта на code. выглядит так :

Ниже перечислены пользователи *****@***ru ( Ершов Никита), *****@***ru (Хидиров Виктор) и разделение обязанностей в проекте.

Календарный план.

План Тестирования.





