Informatii generale
- Categorie: Web
- Judetul: București Ilfov
- Surse: GitHub - Petru0306/GLink: proiect infoeducatie
- Homepage: https://glink-idie.onrender.com/
Descriere
GreenLink este o platformă digitală dedicată sustenabilității, care îmbină în mod inovator activitățile ecologice cu dinamica și atractivitatea rețelelor sociale. Obiectivul principal al site-ului este de a încuraja utilizatorii să adopte un stil de viață verde printr-o experiență interactivă, gamificată și personalizabilă.
Pe GreenLink, utilizatorii pot obține puncte și avansa în niveluri prin implicarea activă în acțiuni sustenabile: parcurgerea de lecții educaționale, rezolvarea de provocări ecologice, vânzarea sau achiziționarea de produse second-hand printr-un marketplace dedicat, explorarea hărții punctelor de reciclare, calcularea amprentei personale de carbon și multe altele. Fiecare acțiune este înregistrată într-un profil digital unic, unde utilizatorii își pot afișa progresul, lecțiile parcurse, provocările finalizate și produsele vândute.
Inspirat de funcționalitatea și estetica platformelor de social media, GreenLink oferă utilizatorilor nu doar un spațiu de învățare și acțiune, ci și unul de auto-reprezentare digitală. Într-o eră în care imaginea online este esențială, GreenLink propune o nouă formă de identitate socială – una care reflectă valori, impact și responsabilitate față de mediu.
Prin combinarea tuturor acestor funcționalități – educație, acțiune, recompensare și reprezentare publică – GreenLink se diferențiază clar de orice alt competitor de pe piață, oferind o platformă cu un nivel de dinamism și implicare unic, construit în jurul unui concept social media cu sens. Este mai mult decât un instrument digital – este un nou mod de a fi prezent în lume.
Tehnologii
Descriere Tehnică – GreenLink
Arhitectură Tehnică
Stack Tehnologic:
Backend: Spring Boot 3.2.3 (Java 17)
Bază de date: PostgreSQL, gestionată prin JPA/Hibernate
Frontend: Thymeleaf (template engine), CSS personalizat și JavaScript
Securitate: Spring Security cu OAuth2 (integrare Google & GitHub)
Plăți: Integrare Stripe pentru procesarea tranzacțiilor(developing state)
Real-time: WebSocket pentru chat și notificări live
Deployment: Docker + Render.com
Build Tool: Maven
Structura Aplicației
- Model de Date (JPA Entities)
User: model pentru utilizatori, cu sistem de puncte și niveluri
Product: produse eco-friendly, clasificate pe categorii (BIO, COSMETICS, RECYCLED)
Challenge: provocări gamificate cu sistem de progres
Course: cursuri educaționale sustenabile
Quiz & Question: evaluare interactivă
Message & Conversation: sistem de mesagerie între utilizatori
PointEvent: înregistrarea acțiunilor care acordă puncte
- Controllere (MVC)
HomeController – pagină principală și navigație
MarketplaceController – gestionarea produselor
ChallengeController – provocări și progres
EducationController – cursuri și quiz-uri
MessageController – chat între utilizatori
PaymentController – integrare și procesare plăți (Stripe)(developing state)
WebSocketController – notificări și mesaje în timp real
- Servicii (Business Logic)
UserService – logica legată de utilizatori
ProductService – gestionarea produselor
ChallengeService – logica pentru provocări
PointsService – sistemul de recompense
PaymentService – integrarea cu Stripe(developing state)
MessageService – comunicarea între utilizatori
- Repozitorii (Data Access)
Repozitorii JPA pentru fiecare entitate
Query-uri personalizate pentru statistici, leaderboard și rapoarte
Funcționalități Principale
- Autentificare & Autorizare
Autentificare cu email și parolă
Integrare OAuth2 (Google, GitHub)(developing state pentru Google)
Sisteme de roluri: USER, ADMIN
Handlers personalizate pentru login/logout și acces restricționat
- Marketplace Eco-Friendly
Listare și filtrare produse pe categorii
Funcționalitate de favorite și negocieri directe
Upload imagini produse
Procesare plăți cu Stripe(developing state)
Istoric de cumpărări și vânzări
- Sistem Gamificat
Provocări: DEFAULT, AMBASSADOR, MAESTER etc.
Sistem de puncte și niveluri (ex: 1–50 = Level 1, 51–150 = Level 2 etc.)
Insigne (badges) pentru realizări importante
- Educație pentru Sustenabilitate
Cursuri interactive
Quiz-uri cu feedback automat
Tracking al progresului educațional
Recompense prin puncte pentru finalizarea cursurilor
- Funcționalități Sociale
Sistem de prietenii
Mesagerie în timp real (WebSocket)
Negocieri directe pentru produse
Leaderboard după nivel și puncte
- Calculator Amprentă de Carbon
Estimarea amprentei de carbon pe baza activităților
Recomandări personalizate pentru reducerea impactului
Deployment (Render.com)
Bază de date: PostgreSQL provisionat automat
Serviciu web: rulare în container Docker
Stocare fișiere: persistentă pentru imaginile uploadate
Environment Variables: gestionate în panoul de configurare
Caracteristici Tehnice Avansate
Internationalizare (i18n)
Suport complet pentru limbile română și engleză
messages_*.properties + LocaleResolver configurat
Switcher de limbă persistent în navbar
Gestionare Fișiere
Upload imagini cu validare MIME type
Salvare locală cu mecanism de backup
Comunicare Real-Time
WebSocket pentru mesaje și notificări instant
Afișare status live al utilizatorilor
Securitate
Protecție CSRF
Parole criptate (BCrypt)
Validare input utilizator
Control acces pe roluri (RBAC)
Prevenire atacuri: XSS, SQL Injection, CSRF
Managementul Bazei de Date
Flyway (migrări automate – dezactivate în producție)
Inițializare schemă și încărcare date exemplu
Indexare optimizată pentru performanță
Monitorizare & Logging
Logging detaliat pentru debug și audit
Logging pentru interogări SQL și evenimente de securitate
Instrumente pentru monitorizarea performanței aplicației
Scalabilitate
Design stateless pentru microservicii
Pooling conexiuni DB
Strategie de caching
Pregătită pentru scalare orizontală
Cerinte sistem
Cerinte sistem
Pentru utilizarea platformei:
Browser modern (Chrome, Firefox, etc)
Conexiune la internet
Realizatori
Mihai-Petru Panait
- Scoala: CNI “TUDOR VIANU”
- Clasa: 11
- Judet: București
- Oras: Bucuresti
Andrei Batea
- Scoala: Colegiul Național de Informatică “Tudor Vianu”
- Clasa: 11
- Judet: Ilfov
- Oras: Balotești