User Tools

Site Tools


contrib:rsoc:pylxr

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
contrib:rsoc:pylxr [2010/05/17 15:33]
10.38.236.130
contrib:rsoc:pylxr [2010/05/17 17:07]
10.38.236.130
Line 7: Line 7:
 * Software engineering (parsing, căutare, baze de date, interfață web) * Software engineering (parsing, căutare, baze de date, interfață web)
  
 +=== Aplicații similare ===
 +
 +* [[http://sourceforge.net/projects/lxr/ | LXR]]
 +* [[http://lxr.linux.no/ | lxrng]]
 +* [[http://www.gnu.org/software/global/ | GNU GLOBAL]]
 == Obiective == == Obiective ==
  
 +* Se dorește obținerea unei aplicații care să permită acces prin intermediul interfeței web la codul sursă al unui program.
 +* Pentru moment este vizat limbajul C.
 +* Se dorește căutarea atât după numele funcției sau variabilei (tag-search) cât și după nume de fișiere (file search) sau șiruri de caractere (freetext search).
 +* Aplicația va fi implementată în Python.
 == Grup țintă == == Grup țintă ==
  
 +* Dezvoltatori de programe, preponderent proiecte FOSS. Aplicații de source-code browsing precum [[http://ctags.sourceforge.net/ | ctags]], [[http://cscope.sourceforge.net/ | cscope]], [[http://www.gnu.org/software/global/ | GNU GLOBAL]] și cele care oferă interfață web precum [[http://sourceforge.net/projects/lxr/ | LXR]], [[http://lxr.linux.no/ | lxrng]] sau [[http://www.gnu.org/software/global/ | GNU GLOBAL]] sunt utile pentru parcugerea rapidă și înțelegerea codului.
 == Limbaje de programare/biblioteci/aplicații/framework-uri folosite == == Limbaje de programare/biblioteci/aplicații/framework-uri folosite ==
  
 +* Limbaj principal: Python
 +* [[http://ctags.sourceforge.net/ | ctags]], [[http://cscope.sourceforge.net/ | cscope]] sau [[http://www.gnu.org/software/global/ | GNU GLOBAL]] pentru obținerea backendului de tag-uri
 +* Aplicație de indexare a codului care să permită căutarea rapidă
 +* Bază de date (de preferat [[http://www.sqlite.org/ | SQLite]])
 +* Python (CGI sau [[http://www.modpython.org/ | mod_python]]) pentru interfața web
 == Cerințe necesare == == Cerințe necesare ==
  
 +* Cunoștințe de bază de progamare
 +* Cunoștințe medii de programare C
 +* Cunoștințe de algoritmi de căutare și sortare
 +* Deprinderi în utilizarea unui sistem Unix (linia de comandă)
 +* Deprinderi de folosire a tool-urilor principale de programare (editor, compilator, debugger)
 == Cerințe recomandate == == Cerințe recomandate ==
  
 +* Cunoștințe de bază Python
 +* Cunoștințe de bază de web programming
 +* Cunoștințe de bază de baze de date
 +* Deprinderi de utilizare a ctags/csope
 +* Folosirea unui sistem de versioning (CVS, SVN, Git, Darcs etc.)
 == Cunoștințe/abilități dobândite == == Cunoștințe/abilități dobândite ==
  
 +* Cunoștințe de software engineering, integrare de aplicații, folosirea unor aplicații deja existente
 +* Cunoștințe medii/avansate de programare în Python
 +* Cunoștințe de documentare a unui proiect de amploare
 +* Cunoștințe de lucru în echipă, colaborare, comunicare
 +* Deprinderi de folosire avansată a unui sistem Unix
 +* Deprinderi de configurare/administrare a unui server web și a unui sistem de baze de date
 == Plan/roadmap pe termen scurt == == Plan/roadmap pe termen scurt ==
  
 +* 3-4 zile: training/acomodare cu limbajul Python, aplicațiile folosite, baze de date, proiectarea arhitecturii aplicației, proiectarea unui sistem de logging a informațiilor (probabil folosind [[http://docs.python.org/library/logging.html | Python logging]]
 +* 1 săptămână: integrarea ctags/cscope/GNU GLOBAL în Python, proiectarea și configurarea bazei de date, proiectarea cazurilor de test
 +* 1 săptămână: integrarea facilităților de căutare, aplicație de test în linia de comandă, proiectarea cazurilor de test
 +* 3-4 zile: testarea aplicației în stadiul actual (integrare sistem de source code tagging și căutare în baza de date)
 == Plan pe termen mediu (continuarea colaborării) == == Plan pe termen mediu (continuarea colaborării) ==
  
 +* Proiectarea unui fișier de configurare pentru aplicație (loc cod sursă, informații bază de date, informații despre publicare). Integrarea fișierului de configurare în aplicație
 +* Definirea unui API de comunicare cu aplicația (văzută ca un backend). Diversele interfețe de folosire (CLI, GUI, WebUI) vor fi văzute ca front-end
 +* Proiectarea și implementarea interfeței web folosite de aplicației
 +* Integrarea interfeței web cu aplicația
 +* Testarea aplicației
 +* Installer pentru aplicație (pachet)
 == Draft arhitectură (componente principale) == == Draft arhitectură (componente principale) ==
 +
 +{{ :contrib:rsoc:pylxr-architecture.png?800 |Arhitectură PyLXR}}
  
 == Resurse disponibile == == Resurse disponibile ==
  
-liste de discuții, repository-uri, wiki etc.+Vom folosi [[https://projects.rosedu.org/ | un proiect Redmine]] și repository [[http://git-scm.com/ | Git]] pentru dezvoltare, testare și planificare. Instanța Redmine va fi creată în momentul pornirii proiectului. 
 +* Pentru comunicare vom folosi o listă de discuții. Lista de discuții va fi creată în momentul pornirii proiectului. 
 +* Pentru lucru efectiv vom folosi sala EG106.
contrib/rsoc/pylxr.txt · Last modified: 2020/07/20 09:16 (external edit)