Chceš svou prací ovlivňovat budoucnost vzdělávání? Baví tě řešit komplexní agendy a stavět systémy, na které se lidé mohou spolehnout? Přidej se k nám a podílej se na vývoji klíčových IT systémů, které denně používají ScioŠkoly po celé České republice.
Na čem budeš konkrétně dělat?
- Budeš se starat o vývoj a údržbu našeho high stakes systému pro správu přihlášek, podpisů smluv a výhledově i plateb školného. Tvoje práce bude mít přímý dopad na hladký chod našich škol.
- Budeš pracovat s daty souvisejícími s provozem školy – od evidence žáků a pedagogů po pravidelné výkazy pro MŠMT a další instituce. Pracujeme se systémy jako Edookit a Dipsy.
- Dostaneš na starost správu webů (údržba stávajících webů na platformě Umbraco 8 a příprava na migraci na Umbraco Core).
- Klíčové jsou inovace (třeba vývoj nových funkcí pro interní informační systém ScioŠkol).
S jakými technologiemi pracujeme?
- Určitě potřebujeme, abys znal/a: .NET Core, Blazor (preferenčně server, případně wasm), SQL Server (nebo alespoň Postgre), TypeScript.
- Pokud se vyznáš v následujícím, je to plus: AI, MAUI, NodeJS, Umbraco, NUnit, SASS.
- A třešnička na dortu? Pro nás určitě Playwright/Puppeteer, Google APIs, BankID, NIA, PKCS #11, Scriban, Jint.
Jsi pro nás skvělý/á kandidát/ka, pokud:
- znáš techstack popsaný výše,
- kód nepíšeš ručně, ale primárně kontroluješ ten vygenerovaný,
- máš zkušenosti se zpracováním agend – ideálně v oblasti vzdělávání, případně ve zdravotnictví, právu nebo stavebnictví,
- rozumíš práci s daty – od návrhu struktury přes import/export až po integraci mezi systémy,
- orientuješ se ve vývoji nebo správě složitějších CMS/IS (nebo jsi je sám vyvíjel/a).
Co za to?
- 💸 80 - 100 tis. Kč/měsíc
- ⛱ 30 dní dovolené
- 🕘 Flexibilní práce – většinu času můžeš být remote, v kanclu se potkáváme cca 2x týdně.
- 🧑🤝🧑 Skvělí kolegové a otevřenost. Podívej se na nás na Atmoskopu.
- 📚 Podporujeme vzdělávání – seberozvoj je pro nás základ.
- 💡 Práce, která má reálný dopad.
Jak to u nás chodí?
- Spolu s přihláškou do výběrka nám pošli zpracovaný projekt (níže).
- Pošleme ti náš Test pracovního potenciálu (TPP). Nejde o test programovacích dovedností. TPP nám pomáhá zjistit, jak přemýšlíš a jak přistupuješ k řešení problémů – používáme ho u všech pozic ve Scio.
- Pohovor: Sejdeš se s Jonem (jeden z majitelů Scio), vývojářem Matějem a Katkou z HR. Offline, ideálně u nás v Karlíně.
Když si padneme do oka, potkáš se ještě krátce s naším zakladatelem Ondřejem Štefflem.
Těšíme se!
Katka, Matěj, Jon
Zadání projektu
Vytvoř webovou aplikaci pro sjednávání schůzek podle popisu níže.
Funkcionalita:
- Přihlášení / registrace pomocí Google účtu.
- Přihlášený uživatel má na hlavní stránce aplikace k dispozici tlačítko, kterým vygeneruje unikátní odkaz, který může sdílet pro sjednání jedné schůzky a odkaz, který mu zobrazí jeho vlastní kalendář.
- Kdokoli kromě vlastníka odkazu (přihlášený i nepřihlášený uživatel) je po jeho otevření v prohlížeči přesměrován na sjednání schůzky. Na stránce je h1 nadpis s jménem a prvním znakem z příjmení vlastníka odkazu, např. "Sjednat schůzku s Honzou N." (správné skloňování jména je bonusový úkol, v základu stačí "Sjednat schůzku s uživatelem Honza N."). Pod tímto nadpisem je h2 nadpis s informací, kolik schůzek má uživatel v tomto měsíci (tedy od prvního do posledního dne v současném měsíci, např. pokud se na stránku dívám 15. 8., zobrazí se počet schůzek od 1. 8. do 31. 8.).
- Pod těmito nadpisy následuje kalendář zobrazený v režimu "měsíc", tedy jedno políčko pro každý den v současném měsíci, mřížka (pro představu layoutu např. Google kalendář v tomto režimu).
- V kalendáři jsou vyšrafovaně již rezervované termíny, nicméně kdokoli kromě vlastníka odkazu nevidí jejich obsah, pouze, že daný termín je obsazený.
- Pravidla sjednávání schůzek: není možné sjednat schůzky v minulosti, dnes, o víkendech, během státních svátků České republiky a déle než 2 měsíce dopředu. Není možné rezervovat více než 3 schůzky každý den. Mezi každou schůzkou musí být nejméně 15 minut pauza. Schůzky je možné sjednat od 9:00 do 16:00. Jedním odkazem je možné sjednat pouze jednu schůzku. Schůzka se sjednává kliknutím do daného dne, což otevře modal (dialogovné okno) s výběrem délky schůzky (30 min, 45 min, 1 hod), po výběru radioboxy s možnými termíny - zobrazují se všechny validní možnosti pro zvolenou délku (tedy při zvolení 30 min se zobrazí více radioboxů než při zvolení 1 hod), tento výběr se dynamicky upravuje při výběru jiné délky schůzky. Obsazené, nebo z jiného důvodu nedostupné termíny jsou reprezentovány disabled stavem, label u každého checkboxu je ve formátu "od-do", případně " (obsazeno)", nebo " (nedostupné)", např. "9:00-9:30". Dále je nutné zadat vlastní jméno a příjmení.
- Po potvrzení je schůzka rezervována, zobrazena v kalendáři jako modrá událost "Vaše schůzka s Honzou N."
- Přihlášený uživatel se může podívat do svého kalendáře ve stejném zobrazení, může listovat měsíci (např. pomocí šipek, tlačítek), vidí své schůzky jako jméno a příjmení uživatele, který si schůzku dohodl, např. "9:00-9:30, Petr Anděl".
Volitelné výzvy:
- Skloňování jmen a příjmení viz výše.
- Odeslání e-mailu vlastníku kalendáře po sjednání schůzky.
- Možnost změnit termín, případně schůzku zrušit.
Technologie:
- Blazor Server, .NET Core 8/9/10.- SQL Server.
- TS, Sass/Tailwind.
Poznámky:
- Můžete použít AI k řešení úkolu v libovolném rozsahu dle vlastního uvážení. Prosíme pouze o stručné vyjádření, jaká část aplikace byla vytvořena pomocí AI, jaké konkrétní nástroje byly použity, stačí velmi jednoduše, např. "celé to psalo chatgpt".
- Oceníme nízkou kognitivní složitost a jednoduchost. Máme rádi, když věci nejsou zbytečně složité.
- Bude nás zajímat vaše řešení souběžnost. V praxi budete řešit úkoly v relativně vysoce souběžném prostředí, např. když jsou vypsány nové termíny návštěv ScioŠkol. :-)
- Vzhled aplikace vám může přinést plusové body. Je možné použít libovolné JS/TS knihovny, ale nepoužívejte prosím žádné Blazor UI knihovny typu Syncfusion, Radzen, atd.
- Připojte prosím poznámku, kolik času jste strávil/a řešením úkolu.
- Preferujeme odevzdání formou GitHub repozitáře. Pokud z jakéhokoli důvodu preferujete soukromý repozitář, přidejte prosím handle @lofcz jako spolupracovníka (collaborators) pro odevzdání úkolu. Pokud je možné, neodevzdávejte prosím .zip soubor.