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 - звучи супер.
|