Фриланс - Главная страница
Скрипт Фриланс удаленная работа

Главная страница

Скрипт удаленной работы . Продам скрипт биржи - Купить Аналог  Фриланс 

На Фреймворке: стоимость 1500 рублей,ротатор (горизонтальный) 100 рублей,верстка шаблона 1500 рублей

на подобие (http://freework.biz/) или (http://www.freelancerbay.com/) А так же Вы можете купить весь мой сайт с переоформлением.





теперь немного про особенности фреймворка

Он построен на так называемой архитектуре mvc (model-view-controller). это означает, что весь исходный код (все файлы) разделен на 3 вида:
-модели, - это, в основном, функции, содержащие обращения к базе.
-представления, - это практически чистый html со вставками php, представления нужны для вывода информации
-контроллеры. - отвечают за получение данных от пользователя и связь моделей и представлений.
Что следует из этого вынести - нам не нужны никакие шаблонизаторы и прочая ерунда для вывода данных, потому что у нас есть
представления - почти html со вставками пхп в тех местах, где идет вывод данных. Соответственно, для смены дизайна
нам нужно вносить правки только в эти файлы.

Сделать заказ   через форму обратной связи.

Увеличение посещаемости


Введение

Интернет в наши дни — это целая индустрия, быстро проникающая во все области человеческой деятельности. Именно сейчас эта индустрия находится в стадии стремительного роста, который сохранится в ближайшие несколько десятилетий.

Одновременно с развитием web, широкое распространение получил фриланс (от англ. слова "freelance” – свободный, внештатный сотрудник) - удаленная работа с помощью сети Интернет. Стремительный рост востребованности удаленной работы в Интернете можно объяснить недавним финансовым кризисом, лишившим некоторую часть IT-специалистов официального трудоустройства и контракта. В связи с этим, особый интерес представляют сервисы, адресованные фрилансерам и тем, кто ищет дистанционного работника.

В рамках дипломной работы необходимо разработать биржу удаленной работы – сервис, помогающий найти исполнителя на определенный вид IT-работ. Его уникальность состоит в том, что в рамках одного портала будет собрана целая гамма услуг, ориентированных как на работодателей, так и на исполнителей проектов. Основная функция сервиса – выступать в роли посредника между заказчиками и исполнителями проектов.

1 Анализ технического задания

1.1 Постановка задачи

Цель работы – создание биржи фриланса, предоставляющей работодателям возможность публикации заказов, а исполнителям – услуги по каталогизированному поиску подходящих проектов. Взаимодействие между заказчиками и фрилансерами должно осуществляться следующим образом:

  • Работодатель публикует объявление, в котором указывает направленность проекта, бюджет, техническое задание и т.д.;

  • Фрилансеры оставляют предложения, в которых указывают сроки и стоимость предполагаемых работ;

  • Исходя из предложений, работодатель выбирает исполнителя на свой проект.

Все действия в системе должны совершаться только авторизированными пользователями, поэтому необходимо разработать систему регистрации с защитой от автоматических регистраций. При регистрации пользователь должен иметь возможность выбрать тип создаваемого аккаунта (исполнитель или заказчик). В зависимости от этого типа в дальнейшем пользователь сможет совершать те или иные действия: заказчик – публиковать заказы; исполнитель – заполнять портфолио, отвечать на заказы и т.д.

Само собой, пользователь должен иметь возможность изменить персональные данные.

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

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

Поскольку в процессе взаимодействия исполнителей и заказчиков присутствует элемент конкуренции, разумно будет ввести ряд платных услуг для фрилансеров, напрямую влияющих на их видимость для работодателей. Это позволит не только окупить затраты на содержание портала, но и получать некоторую прибыль. Такими услугами будут являться:

  • Платное размещение на главной странице

Информация о фрилансере будет располагается слева от каталога проектов на главной странице сервиса. Это позволит не только увеличить посещаемость анкеты фрилансера, но и расширить поток его заказов.

  • Платное размещение на главной странице каталога.

Информация о пользователе будет располагается слева от таблицы с фрилансерами в общем каталоге фрилансеров.

  • Платное размещение в тематическом разделе каталога.

Информация о пользователе будет располагается слева от таблицы с фрилансерами в тематическом разделе (или нескольких разделах) каталога фрилансеров.

  • Профессиональный аккаунт.

Должен предоставлять своему обладателю ряд преимуществ , как то:

  • Возможность отвечать на проекты с пометкой «Только для профи»;

  • Размещение ответов на проекты выше остальных - в зоне profi;

  • Размещение в каталоге фрилансеров выше остальных - в зоне profi;

  • Рейтинг х 1.2;

  • Возможность загружать работы в ответах на проекты;

  • Превью работ портфолио при просмотре анкеты.

Кроме этого, следует реализовать административный интерфейс, предоставляющий возможности по управлению основными сущностями проекта (пользователи, проекты, блоги, комментарии, личные сообщения и т.д.)

1.2 Системные требования

1.2.1 Требования к серверному ПО

Для работы системы на сервере должны быть установлены следующие программные средства:

  • Веб-сервер Apache 1.3.30 и выше;

  • PHP 4.2.0 и выше (может быть собран как модуль Apache или как CGI);

  • СУБД MySQL 4.0 и выше.

1.2.2 Требования к пользовательскому ПО

На компьютере пользователя должен быть установлен любой веб-браузер (Internet Explorer, Mozilla, Netscape, FireFox, Opera и т.д.). Как правило, во всех современных операционных системах браузеры входят в стандартную комплектацию системы.

1.3 Обоснование выбора используемого комплекса программных средств

В качестве базовой платформы для реализации был выбран комплекс LAMP (PHP, SQL, HTML, CSS, JavaScript, AJAX и т.д.) Это обусловлено тем, что такая связка стала весьма популярной, в первую очередь, из-за своей низкой стоимости (все её составляющие являются открытыми и могут быть бесплатно загружены из Интернета). Набор LAMP входит в состав большинства дистрибутивов Linux и предоставляется многими хостинговыми компаниями.

1.3.1 PHP

РНР (Hypertext Preprocessor, препроцессор гипертекста) — это кросс-платформенный интерпретируемый на стороне Web-сервера язык программирования, предназначенный для создания активных Web-страниц. Синтаксис языка РНР основан на принципах построения языков С, Perl, Java. Код скрипта (сценария) на языке РНР встраивается непосредственно в HTML-текст. При запросе клиентом HTML-страницы со скриптом на языке РНР Web-сервер выполняет интерпретацию операторов языка. Обычно указанная интерпретация предусматривает изменение исходного HTML-текста, и этот измененный текст отправляется клиенту.

В области программирования для Сети PHP — один из популярных скриптовых языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP.

Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений. Основные из них:

  • автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;

  • взаимодействие с большим количеством различных систем управления базами данных (MySQL, MySQLi, SQLite, PostgreSQL, Oracle (OCI8), Oracle, Microsoft SQL Server, Sybase, ODBC, mSQL, IBM DB2, Cloudscape и Apache Derby, Informix, Ovrimos SQL, Lotus Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM, Firebird / InterBase, Paradox File Access, MaxDB, Интерфейс PDO);

  • автоматизированная отправка HTTP заголовков;

  • работа с HTTP авторизацией;

  • работа с cookies и сессиями;

  • работа с локальными и удалёнными файлами, сокетами.

  • обработка файлов, загружаемых на сервер;

  • работа с XForms;

В настоящее время PHP используется сотнями тысяч разработчиков. Согласно рейтингу Tiobe, базирующемся на данных поисковых систем, в феврале 2011 года PHP находится на 5 месте среди языков программирования. К крупнейшим сайтам, использующим PHP, относятся Facebook, ВКонтакте, Wikipedia и др.

PHP входит в LAMP — распространённый набор программного обеспечения для создания веб-сайтов (Linux, Apache, MySQL, PHP) [1].

1.3.2 MVC

MVC(Model-view-controller, «Модель-представление-контроллер») — архитектура программного обеспечения, в которой модель данных приложения, пользовательский интерфейс и управляющая логика разделены на три отдельных компонента, так, что модификация одного из компонентов оказывает минимальное воздействие на другие компоненты.[2]

Стандартная схема архитектуры «Модель-Вид-Контроллер» изображена на следующем рисунке:


Рисунок 1.1 – Схема архитектуры MVC

Шаблон MVC позволяет разделить данные, представление и обработку действий пользователя на три отдельных компонента:

  • Модель (Model). Модель предоставляет данные (обычно для View), а также реагирует на запросы (обычно от контроллера), изменяя свое состояние.

  • Представление (View). Отвечает за отображение информации (пользовательский интерфейс).

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

Применительно к интернет-приложениям:

  • Представление. Модуль вывода информации. Это может быть шаблонизатор или что-либо подобное, цель которого является только в выводе информации в виде HTML на основе каких-либо готовых данных.

  • Контроллер. Модуль управления вводом и выводом данных. Данный модуль должен следить за переданными в систему данными (через форму, строку запроса, cookie или любым другим способом) и на основе введённых данных решить:

  • Передавать ли их в модель

  • Вывести сообщение об ошибке и запросить повторный ввод (заставить модуль представление обновить страницу с учётом изменившихся условий)

Кроме того, контроллер обязан определять тип данных, полученных от модели (есть ли это готовый результат, отсутствие оного, либо сообщение об ошибке) и передавать информацию в модуль представления.

  • Модель. Модуль, отвечающий за непосредственный расчёт чего-либо на основе полученных от пользователя данных. Результат, полученный этим модулем, должен быть передан в контроллер, и не должен содержать ничего, относящегося к непосредственному выводу (то есть должен быть представлен во внутреннем формате приложения).

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


Рисунок 1.2 – Диаграмма последовательности

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

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

Впервые данный шаблон проектирования был предложен для языка Smalltalk.[2]

1.3.3 PHPMVCFrameworkCodeIgniter

В качестве основы для разрабатываемого интернет-приложения был выбран MVCFrameworkCodeIgniter. CodeIgniter — фреймворк, написанный на PHP для разработки полноценных веб-систем и приложений. Разработан компанией EllisLab, а также Риком Эллисом (Rick Ellis) и Полом Бурдиком (Paul Burdick).

Данный выбор обусловлен тем, что CodeIgniter обладает рядом значительных плюсов перед другими веб-фреймворками, например:

  • используется модель MVC (Модель-Отображение-Контроллер), хорошо зарекомендовавшая себя при разработке приложений самой разной направленности;

  • поддерживается множество баз данных (MySQL, PostgreSQL, MSSQL, SQLite, Oracle);

  • отлично написанная документация с примерами позволяет быстро освоить фреймворк;

  • CodeIgniter очень быстр в работе. Его считают эталоном скорости генерации страниц;

Данный фреймворк обладает следующими возможностями:

  • Поддержка версий PHP4 и PHP5

  • Модель MVC (Model-View-Controller).

  • Поддержкабазданных MySQL, PostgreSQL, MSSQL, SQLite, Oracle.

  • Легко расширяемая система через подключение собственных библиотек и плагинов.

  • Возможность использование ЧПУ. Также возможно использовать стандартый вид адресной строки.

  • Фреймворк уже содержит в себе большинство необходимых библиотек для работы с файлами, отправки электронных писем, проверкой данных форм, поддержки сессий, работу с изображениями и многие другие.

  • Обладает возможностью кеширования на стороне сервера SQL-запросов и генерируемых html-страниц.

  • Хорошо спроектированная документация на английском языке с примерами.

  • Очень быстр в работе. В этом смысле — эталон скорости и пример для подражания.

Многие PHP-программисты считают CodeIgniter лучшим выбором для тех, кто только начинает использовать в своей работе веб-фреймворки. CodeIgniter используется как ядро для новой версии коммерческой CMS ExpressionEngine.[3]

1.3.4 JavaScript

JavaScript — объектно-ориентированный скриптовый язык программирования. Является диалектом языка ECMAScript.

JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.

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

На JavaScript оказали влияние многие языки, при разработке была цель сделать язык похожим на Java, но при этом лёгким для использования непрограммистами. Языком JavaScript не владеет какая-либо компания или организация, что отличает его от ряда языков программирования, используемых в веб-разработке.[4]

1.3.5 AJAX

AJAX (от англ. Asynchronous Javascript and XML — «асинхронный JavaScript и XML») — подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером. В результате, при обновлении данных, веб-страница не перезагружается полностью и веб-приложения становятся более быстрыми и удобными.

AJAX — не самостоятельная технология, а концепция использования нескольких смежных технологий. AJAX базируется на двух основных принципах:

  • использование технологии динамического обращения к серверу «на лету», без перезагрузки всей страницы полностью, например:

  • с использованием XMLHttpRequest (основной объект);

  • через динамическое создание дочерних фреймов;

  • через динамическое создание тега <script>.

  • использование DHTML для динамического изменения содержания страницы;

В качестве формата передачи данных обычно используются JSON или XML.[5]

2.1 Архитектура системы

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

Архитектура системы представлена на рисунке 2.1.


Рисунок 2.1 – Архитектура системы

Разработанная система состоит из следующих структурных частей:

  1. База данных, в которой хранится информация обо всех сущностях проекта (пользователях, проектах, заявках, блогах, комментариях и т.д.).

  2. Модели доступа к данным. Представляют собой набор классов, с помощью которых осуществляется вся работа с базой данных системы.

  3. Контроллеры. Набор классов, позволяющий осуществлять ввод и вывод данных в систему.

  4. Представления. Служат для отображения различной информации клиенту системы.

  5. Вспомогательные библиотеки. Обеспечивают разносторонний функционал и предназначены для работы с файлами, отправки электронных писем, проверки данных форм, поддержки сессий, работы с изображениями и т.д.

2.2 Диаграммы вариантов использования

В соответствии с техническим заданием, работу с web-приложением осуществляют два типа пользователей: работодатели и исполнители. Кроме этого, заказчики и фрилансеры могут иметь административные привилегии. Также предполагается наличие пользователей с минимальным набором привилегий (гостей). Таким образом, на диаграмме вариантов использования будут присутствовать шесть действующих лиц (актеров). Это: пользователь (обобщенное действующее лицо), полноправный пользователь (обобщенное действующее лицо), гость, работодатель, фрилансер, администратор. Ниже представлено обобщение действующих лиц:


Рисунок 2.2 – Обобщение действующих лиц

2.2.1 Диаграмма вариантов использования пользовательской части портала

Как основную функциональность системы, так и ее поведение удобнее всего отразить на диаграмме вариантов использования:




Рисунок 2.3 - Диаграмма вариантов использования пользовательской части портала

На представленной выше диаграмме имеют место следующие прецеденты:

  1. Возможность посмотреть rss-ленту проектов позволяет пользователю получить ленту проектов, отсортированную по дате добавления, в формате RSS 2.0.

  2. Возможность посмотреть ленту проектов – одна из ключевых возможностей пользователя, позволяющая ему изучить список проектов, опубликованных на сайте. Кроме этого, пользователю доступен фильтр проектов, позволяющий выбирать проекты по определенным условиям (бюджет, сроки, категория и т.д.)

  3. Возможность получить помощь по работе с сайтом. На портале представлен раздел, содержащий исчерпывающую информацию по основным аспектам работы на сайте.

  4. Возможность посмотреть анкету пользователя позволяет посетителю изучить информацию о любом пользователе системы (персональную информацию, портфолио, отзывы и т.д.)

  5. Возможность посмотреть ленту блогов. Список постов в блогах представлен в виде ленты, отсортированной в порядке добавления сообщений.

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

  7. Возможность посмотреть каталог фрилансеров является одной из основных и позволяет пользователю ознакомиться с полным списком зарегистрированных на сайте исполнителей. Кроме этого, пользователь имеет доступ к фильтру фрилансеров, позволяющему осуществлять вывод исполнителей только по определенным условиям (специальность, страна, контактные данные и т.д.)

  8. Возможность посмотреть комментарии к проекту позволяет пользователю изучить полную информацию по опубликованному на сайте заказу.

  9. Возможность настроить почтовые уведомления. При необходимости пользователь может настроить отправку на свой e-mail уведомлений о появлении новых проектов, личных сообщений и комментариев к сообщениям в блогах.

  10. Возможность посмотреть список контактов позволяет пользователю ознакомиться со списком своих контактов (в личных сообщениях).

  11. Возможность посмотреть переписку с другим авторизованным пользователем.

  12. Возможность написать личное сообщение.

  13. Возможность написать пост в блоги позволяет пользователю добавить новое сообщение в раздел «блоги» портала.

  14. Возможность комментирования поста в блогах.

  15. Возможность пополнить счет. Необходима для того, чтобы пользователь мог пополнять свой счет в системе, поскольку оплата за все услуги списывается именно с него.

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

  17. Возможность опубликовать новый проект.

  18. Возможность посмотреть все комментарии к своему проекту позволяет работодателю изучить все поступившие от фрилансеров заявки на выполнение своего проекта.

  19. Возможность выбрать исполнителя на свой проект.

  20. Возможность закрыть проект.

  21. Возможность оставить отзыв исполнителю. Необходима для того, чтобы работодатель мог оценить качество выполнения своего проекта, с какой-либо стороны охарактеризовать выбранного на проект исполнителя.

  22. Возможность ответить на проект позволяет исполнителю оставить заявку на реализацию того или иного проекта.

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

  24. Возможность настроить портфолио. Необходима для того, чтобы фрилансер мог указать список ранее выполненных им работ (для дальнейшей демонстрации потенциальным работодателям).

  25. Возможность оставить отзыв работодателю позволяет фрилансеру охарактеризовать конкретного работодателя (предоставляется только в том случае, если исполнитель был ранее выбран на проект данного заказчика).

  26. Возможность заказать размещение в каталоге позволяет фрилансеру воспользоваться одной из платных услуг – размещением ссылки на профиль фрилансера в каталоге исполнителей (на главной странице каталога, или на главной странице тематического раздела каталога).

  27. Возможность заказать размещение на главной странице портала.

  28. Возможность посмотреть список своих проектов. Необходима для того, чтобы фрилансер мог ознакомиться с полным списком проектов, исполнителем на которые он был выбран.

  29. Выход из аккауната.

  30. Регистрация.

  31. Идентификация.

2.2.2 Диаграмма вариантов использования административной части портала

Функциональное назначение административной части портала представлено на соответствующей диаграмме вариантов использования:


Рисунок 2.4 – Диаграмма вариантов использования административной части портала

На данной диаграмме представлены следующие прецеденты:

  1. Возможность посмотреть список проектов позволяет администратору изучить полный список представленных на портале проектов.

  2. Возможность редактировать проект позволяет администратору осуществить любые редакционные действия с любым проектом.

  3. Возможность посмотреть список пользователей.

  4. Возможность редактировать пользователя позволяет администратору осуществить любые редакционные действия с любым пользователем.

  5. Возможность посмотреть список сообщений. Необходима для того, чтобы администратор мог ознакомиться с полным списком личных сообщений всех пользователей портала.

  6. Возможность редактировать личное сообщение.

  7. Возможность посмотреть список постов в блогах позволяет администратору изучить полный список сообщений в блогах.

  8. Возможность редактировать пост в блогах.

  9. Возможность посмотреть список комментариев в блогах. Необходима для того, чтобы администратор мог ознакомиться с полным списком комментариев к сообщениям в блогах.

  10. Возможность редактировать комментарий к блогам.

  11. Возможность посмотреть список заказанных услуг позволяет администратору ознакомиться с полным списком заказанных на портале платных услуг. В этот список входят: размещение на главной, размещение в каталоге, профи-аккаунты.

  12. Возможность редактировать заказанную услугу.

  13. Возможность посмотреть список платежей позволяет администратору ознакомиться со списком входящих от пользователей платежей. Платежи разделены на 2 группы: приход и доход.

  14. Возможность обновить котировки позволяет администартору держать в актуальном состоянии котировки валют.

  15. Возможность выполнить рассылку новых проектов позволяет администратору запустить автоматическую систему рассылки новых проектов пользователям портала.

  16. Возможность обновить рейтинг. Необходима для того, чтобы администратор мог обновлять рейтинги фрилансеров.

Следует отметить, что на данной диаграмме редакционные действия подразумевают любое изменение состояния редактируемого объекта, в том числе и удаление.


далее.....




Форма входа

E-mail:
Пароль:

Поиск