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 тестове за логиката на записване и статус на курс.