[{"data":1,"prerenderedAt":211},["ShallowReactive",2],{"slug-content-de-\u002Fprojects\u002Fvertretungsplan":3},{"kind":4,"item":5,"categories":65},"project",{"id":6,"title":7,"body":8,"dateEnd":41,"dateStart":42,"description":43,"extension":44,"featuredInCv":45,"link":46,"meta":47,"navigation":48,"path":49,"repo":46,"seo":50,"stem":51,"tags":52,"__hash__":64},"projects_de\u002Fprojects\u002Fvertretungsplan.md","Vertretungsplan",{"type":9,"value":10,"toc":36},"minimark",[11,16,24,33],[12,13,15],"h2",{"id":14},"über-das-projekt","Über das Projekt",[17,18,19,20,23],"p",{},"Während meines Abiturs auf dem Pictorius Berufskolleg wurde eine frühe Version der Untis-Schul-Cloud eingesetzt.",[21,22],"br",{},"\nDamals gab es vom Anbieter noch keine Schnittstellen, keine Responsivität und nur wenig UX, besonders für mobile Benutzer.",[17,25,26,27,29,30,32],{},"Als Lösung habe ich ein eigenes Symfony Backend mit Web Crawler und API geschrieben, welches die Daten von dem Anbieter abruft, zwischenspeichert und aufbereitet wiedergab.",[21,28],{},"\nDazu gestellt wurde eine native Android-App, welche die Daten über die API abruft und darstellt.",[21,31],{},"\nDie App wurde über den Google Play Store verteilt und weitgehend durch die Schüle, über Kurse und Jahrgangsstufen verteilt genutzt.",[17,34,35],{},"Die App wurde von mir eingestellt, als der Anbieter der Schul Cloud eine eigene Alternative anbot und seine Schnittstellen soweit heruntergeschlossen hatte, dass ein einfaches Crawlen nicht mehr möglich war.",{"title":37,"searchDepth":38,"depth":38,"links":39},"",2,[40],{"id":14,"depth":38,"text":15},"2018-06","2017-10","Eine App um den Vertretungsplan meines Berufskollegs zu optimieren","md",false,null,{},true,"\u002Fprojects\u002Fvertretungsplan",{"title":7,"description":43},"projects\u002Fvertretungsplan",[53,54,55,56,57,58,59,60,61,62,63],"php","symfony","sql","rest","nginx","flutter","dart","android","html5","css3","git","eCXkrbR1B2p8YRTZ1eAzHgHUXEr-ngabcUeSDzTkTBY",[66,74,93,114,142,151,160,169],{"name":67,"items":68},"Datenbanken",[69,71],{"slug":55,"name":70},"SQL (MySQL, MariaDB)",{"slug":72,"name":73},"sqlite","SQLite",{"name":75,"items":76},"Frontend",[77,79,81,84,87,90],{"slug":61,"name":78},"HTML5",{"slug":62,"name":80},"CSS3",{"slug":82,"name":83},"tailwindcss","Tailwind CSS",{"slug":85,"name":86},"bootstrap","Bootstrap",{"slug":88,"name":89},"uikit","UIkit",{"slug":91,"name":92},"extjs","Ext JS",{"name":94,"items":95},"JavaScript-Ökosystem",[96,99,102,105,108,111],{"slug":97,"name":98},"javascript","JavaScript",{"slug":100,"name":101},"typescript","TypeScript",{"slug":103,"name":104},"nodejs","Node.js",{"slug":106,"name":107},"vuejs","Vue.js",{"slug":109,"name":110},"nuxt","Nuxt.JS",{"slug":112,"name":113},"deno","Deno",{"name":115,"items":116},"Backend",[117,119,122,124,127,130,133,136,139],{"slug":53,"name":118},"PHP",{"slug":120,"name":121},"laravel","Laravel",{"slug":54,"name":123},"Symfony",{"slug":125,"name":126},"laminas","Laminas",{"slug":128,"name":129},"mezzio","Mezzio",{"slug":131,"name":132},"zend","Zend Framework",{"slug":134,"name":135},"wordpress","WordPress",{"slug":137,"name":138},"shopware","Shopware",{"slug":140,"name":141},"spryker","Spryker",{"name":143,"items":144},"Mobile",[145,147,149],{"slug":59,"name":146},"Dart",{"slug":58,"name":148},"Flutter",{"slug":60,"name":150},"Android",{"name":152,"items":153},"Weitere Sprachen",[154,157],{"slug":155,"name":156},"java","Java",{"slug":158,"name":159},"python","Python",{"name":161,"items":162},"Betriebssysteme",[163,166],{"slug":164,"name":165},"linux","Linux",{"slug":167,"name":168},"windows","Windows",{"name":170,"items":171},"Sonstiges",[172,174,177,180,183,186,189,191,194,197,200,203,205,208],{"slug":63,"name":173},"Git",{"slug":175,"name":176},"docker","Docker",{"slug":178,"name":179},"jenkins","Jenkins",{"slug":181,"name":182},"jvm","JVM",{"slug":184,"name":185},"aws","AWS",{"slug":187,"name":188},"cloudflare","Cloudflare",{"slug":57,"name":190},"Nginx",{"slug":192,"name":193},"redis","Redis",{"slug":195,"name":196},"networking","Netzwerk",{"slug":198,"name":199},"rabbitmq","RabbitMQ",{"slug":201,"name":202},"oidc","OIDC",{"slug":56,"name":204},"REST",{"slug":206,"name":207},"terraform","Terraform",{"slug":209,"name":210},"cicd","CI\u002FCD",1782453849494]