Greenlink - Web - București Ilfov - Lucrari 2025 Nationala

Informatii generale

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

  1. 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

  1. 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

  1. 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

  1. Repozitorii (Data Access)
    Repozitorii JPA pentru fiecare entitate

Query-uri personalizate pentru statistici, leaderboard și rapoarte

Funcționalități Principale

  1. 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

  1. 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

  1. 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

  1. Educație pentru Sustenabilitate
    Cursuri interactive

Quiz-uri cu feedback automat

Tracking al progresului educațional

Recompense prin puncte pentru finalizarea cursurilor

  1. Funcționalități Sociale
    Sistem de prietenii

Mesagerie în timp real (WebSocket)

Negocieri directe pentru produse

Leaderboard după nivel și puncte

  1. 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

Screenshots