Aplicația "Pentru Comunitate" este o platformă web destinată gestionării activităților unui ONG, facilitând interacțiunea dintre administratori și voluntari/donatori.
Obiective principale:Proiectul utilizează o arhitectură Client-Server bazată pe PHP(cod prin funcții si fisiere incluse), MySQL(tabele pentru utilizatori, proiecte, donații) și CSS(pentru aspect).
session_start() pentru menținerea stării utilizatorului pe parcursul navigării.admin vs voluntar) pentru a restricționa accesul la funcțiile critice precum adăugarea, editarea sau ștergerea proiectelor.header("Location: ...") și exit() pentru redirecționări securizate după operațiuni de tip POST sau Logout.| Tabel | Rol |
|---|---|
utilizatori |
Stocarea datelor de profil, parolelor hash-uite și a rolurilor (admin/voluntar). |
proiecte |
Inventarul inițiativelor sociale, bugete și perioade de desfășurare. |
donatii |
Legătura dintre utilizatori și proiecte, înregistrând sumele și data contribuțiilor. |
Sistemul utilizează o bază de date relațională compusă din trei tabele interconectate:
utilizatori: Stochează id, nume_complet, email, parola (hash-uită) și rol.proiecte: Reține detaliile inițiativelor: titlu, descriere, data_inceput și buget.donatii: Înregistrează contribuțiile financiare (suma, data_donatie) și realizează legătura logică între utilizatori și proiecte prin chei externe.Pentru rapoartele complexe, aplicația utilizează interogări de tip JOIN pentru a corela datele din cele trei tabele.
Arhitectura este de tip Client-Server, utilizând un model modular unde logica de business este separată de prezentare prin includerea fișierelor de header/footer și funcții utilitare.
session_start().JOIN pentru corelarea datelor..txt).FPDF instanțiate prin new PDF() pentru a construi ierarhia documentului (Header, Footer, Body) și pentru a calcula automat numărul de pagini prin AliasNbPages().Prepared Statements.htmlspecialchars() și filtrare emailuri.password_hash() și redirecționări securizate după acțiuni.PHPMailer și configurarea externă din mail_config.php pentru o rată de livrare ridicată.simplexml_load_file().php://output folosind funcția fputcsv().file_put_contents) care gestionează contoare în fișiere text locale.FPDF, procesând datele din baza de date prin interogări de tip JOIN și livrând fișierul direct către browser prin metoda Output().viewport, asigurând funcționarea corectă pe diverse browsere (Chrome, Firefox, Edge) și dispozitive mobile.rand()) pentru validarea interacțiunilor umane în paginile publice.description, keywords) și a atributelor alt pentru imagini în header.php.main, article) și titluri dinamice pentru o indexare corectă.
/public_html
├── mail/ (Biblioteca PHPMailer și configurări SMTP)
├──libs/
| ├── fpdf.php (Nucleul bibliotecii de generare PDF)
| └── font/ (Conține seturile de caractere necesare pentru afișarea textului)
├── adaugare_proiect.php (Formular adăugare proiecte noi)
├── contact.php (Pagina contact cu validare/CAPTCHA)
├── dashboard.php (Panou control - lista proiecte CRUD)
├── db.php (Configurare conexiune MySQL)
├── documentatie.php (Documentația tehnică a proiectului)
├── doneaza.php (Modul procesare donații)
├── editare_proiect.php (Formular modificare proiecte existente)
├── export_proiecte.php (Export CSV Proiecte - Admin)
├── footer.php (Componentă final pagină)
├── functii.php (Logica procesare - contoare vizite)
├── header.php (Meniu navigare, SEO, Sesiuni)
├── index.php (Pagina principală cu video)
├── login.php (Sistem autentificare)
├── logout.php (Închidere sesiune utilizator)
├── raport_donatii.php (Export CSV Donații - Admin)
├── raport_pdf.php (Export PDF Donații - Admin)
├── register.php (Înregistrare voluntari noi)
├── statistici.php (Vizualizare impact, BNR, Analytics)
├── stergere_proiect.php (Procesare eliminare proiecte)
├── style.css (Design responsiv/CSS Variables)
├── contor_vizite.txt (Bază de date text pentru analytics pagini)
├── vizite.txt (Bază de date text pentru analytics general)
├── imagine_statistici.png (Element multimedia statistici)
└── logo_ong.png (Identitate vizuală)