Skip to content

soshace/taskboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TaskBoard

Simple task board on Django for 404 Group.

Это тестовое задание. В нем есть места, которые можно оптимизировать, но "совершенству нет предела". Данный сайт сейчас крутится на AWS: http://54.93.84.128/, прошу посмотреть. Все тестировалось на ubuntu 14.04 x64.

Уже зарегистрированные пользователи:

Заказчик: l: customer p: customer

Исполнитель: l: elancer p: elancer

Суперпользователь: l: super p: super

Чтобы изменить процент комиссии надо залогиниться суперпользователем в /admin/ и пройти в /commission/. Если комиссия не была введена, то умолчанию это 10%. Суперпользователь не может вести деятельность внутри системы, поэтому у него просто нет профайла.

Если попадете в беду: /ajax/logout/

Ниже инструкция для развертывания на своей машине.

УСТАНОВКА

Необходимо поставить пакеты ubuntu для "postgresql", "apache", "python". В некоторых случаях понадобится команда "sudo" или быть в той или иной группе, например, www-data.

Рекомендованное обновление системы:

apt-get update apt-get upgrade

Пакеты:

apt-get install python-virtualenv python-dev libpq-dev postgresql postgresql-contrib build-essential git python-pip apache2 libapache2-mod-wsgi

======================================================== Сначала настраиваем БД

Поскольку я использовал AWS образ Ubuntu, мне необходимо было сгенерировать locale

locale-gen ru_RU ru_RU.UTF-8

И запустить postgresql вручную

pg_createcluster 9.3 main --start

Могу отметить, что в десктоп-версии эти шаги были проделаны системой автоматически при установке БД.

Поставим пароль юзеру по умолчанию:

sudo -u postgres psql postgres

Появится консоль, необходимо ввести "\password postgres", далее спросят пароль. Вводим, допустим "postgrespassword". Выходим, нажав сочетание клавиш "Ctrl+D".

ПРИМЕЧАНИЕ: естественно, в продакшене нужны "сильные" пароли.

Создаем базу данных для приложения:

sudo su - postgres

Вводим "createdb taskboard", где "taskboard" - имя бд.

Создаем пользователя, под которым django будет обращаться к БД. Все в той же консоли вводим "createuser --interactive -P". Консоль спросит имя, пароль. Пусть будут "django" и "djangopassword", соответственно. На остальные вопросы отвечаем 'n'.

Теперь необходимо дать пользователю 'django' права.

psql

Вводим на языке sql:

GRANT ALL PRIVILEGES ON DATABASE taskboard TO django;

Консоль подтвердит команду ответом "GRANT" БД сконфигурирована.

======================================================== Установка "виртуального" окружения python

Скачиваем приложение из github.com

git clone https://github.com/denova/TaskBoard.git

*необходимо быть в группе www-data с возможностью записи в /var/www/ директорию

Далее устанавливаем виртуальное окружение

virtualenv env

Заходим в виртуальное окружение

source env/bin/activate

И ставим необходимые зависимости из requirements.txt

pip install -r requirements.txt

Выходим из окружения

deactivate

======================================================== Найстройка apache

С помощью консольного редактора nano открываем файл:

nano /etc/apache2/sites-enabled/000-default

и добавляем следующие строки, сразу после <VirtualHost *:80>:

"

WSGIDaemonProcess TaskBoard python-path=/var/www/TaskBoard:/var/www/TaskBoard/env/lib/python2.7/site-packages

WSGIProcessGroup TaskBoard

WSGIScriptAlias / /var/www/TaskBoard/taskboard/wsgi.py

Alias /static/ /var/www/TaskBoard/static/

"

Также меняем "DocumentRoot":

"

DocumentRoot /var/www/TaskBoard

"

ПРИМЕЧАНИЕ: в продакш версии (с доменом) необходимо создать новый 'virual host' вместо переписывания дефолтного.

======================================================== Настройка django

Первым делом необходимо прописать логин, пароль к БД в файле taskboard/settings.py. Интересующая нас часть будет выглядеть так:

DATABASES = {

'default': {

    'ENGINE': 'django.db.backends.postgresql_psycopg2',

    'NAME': 'taskboard',

    'USER': 'django',

    'PASSWORD': 'djangopassword',

    'HOST': '127.0.0.1',

    'PORT': '5432',

}

}

ПРИМЕЧАНИЕ: в продакшене следует использовать данные из переменных окружения, текущий способ используется для простоты и оптимизации временных затрат.

Необходимо сделать миграцию баз данных, команда выполняется из /var/www/TaskBoard/ директории:

env/bin/python manage.py migrate

Необходимо собрать статичные файлы (в т.ч. из админки) воедино:

env/bin/python manage.py collectstatic

Последним шагом необходимо создать суперпользователя для 'django':

env/bin/python manage.py createsuperuser

Данный пользователь сможет заходить в админку django, а также менять процент комиссии у "системы".

Network for professionals Soshace

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published