Start bloga - start projektu apki.org

Po co ten blog?

Tworzenie systemów informatycznych nie jest zadaniem trudnym jeżeli posiada się wiedzę oraz doświadczenie. To co jest trudne to nauka oraz zdobywanie wprawy.

Informacji na temat programowania jest mnóstwo. Tak samo jak porad, mniej lub bardziej obszernych, na temat tworzenia różnej wielkości systemów informatycznych.

Projekt apki.org jest duży. Jest to dla mnie oraz reszty twórców wyzwanie. Wiem też że podczas pracy napotkam bardzo dużo problemów, których rozwiązanie będzie dla mnie zarówno nauką jak i wrzodem na d... Bardzo stresującym doznaniem.

Prowadzenie devbloga ma zatem 3 podstawowe zadania:

  1. Przekazanie wszystkich problemów które napotkaliśmy (z ewentualnymi rozwiązaniami lub obejściami, jeżeli na takowe wpadniemy)

  2. Zrzucenie z siebie części ciężaru przez opisanie swoich problemów (bardzo często spojrzenie z nowej perspektywy, nawet jeżeli jest to zwykłe szersze opisanie problemu, pomaga w znalezieniu rozwiązania)

  3. Na podstawie ewentualnego feedbacku możemy razem nauczyć się jeszcze więcej. A fundamentem platformy apki.org ma być jak najszersza edukacja programistyczna w naszym narodzie

Mamy nadzieję że sam projekt przyniesie wyzmierne korzyści jak najszerszej liczbie ludzi. Postaramy się aby ten blog stanowił źródło informacji dla każdej osoby z podobnymi nam zainteresowaniami.

A zatem zaczynamy!

Od strony technicznej projekt podzielony jest na 3 części:

  1. Backend - kręgosłup całego systemu, oparty o framework RubyOnRails i hostowany na serwerach http://mydevil.net/. Wykonywany jest przeze mnie (Jakub Syty) we współpracy z praktykantem fundacji - Kamilem Mrozkiem. Informacje przechowujemy w bazie NoSQL - MongoDB. Apki.org będą wykorzystywały dużą ilość informacji pochodzących z api portalu GitHub. Aby nie przeciążać api i przekraczać limitów narzucanych przez GitHub wykorzystamy warstwę cachowania tych informacji wykorzystującą bazę key-value - Redis.

  2. Frontend - bardzo rozbudowana część naszego systemu, interaktywne kursy, jest w pełni nastawiona na działanie po stronie klienta. Pomoże nam tutaj framework AngularJS. Kod będzie pisany w TypeScript, kompilowany będzie w locie przez backend (node.js) do JavaScriptu. Frontend będzie w całości wykonany przez Jakuba Króla.

  3. Forum - postawione na systemie Discourse i hostowane na chmurze (jeszcze nie ustaliliśmy dokładnie jakiej). System to działania wymaga dockera, bazy danych redis oraz PostgreSQL.

Aby praca była wygodniejsza wykorzystujemy Vagranta, na którym ubuntu server będzie stanowił nam za serwer developerski RubyOnRails + node.js (potrzebny głównie do kompilacji kodu TypeScript do JavaScriptu.

Do zaumatyzowania wdrożeń planujemy użyć technologii Capistrano.

Cały projekt jest utrzymany jako OpenSource, jego kod jest hostowany przez GitHub. Zapraszamy do współpracy!

Już w następnym artykule napiszę więcej o naszej konfiguracji maszyny Vagrant oraz zależnościach projektu (gemfile).

Nekromancer

Programista z zawodu i zamiłowania. W fundacji zajmuje się głównie rozwiązaniami backendowymi oraz aplikacjami mobilnymi. Współtwórca portalu apki.org oraz mentor na forum

Jastrzębie-Zdrój http://ownvision.pl/