The goal of this thesis is to extend the web application for the project “Úspěšný prvňáček” which offers an extra education and courses for preschoolers. The original application was created in a bachelor's thesis and offers features for storing information about clients, their attendances, groups, payments for the lectures, and viewing the client's entire history. The server side of the original and also the new application is written in Python with Django web framework, the client side is built with React and communicates via a REST API thanks to Django REST Framework. The final new extended application meets all the new requirements made by the lector. Also, thanks to the integration with advanced tools for easier development and maintenance, high code coverage by automated API and UI (E2E) tests, and configuration of multiple deploy environments, more reliable and faster delivery of new releases is possible. The application is deployed to more environments (including the production one) to Heroku and offers much more efficient and comfortable everyday work covering more areas of functionality thanks to the new features.
- Gather and describe new requirements for the extension of the application for the project “Úspěšný prvňáček”.
- Analyze new requirements for the extension of the current solution.
- Design an updated structure of the database and additional related modifications.
- Implement all the requirements.
- Perform an application testing using an automatization UI and API testing tools.
- Deploy the final application.
- Publish the final application as open-source with instructions on how to start the app.
Brief info (EN + CZ) and text (CZ) is also available at Czech Technical University Digital Library.
This thesis is written in Czech language, so the following text won't be in English.
Tato práce si klade za cíl rozšířit webovou aplikaci pro projekt „Úspěšný prvňáček“, který nabízí doučování a kurzy pro budoucí nebo nastupující prvňáčky. Původní aplikace byla vytvořena v rámci předcházející bakalářské práce a slouží k evidování klientů, jejich docházky, skupin, plateb za lekce a zobrazení celé historie klienta. Serverová část původní i nové aplikace je napsána v Pythonu s webovým frameworkem Django, klientská část v Reactu, navzájem spolu komunikují přes REST API díky Django REST Frameworku. Výsledná nová rozšířená aplikace splňuje všechny nové požadavky lektorky. Také je díky zavedení pokročilých nástrojů pro usnadnění vývoje a údržby, vysokému pokrytí automatizovanými testy API i UI (E2E) a zavedení několika prostředí pro nasazování umožněno spolehlivější a rychlejší dodávání nových verzí. Aplikace je nasazena do několika prostředí (včetně produkčního) na Heroku a lektorce umožňuje ještě efektivnější a pohodlnější každodenní práci pokrývající více oblastí díky novým funkcím.
- Proveďte sběr a popis nových požadavků na rozšíření aplikace pro projekt „Úspěšný prvňáček“.
- Proveďte analýzu nových požadavků na rozšíření stávajícího řešení.
- Navrhněte aktualizovanou strukturu databáze a další související změny.
- Implementujte všechny požadavky.
- Proveďte testování aplikace pomocí nástrojů automatizovaného testování UI a API.
- Proveďte nasazení výsledné aplikace.
- Výslednou aplikaci zveřejněte jako open-source spolu s instrukcemi pro spuštění aplikace.
Součástí tohoto repozitáře je také oficiální PDF soubor se zadáním práce.
Práce navazuje na mou předešlou bakalářskou práci Webová aplikace pro evidenci klientů projektu „Úspěšný prvňáček“.
Práce byla vypracována v roce 2020 na Fakultě informačních technologií ČVUT v Praze. Obor Webové a softwarové inženýrství, zaměření Softwarové inženýrství (MI-WSI-SI).
Práce je dispozici ve formátu PDF. K jejímu otevření postačí běžný PDF prohlížeč.
Součástí tohoto repozitáře je také PREZENTACE shrnující informace o práci (aplikaci) použitá při obhajobě.
Práce na aplikaci touto diplomovou prací neskončily a stále ji aktivně vyvíjím a rozšiřuji. Přejděte na repozitář s kompletními kódy aplikace.
Práce je napsaná v LaTeXu pomocí online editoru Overleaf a kompilátoru XeLaTeX.