Versione e Funzioni del Progetto Meetin

Data Analisi: 01-03-2026
Versione Progetto: 1.0.2
Stato: Production Ready

Indice

Informazioni Versione

Versione Corrente

Versione: 1.0.2
Nome Progetto: Meetin Social Network
Descrizione: Social Network in PHP - Sicuro e scalabile
Tipo: project
Linguaggio: PHP 8.2+
Database: MySQL 8
Architettura: MVC con Service Layer
URL Slug: Sistema slug aggiornato per utenti e post (URL SEO-friendly tipo /post/titolo-del-post-123 e /profile?slug=username)
Formato Immagini: Le foto vengono convertite e caricate in formato WebP (qualità 80) per ottimizzazione dimensione e caricamento

Dipendenze Principali


Sicurezza e Autenticazione

AuthService (src/Services/AuthService.php)

register - Registrazione nuovo utente
login - Autenticazione utenti
refresh - Refresh token JWT
logout - Logout utente
validateRegistrationData - Validazione dati registrazione (privata)
userExists - Verifica esistenza utente (privata)
normalizeSlug - Normalizzazione slug utente (privata)
recordFailedLogin - Registra tentativi login falliti (privata)
resetFailedLoginCount - Reset contatore login falliti (privata)

6.2 Protezione Password

Le password sono hashate con algoritmi sicuri (Argon2id) e mai memorizzate in chiaro.

Argon2id è un algoritmo di hashing sicuro e moderno, vincitore del concorso Password Hashing e attualmente raccomandato da standard di sicurezza come OWASP. È un algoritmo ibrido che combina le caratteristiche di Argon2d (resistente agli attacchi tramite GPU) e Argon2i (resistente agli attacchi basati su canali laterali), offrendo una protezione robusta contro i tentativi di violazione delle password.

JWTService (src/Services/JWTService.php)

generateAccessToken - Genera token di accesso
generateRefreshToken - Genera refresh token
validateToken - Valida token generico
validateAccessToken - Valida access token
validateRefreshToken - Valida refresh token
invalidateRefreshToken - Invalida refresh token
invalidateAllUserTokens - Invalida tutti i token utente
cleanupExpiredTokens - Pulizia token scaduti

Account Lockout (includes/account_lockout.php)

isAccountLocked - Verifica se account è bloccato
recordFailedLogin - Registra login fallito
resetFailedLoginCount - Reset contatore fallimenti
unlockAccount - Sblocca account
unlockExpiredAccounts - Sblocca account scaduti
getLockoutStats - Statistiche lockout
getLockedAccounts - Lista account bloccati
getLockoutErrorMessage - Messaggio errore lockout

Rate Limiter (includes/rate_limiter.php)

canRegister - Verifica limite registrazioni
canLogin - Verifica limite login
canRequestVerificationEmail - Verifica limite richiesta email
canVerifyToken - Verifica limite verifica token
recordRequest - Registra richiesta
getStats - Statistiche rate limiting
blockIP - Blocca IP
isBlocked - Verifica se IP è bloccato
createTables - Crea tabelle rate limiting

Gestione Utenti

UserService (src/Services/UserService.php)

getUserBySlug - Ottieni utente per slug
updateProfile - Aggiorna profilo utente
getSuggestedFriends - Ottieni amici suggeriti
getUserInterests - Ottieni interessi utente

ProfileService (src/Services/ProfileService.php)

getProfile - Ottieni profilo completo (per ID o slug)
updateField - Aggiorna singolo campo profilo
updateInterests - Aggiorna interessi utente
uploadAvatar - Upload avatar
changePassword - Cambia password

Funzioni Helper (includes/config.php)


Gestione Post

PostService (src/Services/PostService.php)

createPost - Crea nuovo post
getFeed - Ottieni feed personalizzato
getPostById - Ottieni singolo post
getUserPosts - Ottieni post utente
deletePost - Elimina post
likePost - Aggiungi like
unlikePost - Rimuovi like
addComment - Commenta post
getPostComments - Ottieni commenti post
searchByHashtag - Ricerca post per hashtag

Funzioni Helper Post (includes/post_slug_functions.php)

Funzioni Frontend Post (main.js, index.php, profile.php)

openShareMenu - Apri menu condivisione
closeShareMenu - Chiudi menu condivisione
shareToFacebookSDK - Condividi su Facebook
shareToTwitter - Condividi su Twitter
copyPostLink - Copia link post
savePost - Salva post (frontend)

Nota: Estrazione hashtag in create_post.php; Condividi/Salva post gestiti via frontend. Le immagini dei post vengono convertite e salvate in formato WebP.


Messaggistica

MessageService (src/Services/MessageService.php)

sendMessage - Invia messaggio (con supporto allegati)
getUserConversations - Ottieni conversazioni utente
getConversationMessages - Ottieni messaggi conversazione
markMessagesAsRead - Marca messaggi come letti
getUnreadCount - Conta messaggi non letti
createConversation - Crea nuova conversazione

Funzioni Helper Messaggistica (includes/config.php)

Funzioni JavaScript Chat


Notifiche

NotificationService (src/Services/NotificationService.php)

createNotification - Crea notifica
getUserNotifications - Ottieni notifiche utente
markNotificationAsRead - Marca notifica come letta
markAllNotificationsAsRead - Marca tutte come lette
createConversation - Crea conversazione (chat)
sendMessage - Invia messaggio (chat)
getConversationMessages - Messaggi conversazione
markMessagesAsRead - Marca messaggi letti
getUserConversations - Conversazioni utente
sendFriendRequest - Invia richiesta amicizia
respondToFriendRequest - Rispondi richiesta amicizia
getPendingFriendRequests - Richieste amicizia in sospeso
getNotificationStats - Statistiche notifiche

Funzioni Helper Notifiche (includes/config.php)

Funzioni JavaScript Notifiche (includes/header.php)


Amicizie e Follow

FriendshipService (src/Services/FriendshipService.php)

sendFriendRequest - Invia richiesta amicizia
acceptFriendRequest - Accetta richiesta amicizia
rejectFriendRequest - Rifiuta richiesta amicizia
removeFriend - Rimuovi amico
followUser - Segui utente
unfollowUser - Smetti di seguire
getFriends - Ottieni amici
getPendingRequests - Ottieni richieste in sospeso
getFollowers - Ottieni follower
getFollowing - Ottieni following
areFriends - Verifica se sono amici
isFollowing - Verifica se sta seguendo
getFriendshipStats - Statistiche amicizie

Funzioni JavaScript Amicizie


Ricerca

SearchService (src/Services/SearchService.php)

search - Ricerca completa (utenti, post, hashtag)
searchUsers - Ricerca utenti
searchPosts - Ricerca post
searchHashtags - Ricerca hashtag
getSearchSuggestions - Ottieni suggerimenti ricerca
getSearchHistory - Ottieni cronologia ricerca
getSearchFilters - Filtri ricerca disponibili
getUserSearchPreferences - Preferenze ricerca utente
updateUserSearchPreferences - Aggiorna preferenze
searchByLocation - Ricerca per geolocalizzazione
getTrendingHashtags - Hashtag in tendenza

Analytics

AnalyticsService (src/Services/AnalyticsService.php)

trackEvent - Traccia evento
updateUserMetrics - Aggiorna metriche utente
updateContentMetrics - Aggiorna metriche contenuto
trackApiPerformance - Traccia performance API
getDashboardWidgets - Widget dashboard
getWidgetData - Dati widget
getAutomatedReports - Report automatici
getGeneratedReports - Report generati
getAnalyticsAlerts - Alert analytics
generateCustomReport - Report personalizzato

AnalyticsController (src/Controllers/AnalyticsController.php)


Email

EmailService (includes/email_service.php)

isEnabled - Verifica se email è abilitata
sendVerificationEmail - Invia email verifica
sendNotification - Invia notifica email
sendPasswordResetEmail - Invia email reset password
sendSimpleNotification - Invia notifica semplice

SocialEmailService (includes/social_email_service.php)


Logging

LoggingService (src/Services/LoggingService.php)

emergency - Log emergenza
alert - Log alert
critical - Log critico
error - Log errore
warning - Log warning
notice - Log notice
info - Log info
debug - Log debug
logUserAction - Log azione utente
logPerformance - Log performance
logSystemError - Log errore sistema
getLogs - Ottieni log
cleanOldLogs - Pulizia log vecchi

Utility e Helper

Output Encoder (includes/output_encoder.php)

Input Validator (includes/input_validator.php)

File Upload Validator (includes/file_upload_validator.php)

Menzioni (includes/mentions_functions.php)

WordFilterService (src/Services/WordFilterService.php)

filterContent - Filtra contenuto parole vietate
containsForbiddenWords - Verifica parole vietate
getAllFilters - Lista filtri
addFilter - Aggiungi filtro
removeFilter - Rimuovi filtro
updateFilter - Aggiorna filtro

ErrorHandlingService (src/Services/ErrorHandlingService.php)


Core e Architettura


Controller


Statistiche Progetto

File PHP

  • File PHP totali: ~290
  • Services: 20 classi
  • Controllers: 6 controller

Funzioni Totali

  • Funzioni PHP: ~300+ funzioni/metodi
  • Funzioni JavaScript: ~100+ funzioni
  • Funzioni Helper: ~50+ funzioni

Database

  • Tabelle: 52 tabelle

API Endpoints

  • Endpoints totali: 80+ endpoint
  • Categorie: 8 categorie principali

Versioni e Aggiornamenti

Versione 1.0.2 (Corrente)