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:32]
10.38.236.130
contrib:rsoc:pylxr [2020/07/20 09:16] (current)
Line 1: Line 1:
-= PyLXR = +====== PyLXR =====
-== Nume și descriere proiect ==+===== Nume și descriere proiect =====
  
 PyLXR este o aplicație care oferă posibilitatea navigării codului printr-o interfață web. Aplicația este o reimplementare [[http://sourceforge.net/projects/lxr/ | LXR]] sau [[http://lxr.linux.no/ | lxrng]] dar scrisă în Python. Aplicațiile actuale scrise în Perl sunt dificil de înțeles și configurat. Considerăm că un limbaj precum Python poate oferi un timp de dezvoltare rapid și o mentenanță facilă a codului. PyLXR este o aplicație care oferă posibilitatea navigării codului printr-o interfață web. Aplicația este o reimplementare [[http://sourceforge.net/projects/lxr/ | LXR]] sau [[http://lxr.linux.no/ | lxrng]] dar scrisă în Python. Aplicațiile actuale scrise în Perl sunt dificil de înțeles și configurat. Considerăm că un limbaj precum Python poate oferi un timp de dezvoltare rapid și o mentenanță facilă a codului.
 +===== Categorie aplicație =====
  
-== Categorie aplicație ==+  *  Software engineering (parsing, căutare, baze de date, interfață web)
  
-* Web/embedded/low-level programming/etc.+==== Aplicații similare ====
  
-== Obiective ==+  *  [[http://sourceforge.net/projects/lxr/ | LXR]] 
 +  *  [[http://lxr.linux.no/ | lxrng]] 
 +  *  [[http://www.gnu.org/software/global/ | GNU GLOBAL]] 
 +===== Obiective =====
  
-== Grup țintă ==+  *  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ă =====
  
-== Limbaje de programare/biblioteci/aplicații/framework-uri folosite ==+  *  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 =====
  
-== Cerințe necesare ==+  *  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 recomandate ==+  *  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 =====
  
-== Cunoștințe/abilități dobândite ==+  *  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 =====
  
-== Plan/roadmap pe termen scurt ==+  *  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 pe termen mediu (continuarea colaborării) ==+  *  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) =====
  
-== Draft arhitectură (componente principale) ==+  *  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) =====
  
-== Resurse disponibile ==+{{ :contrib:rsoc:pylxr-architecture.png?800 |Arhitectură PyLXR}}
  
-liste de discuții, repository-uri, wiki etc.+===== Resurse disponibile ===== 
 + 
 +   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.1274099536.txt.gz · Last modified: 2010/05/17 15:32 by 10.38.236.130