For a better FMI
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
client
docs
mockups/public_html
server
test
views
.gitignore
.jshintignore
.travis.yml
Procfile
README.md
config.js
index.js
package.json

README.md

Build Status

democracy

For a better FMI

Инсталация

Проектът използва MongoDB (http://www.mongodb.org/) като база данни и NodeJS (http://nodejs.org/) като интерпретатор, така че те трябва да бъдат инсталирани предварително. npm (Node Package Manager) обикновено се инсталира заедно с NodeJS, но ако не е, трябва и той да бъде инсталиран.

Следващата стъпка е да свалите кода на проекта локално. В момента това може да стане с команда тип git clone <адрес на сорс кода>, където <адрес на сорс кода> може да копирате от главната страница на проекта в github.

След това трябва да инсталирате всички модули, необходими за изпълнението на проекта. За целта трябва да изпълните командата npm install в главната директория.

Конфигурация и стартиране

При стартиране на приложението трябва да има работещ MongoDB сървър.

Има няколко настройки, които трябва да се конфигурират - за някои от тях има стойности по подразбиране, за други - не. Те се запазват в environment variables. Актуален списък може да се намери във файла config.js в главната директория.

За да работи Recaptcha (и съответно нещата, защитени с него), трябва да се направи регистрация на https://www.google.com/recaptcha/admin/create и да се запишат като част от конфигурацията публичния и частния ключ на регистрацията.

Приложението се стартира с команда node . (или npm start) в главната директория. По подразбиране започва да слуша за заявки на порт 3000 и се свързва с локална инстанция на MongoDB към база hackfmi. Тези неща също могат да се конфигурират.

Добавяне на данни

Тъй като до момента не е ясен начинът, по който ще се въвеждат данни за студенти, курсове и т.н. в системата, има прости механизми за създаване на тестови данни. На адрес <адрес на приложението>/register може да се създаде нов потребител, а на адрес <адрес на приложението>/addCourse - да се добави нов курс с преподавател текущо log-натия потребител.

Тестване

Проектът има конфигуриран инструмент за статичен анализ на кода и известен брой тестове, които се изпълняват автоматично при всеки push към github repository-то върху системата Travis CI. За да се изпълнят същите неща ръчно, може да се извика командата npm test в главната директория.

За статичен анализ на кода се използва JSHint (http://www.jshint.com/).

Тестовете се намират в директория test/. Налични са няколко сравнително тривиални integration теста, както и малко по-сериозни unit тестове за логиката на записване и статус на курс.