Cilj predmeta
Cilj predmeta je naučiti studente da samostalno istražuju i kroz praktičan rad rešavaju aktuelne probleme u razvoju kompleksnih aplikacija i servisa elektronskog poslovanja.
Ishod predmeta
Studenti su sposobni da samostalno projektuju i razvijaju inovativna softverska rešenja u elektronskom poslovanju.
Sadržaj predmeta
Teorijska nastava:
Razvoj naprednih, distribuiranih, skalabilnih i pouzdanih veb aplikacija. Projektovanje i implementacija kompleksnih IT ekosistema. Specifičnosti razvoja softvera u internet i cloud okruženju. Napredni koncepti razvoja veb aplikacija. Razvoj Full stack aplikacija. Agilne metode u razvoju aplikacija elektronskog poslovanja. Pregled arhitektura savremenih aplikacija e-poslovanja. Razvoj softvera zasnovan na događajima. Servisno orijentisane arhitekture. RESTful veb servisi. Arhitektura mikroservisa, Docker. Enterprise bus arhitektura. Heksagonalna arhitektura. Pregled okruženja za razvoj naprednih aplikacija elektronskog poslovanja. DevOps metodologija. Pregled alata po fazama DevOps metodologije. Upravljanje razvojem i verzijama softvera, Git, Jira. Build alati, Maven, Gradle. Testiranje aplikacija, alati za automatsko testiranje softvera. Upravljanje isporukama, Jenkins. Postavljanje aplikacija u produkciono okruženje, Ansible. Praćenje i kontrola rada aplikacija, Nagios, Grafana. Optimizacija aplikacija i dinamičko prilagođavanje zahtevima realnog eksploatacionog okruženja. Skaliranje aplikacija i load balancing, Kubernetes>. Distribuirano keširanje, upravljanje distribuiranim skladištima podataka. Cloud platforme za razvoj aplikacija, PaaS. Google servisi u naprednim aplikacijama elektronskog poslovanja. Uvod u razvoj blockchain aplikacija: distriburanost, zaštita podataka, konsenzusi, pametni ugovori.
Praktična nastava
Projektovanje naprednih aplikacija elektronskog poslovanja. Alati i razvojna okruženja. Alati za upravljanje i kontrolu verzija softvera. GiT, Jenkins. Refaktorisanje. Alati za optimizaciju koda. Okviri i tehnologije za razvoj Full stack aplikacija. Serverska strana: PHP (Symfony, Laravel, CakePHP), Python (Django, Flask), Nodejs, Meteor. Klijentska strana: AngularJS, ReactJS, VueJS. Redux. Napredne JavaScript biblioteke. Sloj podataka: SQL/NOSQL (MariaDB, MongoDB, Redis). GraphQL. Moderni stekovi tehnologija. Integracija servisa i aplikacija elektronskog poslovanja. Veb servis brokeri. JSON API. Google servisi. Uvod u razvoj blockchain aplikacija.
Izrada projekta: projektovanje i razvoj kompleksne aplikacije elektronskog poslovanja za konkretan problem. Projekat sadrži: projektni zadatak, dokumentaciju projektnog rešenja, implementacionu dokumentaciju i analizu postignutih rezultata. Odbrana projekta se vrši pred predmetnim nastavnicima i studentima modula Tehnologije elektronskog poslovanja. Projektna dokumentacija se dostavlja studentima modula, a predmetni nastavnik imenuje jednog studenta koji će biti oponent i čiji zadatak će biti da na osnovu detaljno proučene dokumentacije pripremi komentare, pitanja i uz pomoć predmetnih nastavnika vodi diskusiju tokom odbrane projekta.
Literatura
1. B. Radenković, M. Despotović-Zrakić, Z. Bogdanović, D. Barać, A.Labus, Elektronsko poslovanje, FON, 2015.
2. M.Despotović-Zrakić, V.Milutinović, A.Belić (Eds), High performance and cloud computing in scientific research and education, monografija, poglavlja 1-6, IGI Global, 2014.
3. M. Haverbeke, Eloquent JavaScript, No Starch Press, 2018
4. E. Bush, Full-Stack JavaScript Development: Develop, Test and Deploy with Mongodb, Express, Angular and Node on Aws, Red Sky, 2016
5. T.Ziade, Python Microservices Development, Packt Publishing, 2017
6. C.Macrae, Vue.js: Up and Running: Building Accessible and Performant Web Apps, O’Reilly Media, 2018
7. C. Perez Sanchez, P. Solar Vilarino, PHP Microservices: Transit from monolithic architectures to highly available, scalable, and fault-tolerant microservices, Packt Publishing, 2017.
8. Materijali u e-formi, sa portala za e-učenje moodle.elab.fon.bg.ac.rs, 2021