Домашни > Време е да помислите за проектите си! > Решения > Решението на Иван Грозданов

Резултати
0 точки от тестове
4 точки от учител

4 точки общо

0 успешни теста
0 неуспешни теста
Код

 1"""
 2[Title/Звание]
 3    Javaporator
 4
 5[Description/Обрисовка]
 6    Javaporator е уеб приложение, което приема Java код и го преобразува в еквивалентен Python код, запазвайки структурата, обектите и функциите.
 7    Поддържа два начина на вход — директно въвеждане на код в текстово поле или качване на .java файл, като резултатът може да се свали като .py файл.
 8    Поддържа множество потреебители, като всеки потребител може да се регистрира и да преглежда цялата си история на конвертации. 
 9    За хората на които им писна от Java и искат и те да опитат от мекото на хляба.
10
11[Functionalities/Надарености]
12    - Потребителят може да се регистрира и да влезе в профила си, като историята на конвертациите му се пази между сесиите.
13    - Потребителят поставя Java код в текстово поле или качва .java файл и натиска бутон за конвертиране.
14    - Приложението анализира кода с rule-based парсър, който разпознава и превежда основни Java конструкции — класове, методи, наследяване, типове данни, цикли и условия.
15    - Резултатът се показва в текстово поле и може да се свали като .py файл (в зависимост от начина покойто сме подали Java кодът).
16    - Приложението показва статистика след всяка конвертация: колко реда са спасени от Java, колко точки и запетаи са унищожени.
17    - Всяка конвертация се записва към профила на потребителя и е достъпна в отделна страница с история на преводите.
18
19[Milestones/Възлови точки]
20    - Rule-based парсър — Модул, който с регулярни изрази превежда основни Java конструкции.
21    - Автентикация — Регистрация, вход и изход на потребители чрез вградената Django auth система.
22    - Django backend — Views и URL routing за конвертиране, качване на файл, сваляне на резултат, автентикация и преглед на история.
23    - База данни и модели — Django ORM модел за съхранение на конвертациите с полета за потребител, входен код, изходен код, дата, брой редове.
24    - Уеб интерфейс — Страница за регистрация и вход, текстово поле и бутон за качване на файл вляво, резултат и бутон за сваляне вдясно, статистика отдолу, отделна страница за история на конвертациите на потребителя.
25    - Тестове — Unit тестове за парсъра.
26
27[Estimate in man-hours/Времеоценка в човекочасове]
28    Около 60-70 часа (да речем)
29
30[Usage of technologies/Потребление на технологии]
31    - Django - Отговаря за backend-а, автентикацията, базата данни.
32    - HTML/CSS/JavaScript - За фронтенда малко, все още не съм сигурен за javascript-a дали ще е нужен, но ще видим с времето.
33    - re (вградената библиотека за регулярни изрази в Python) - За rule-based парсъра.
34    - unittest (вградената библиотека за unit тестове в Python) - За тестване на парсъра.
35"""


----------------------------------------------------------------------
Ran 0 tests in 0.000s

NO TESTS RAN

Дискусия
Виктор Бечев
17.05.2026 15:31

Проектът или много би зарадвал или много би обидил Жорката. Вероятно и двете заедно, защото ще се радва, че в светът ще има по-малко Java, но в същото време би му се налагало да се докосва до Java. Обожавам проекти, които на теория изглеждат прости, но всъщност имат изключително тегав елемент, който е 85% от проекта. Така описано - да имплементираш сам парсването, а не да ползваш готов lexer - звучи супер.
История
Това решение има само една версия.