Skip to content

OmegaSleepy/Umeniya-Plus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

303 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

~ @OmegaSleepy
Hello! This is a repo for my entry in the National Olympiad of Information Technology NOIT. The following will be written in Bulgarian for clarity.


ТЕМА.

„Умения+“ – WEB Интерактивна платформа за споделяне на опит по учебни предмети


2. АВТОР

Мартин Владимиров Георгиев

3. РЪКОВОДИТЕЛ

Боряна Георгиева


4. РЕЗЮМЕ

4.1. Цели.

Проектът цели да създаде достъпна среда за ученици, където обменът на знания превръща сухата материя в приложими умения. Анализът на българската уеб екосистема показва два крайни типа решения: платени платформи със затворено съдържание или остарели форуми с лоша навигация. „Умения+“ запълва тази ниша, като предоставя модерна, безплатна и геймифицирана платформа (система от точки „Искри“), която стимулира ученето чрез развлечение и споделяне.

4.2. Основни етапи в реализирането на проекта.

Реализацията премина през следните ключови фази:

  • Проучване и архитектура: Изучаване на HTTP/HTTPS протоколите и проектиране на базата данни.
  • Разработка на Core функционалност: Имплементиране на инструменти за създаване на публикации.
  • Frontend и UX дизайн: Динамично управление на страниците чрез JS DOM manipulation и подобряване на потребителското изживяване.
  • Интеграция на геймификация: Създаване на вътрешен магазин и логика за печелене на „Искри“.

4.3. Ниво на сложност на проекта.

Проектът демонстрира висока сложност чрез разделение на логиката (Layered Architecture). Основните предизвикателства бяха концентрирани във Frontend частта – осигуряване на устойчиво търсене и динамично визуализиране на съдържание без използването на тежки външни фреймуърци.

4.4. Логическо и функционално описание на решението.

Архитектурата е изградена на модулен принцип (8 основни пакета):

  • Routes: Дефинира endpoint-ите на сървъра; насочва заявките без бизнес логика.
  • Controller: Обработва HTTP операциите, управлява JSON парсването и бисквитките.
  • Service: Ядрото на приложението. Изпълнява бизнес логика, валидации и комуникира с DAO.
  • DAO (Data Access Object): Изолиран слой за директна комуникация с SQLite базата данни.
  • Util: Помощни инструменти (Logger, DB връзки).
  • Data/DTO: Използване на Java Records за сигурен и лесен пренос на данни в обекти.
  • Validation: Специализирани класове за проверка на интегритета на входящите данни.

4.5. Реализация.

Избраният технологичен стек съчетава модерна Java функционалност с индустриални стандарти:

  • Backend: Java 21 (Records, Pattern Matching), Java Spark (лек сървърен фреймуърк), Thymeleaf (сървърно рендериране), Gson (JSON обработка), jbcrypt (сигурност).
  • Database: SQLite – избрана заради лесната преносимост и висока скорост при малки и средни проекти.
  • Frontend: Чист JavaScript (Vanilla), Marked.js (за Markdown визуализация), Highlight.js (за синтактично подчертаване на код), SweetAlert2 (за UI нотификации).

Литература:

Официална документация на Mozilla (MDN) за HTTP и документация на Oracle за Java 21.

4.6. Описание на приложението.

Инсталация и стартиране:
Проектът се импортира в Eclipse/IntelliJ като Existing Maven Project.
Изпълнява се Maven install за изтегляне на зависимостите.
Приложението се стартира от главния клас в src/main/java или чрез приложените скриптове runServer.bat / runServer.sh.
Употреба: Достъп през браузър на адрес http://localhost:4567. Платформата разполага с демо профили:
Потребител: username / password
Администратор: username / password
Поддръжка: Сървърът извършва автоматична самодиагностика и почистване при стартиране.

4.7. Заключение.

Проектът е напълно функционален и постига заложените цели. Системата за „Искри“ успешно ангажира потребителите. Бъдещото развитие включва разширяване на асортимента в магазина, добавяне на реална система за съобщения между учениците и интеграция на AI за автоматично категоризиране на съдържанието.

About

A web platform entry for the Bulgarian IT Olympiad

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors