Projekt: Rozwój Schedulera

Hej. Zaczęło się głosowanie na przedmioty z oferty. Chciałabym przybliżyć Wam nowy przedmiot Projekt: Rozwój Schedulera, ponieważ jego opis w systemie zapisów jest dość generyczny i nic nie mówi. Na przedmiocie tym będziemy się zajmowali rozwijaniem systemu do układania planu zajęć. Przedmiot będzie miał podobną formułę do przedmiotu o systemie zapisów (Projekt: rozwój Systemu Zapisów).

Czym jest ten system do układania planu zajęć (scheduler)?

To strona internetowa, która przyjmuje jako dane wejściowe przydział zajęć od dyrektor do spraw dydaktycznych (obecnie dr Biernacka). Przydział to określenie ile ma być grup jakiego przedmiotu i kto ma je prowadzić. Scheduler wyrzuca gotowy plan zajęć, który system zapisów sobie pobiera przez api. Plan zajęć jest układany automatycznie, natomiast nad całością procesu czuwa pani Anna Smolińska, ręcznie wprowadzając do systemu niektóre wymagania i zależności lub poprawiając algorytm.

Jak to wygląda technologicznie?

Strona internetowa jest jednostronicową aplikacją internetową napisaną w angularze (wersja 1), javascripcie (EcmaScript 6) i bootstrapie 3. Api (włącznie z algorytmem, co układa plan) jest napisane w Scali. Dodatkowo jako proxy pomiędzy js i scalą mamy python+django (system ten miał być podstroną systemu zapisów, ale na razie jest osobnym serwisem, stąd to proxy).

Jak będą wyglądały zajęcia?

Będą się trochę różniły od zajęć z systemu zapisów i będą dostosowane do tego, co w danym momencie chcemy zrobić. W tym semestrze będziemy się zajmować głównie frontendem, więc można je potraktować jako wstęp do bycia frontendowcem. Na zajęciach będziemy mieć krótkie wykłady, zadania programistyczne niezwiązane z schedulerem (mające na celu wdrożenie do technologii - napisanie własnej mini stronki) i zadania rozwijające schedulera.

Do kogo są kierowane zajęcia?

Do studentów, którzy już potrafią coś programować, ale jeszcze nie poszli do pracy i są zainteresowani stanowiskiem frontend dewelopera.

Ile będzie miejsc w grupie?

5

Czy muszę mieć własny komputer?

Tak, będziemy pracować na własnym sprzęcie, z zainstalowanym linuksem lub mac.

I tak na koniec, chciałabym porównać zakres zajęć z przykładowym ogłoszeniem o pracę

https://www.monterail.com/careers/junior-javascript-developer-wroclaw

Skilled in developing rich applications with HTML, CSS and JavaScript

Taki właśnie jest scheduler. Dodatkowo będziecie przez semestr rozwijać własną prostą aplikację tego typu.

Experienced with any modern client-oriented JavaScript frameworks or libraries (Angular 2 and up, React or Vue.js - jQuery is not enough today)

Będzie dużo angulara.

Familiar with testing methodologies dedicated to the front-end world

Testowania nie będziemy poruszać na zajęciach.

Familiar with HTML and CSS preprocessors

Nie będzie nic o preprocesorach html (no chyba, że angular można uznać za taki preprocesor). Scheduler korzysta z preprocesora css sass (https://sass-lang.com/). Na pewno czasem będziecie musieli coś tam zmodyfikować, ale będzie to raczej dodatek, a nie przedmiot zajęć. Poza tym zrozumienie, czym jest sass to około 15 minut lektury.

Familiar with ECMAScript 2015 (or newer)

Scheduler już jest napisany w ECMAScript 2015, w tym semestrze zajmiemy się przepisaniem tego do Typescriptu. Będziemy dość szczegółowo wchodzić w to, czym jest Javascript i jego nowsze wersje oraz poznamy Typescript.

Have prior experience with responsive webdesign

Scheduler jest responsywny i korzysta z bootstrapa. Omówimy, co to znaczy i zastosujecie we własnym projekcie.

Passionate about modern front-end trends
Have great communication skills
Fluent in spoken and written English
Like Mondays as much as Fridays :slight_smile:

We własnym zakresie.

Familiar with a version control system (we use git)

Będziemy korzystać regularnie.

Are ready to participate in a highly iterative agile methodology that includes providing time estimates and managing feedback loops

Wykorzystamy elementy scruma, zrobimy też pod koniec semestru zadania z estymacji.

Interested in JS development for NodeJS platform
Are interested in developer communities and open source projects

We własnym zakresie.

Have hands on experience with front-end development tools (Webpack, Gulp)

Scheduler korzysta z grunta, będziecie regularnie korzystać z jego komend, ale nie będziemy tego rozwijać.

Czy jak już to umiem lub chcę zająć się czymś innym to mogę się zapisać na zajęcia?

Jeżeli już to umiesz lub chciałbyś się zająć backendem/ux/devops, to możemy się dogadać, ale będziesz musiał sporo pracować samodzielnie. Jest możliwość zajęcia się istniejącymi trudniejszymi ticketami (jest ich sporo) lub konkretnym problemem.

W przypadku rozwiązywania konkretnego problemu na początku wdrożysz się z resztą grupy, opracujesz plan, po przedyskutowaniu i zaakceptowaniu go, wprowadzisz tickety do githuba oraz wykonasz część/całość pracy (w zależności od złożoności problemu). Prostsze tickety mogą zostać wykonane przez innych studentów (w tym semestrze tylko frontendowe).

Przykładowe problemy:

  • angular 1 -> angular 2
  • badanie ux + poprawa funkcjonalna interfejsu
  • testy frontendu
  • testy backendu (w szczególności poprawności działania algorytmu)
  • zminimalizowanie proxy pythonowego do minimum (wymaga znajomości js, python i scali)
  • przeniesienie portalu na serwery ii (dla devopsa, obecnie używane są: ansible, docker, kubernetes, google cloud platform, aws s3, couchdb, postgres)

Zgłoszenia do tej opcji są na maila/priv (zapis do grupy w systemie zapisów będzie ręczny).


Dziękuję za uwagę i zapraszam do zadawania pytań.

5 Likes