Технологиите зад старта на Хак България

Като компания, която ще учи програмисти на практика е редно да споделим, какви технологични решения направихме за старта на Хак България.

Също така, какви са техните плюсове и минуси :)

Технологични решения

Сайт, блог, форма за регистрация

Това, с което стартирахме е:

Нека да караме наред:

hackbulgaria.com - основната страница

Основната страница, чийто код може да намерите в Github, се състои от следните неща:

  • Статичен HTML, CSS и JavaScript, базирани върху тема от ThemeForest
  • Страницата използва Twitter Bootstrap и е написана, за да бъде responsive под различни устройства
  • Като допълнителни JavaScript библиотеки, се използват jQuery и InView
  • Иконките идват от Font-Awesome и Font-Mfizz (иконки на различни технологии и езици за програмиране)

Страницата няма никаква backend технология.

Основната причина да не изберем Wordpress беше, че там има много неща, които няма да ни трябват за старта.

Плюсове

Най-големият плюс на този избор е, че носи бързина при разработката.
Темата поддържа основната CSS структура, като така се фокусираме върху съдържанието и цветовете.

Сайтът бе вдигнат в рамките на 3 дена.

Разбира се, тук е важно да споменем, че този избор носи бързина на разработката само в краткосрочен план (От няколко дена до седмица)

Когато има повече време, е хубаво да се подходи с по-цялостно решение, което поддържа и backend технология (Например, Wordpress)

Минуси

Най-значителните минуси са:

  • Липса на структура. JavaScript-a е в един файл и няма разпределение на кода (ModelView* например). Колкото повече неща се добавят към сайта, толкова по-трудно става навигирането в кода.
  • Липса на консистентност и много повторения. Ако погледнете кода, половината съдържание е написано като HTML текст, директно в индекса, а другата половина, е като faq.json, който се чете и зарежда динамично.

Заключение

Ако трябва бързо да пуснете Landing Page, освен стандартния избор за Wordpress, в ThemeForest има много хубави базови теми за Single-page-apps, върху които може да се стъпи!

Блогът - blog.hackbulgaria.com

С избора на технологията за блог, може да се каже, че сме на диета, която не включва Wordpress в себе си.

Спряхме се на новата и авангардна платформа - Ghost.

Ghost Blogging Platform

плюсове (тук по-субективно)

Това, което ни грабна в Ghost са следните неща:

  • Ghost е базирана на NodeJS и много лека като изпълнение. За разлика от Wordpress, с Ghost не можеш да направиш електронен магазин от платформа за блог.
  • Платформата съществува от около година и чувството е много "hacky" - за да промениш нещо по Ghost, отваряш Handlebars файловете и пишеш кода, който ти трябва. И тъй като няма много features в себе си, навлизането в структурата става за около 15 минути.
  • Красиво и минималистично! Хората зад Ghost са се постарали дори основната тема, която идва с блога, да изглежда красиво. Типографията е на ниво и няма излишни елементи по страницата.
  • Markdown редактор за статиите. Това е може би най-силния feature в Ghost на момента. В основния редактор се пише директно на Markdown, което спестява тонове главоболие с форматирането на статиите. Пише се по-бързо!
  • Създаването на нови теми е изключително лесно. В момента, темата, на която върви този блог, е кръстена "hackcasper", и има добевен малко HTML и CSS в повече.

минуси

Почти всички минуси се пораждат от факта, че последната излязла версия на Ghost е 0.4 :)

заключение

Технологично изпълнено, Ghost се пуска много лесно - трябва ти NodeJS и някакъв инструмент, като forever.

Когато се извърши дадена промяна по файлове на блога, трябва само да се извика:

forever restartall  

и нещата тръгват.

Ще видим до къде ще продължи приключението с Ghost. За сега върши работа

Форма за регистрация

Тъй като трябваше да пуснем формата за регистрация, заедно със сайта, първоначално се спряхме на Google формите, които буквално отнемат 15 минути са създаване.

Минусът при тях е, че няма персонализация и една форма, може да се пусне няколко пъти от един и същи човек.

За 3те дена, през които Google формата съществуваше, успяхме да съберем 55 регистрации за курса по Програмиране 101!

f6s

Вече, официалната форма, чрез която човек се записва за Програмиране 101 е базирана на платформата, която нашумя наскоро - F6S.

F6S главно се ползва от Startup фондове, за да приемат кандидатури, но се указа изключително удобна и за програми, като Хак България.

Най-големият плюс е, че за да попълниш формуляра, трябва да се логнеш или с Facebook акаунт, или с LinkedIn акаунт, което дава допълнително персонална информация за всеки един записал се, без да се налага да го питаш.

Особен минус на F6S е, че интерфейса е ужасен и трудно човек се ориентира в него.

Сървърна инфраструктура и deploy процес

За сървър се спряхме на DigitalOcean (5$ за VPS, как да не го обичаш ? :)) с базов VPS, на който върви Ubuntu Server с Apache за HTTP сървър.

Тъй като за първоначалната разработка не ползвахме Github, deploy-ването на сайта и на промените по блога, от локалната машина към сървъра, стават чрез този прост bash script:

#!/bin/bash
sshpass -p "vpspasswordhere" scp -r ./ root@95.85.58.88:/srv/www/htdocs/hackbulgaria.com/  

Скрипта ползва командите sshpass и scp и свърши много добра работа като за начало :)

Като за финал

Има много неща за подобряване по инфраструктурата и сайта, като всичко ще дойде с времето.

Важният milestone беше, сайтът да бъде пуснат възможно най-бързо, за да се задвижи колелото със записването за курсовете.

Ще се радваме на вашите мнения и въпроси :) !



comments powered by Disqus