Skip to content

Latest commit

 

History

History
119 lines (82 loc) · 8.32 KB

README.md

File metadata and controls

119 lines (82 loc) · 8.32 KB

RE:CYCLE

Есенция

Карта с пунктове, депа, места са хвърляне на батерии, скрап, и (ако има) други. Всеки посетител ще има възможността да добави нов пункт. Вече има идеи за допълнителни функционалности в бъдещи версии.

Примерни употреби

Пример №1

  1. Петър има куп стари списания, вестници и изписани тетрадки
  2. Петър предпочита да не мята всичко това в кофата за рециклиране, понеже нерядко кофата е замърсявана с органичен боклук и не бива рециклирана
  3. Петър влиза в сайта и търси "хартия"
  4. RE:CYCLE показва близките до Петър пунктове за рециклиране на хартия, базирайки това по автоматично засечения адреса
  5. Петър избира най-ведро изглеждащия от пунктовеете и занася събраната хартия

Пример №2 (графичен)

Прототипен дизайн, добавяне на пункт стъпка 2: add-location-2

Инсталация на проекта (за програмисти)

Проектът е написан на Python и Django, и използва MySQL.

Development среда

Автоматична настройка

Нужни са ви единствено:

  • Vagrant, ако нямате – сваляте и инсталирате
  • VirtualBox, ако нямате – сваляте и инсталирате
  • hashicorp/precise32 VM, ако нямате – vagrant box add hashicorp/precise32 https://vagrantcloud.com/hashicorp/precise32/version/1/provider/virtualbox.box

В директорията на проекта пускате 1 команда:

vagrant up

Това може да отнеме няколко минути, след което имате работещ сайта на адрес: http://localhost:8888/

Администратор на сайта е admin с парола admin, чрез който имате достъп до административния панел.

Детайли

Автоматичната настройка създава виртуална машина заемаща 384MB RAM памет и 2GB на диска. Може да я спирате и пускате с команди от директорията на проекта:

vagrant halt # изключва
vagrant up # включва

За още детайли вижте какво се инсталира в нея.

Ръчна настройка

  1. Нужен ви е Python 2.7. Проектът не е тестван на други версии.

  2. Трябва да имате MySQL 5.x, плюс header файлове. Както и Node.js.

  3. Инсталирайте pip, ако нямате – easy_install pip или sudo easy_install pip

  4. Инсталирайте bower, ако нямате – npm install -g bower или sudo npm install -g bower.

  5. Инсталирайте virtualenvwrapperpip install virtualenvwrapper или sudo pip install virtualenvwrapper.

  6. Заредете командите на virtualenvwrapper: source /usr/local/bin/virtualenvwrapper.sh – дава достъп до mkvirtualenv и други.

  7. mkvirtualenv recycle --no-site-packages – ще създаде виртуална среда за инсталиране на pip пакети в ~/.virtualenvs/obshtestvobg.

  8. workon recycle за да превключите на това обкръжение.

  9. Клонирайте хранилището и влезте в директорията на проекта.

  10. Зависимостите за frontend (CSS и JS): (cd ecomap && bower install)

  11. Зависимостите на проекта: pip install -r requirements.txt

    Ако компилацията на MySQL адаптера не мине, може да се наложи да се изпълни export CFLAGS=-Qunused-arguments (реф.) и да се стартира отново командата.

  12. Създайте база данни в MySQL:

    mysql -uroot -p -e "CREATE DATABASE recycle CHARACTER SET utf8 COLLATE utf8_general_ci"
    
  13. Създайте файл със специфичните за локалното ви копие настройки, като копирате server/settings_app.py.sample като server/settings_app.py и въведете там параметрите за достъп до MySQL базата данни.

  14. Подгответе базата за първото пускане на миграциите: python manage.py syncdb --noinput

  15. Пуснете миграциите: python manage.py migrate

  16. Направете си админ потребител с python manage.py createsuperuser

  17. Пуснете си сървър с python manage.py runserver

Би трябвало да може да достъпите приложението на http://localhost:8000/.

Production среда

Инсталирайте приложението, използвайки инструкциите в предишната секция за ръчни настройки, с тези разлики:

  1. В server/settings_app.py:

    • Променете DEBUG = True на DEBUG = False.
    • Генерирайте нова стойност на SECRET_KEYapg -m32 например).
  2. Настройте уеб сървъра си да сервира статичните файлове, намиращи се в STATIC_ROOT (обикновено папката static/ в корена на проекта) на URL /static/.

  3. Уверете се, че по време на deployment се изпълнява командата python manage.py collectstatic -l, за да се копират статичните файлове от приложението в STATIC_ROOT.

  4. Използвайте Nginx или Apache сървър, плюс uwsgi server и uwsgi python plugin. Могат да се използват съответните конфигурационни файлове в папка server/.

Почистване на кеша на production системата
find /var/cache/nginx/ -type f | xargs rm

Deployment

След първоначалната инсталация, проектът се качва на сървъра с fab deploy. Копирайте fabric_settings.py.sample във fabric_settings.py и го редактирайте, за да отговаря на вашите настройки за deploy. След това, процедурата е следната:

  1. Правите промени.
  2. git commit и git push на промените.
  3. Изпълнявате fab deploy от корена на вашето локално копие.

Скриптът за deploy върши доста от нещата, описани в предишните секции.

Примерна инсталация на Debian-базирана машина

Вижте командите в инсталационния файл за Vagrant.

Забележки

Следното трябва да се премести в конфигурационен файл:

  • Edit /ecomap/templates/home/get.html to specify the ignorable address parts. Usually this project will be integrated in a specific region, so you can safely remove this region from the addresses being displayed.
  • Edit /ecomap/templates/home/get.html to specify the default map center.