For a better FMI
JavaScript CSS
Permalink
Failed to load latest commit information.
client This fixes live update for 'enrolled' messages. Jan 12, 2014
docs Updated database drawing. Oct 20, 2013
mockups/public_html jQuery - local Apr 19, 2013
server This fixes live update for 'enrolled' messages. Jan 12, 2014
test This fixes the enrollment logic. Also breaks the live update. Jan 11, 2014
views This fixes the enrollment logic. Also breaks the live update. Jan 11, 2014
.gitignore Configuration in environment variables is now the default - see http:… Jan 4, 2014
.jshintignore Moved JS files from main dir to server/; renamed static/ to client/. Aug 8, 2013
.travis.yml Drop support for node 0.6 Oct 11, 2013
Procfile Fix Procfile to call node directly instead of npm Oct 20, 2013
README.md
config.js Configuration in environment variables is now the default - see http:… Jan 4, 2014
index.js Configuration in environment variables is now the default - see http:… Jan 4, 2014
package.json Add request to package.json. Oct 20, 2013

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