Salve a tutti,
Dopo aver chiesto il permesso a #Fottemberg (non ho la più pallida idea di come sia possibile taggare un utente in questo forum) ho deciso di postare un walkthrough riguardo la costruzione di un social network che nei prossimi mesi andrò ad integrare in un'applicazione in procinto di uscire.
Vista la vastità dell'argomento il tutto sarà diviso in diversi post dove cercherò di spiegare passo passo cosa mi passa per la testa (cosa assai complessa, auguri a tutti voi).
Alcune parti non verranno affrontate nella propria totalità (ad esempio la text analysis) o proprio non verranno affrontate (image recognition) non per mia volontà ma per imposizione dei miei capi.
Ultima nota: il backend si appoggia su un'architettura a micro servizi ma farò in modo di creare dei dummy service in modo che anche voi siate in grado di poter seguire questo walkthrough senza che vi dobbiate scornare nell'implementazione di servizi di cui non conoscete la logica.
Detto questo, partiamo.
Il progetto in questione altro non è che la creazione di una piattaforma riguardante il mondo della movida notturna(night life per chi si vuol dare arie). Al momento questa applicazione (non ancora pubblicata in quanto vi è ancora molto lavoro da fare) permette la ricerca di eventi e l'acquisto di biglietti per l'entrata generica (GA) o VIP (tavoli). E' inoltre in programma la possibilità di acquistare drink, tavoli e pass vari una volta entrati nel locale ma questo è un altro discorso (per meglio dire: son altri micro servizi che non andremo a vedere).
Ma solamente questi servizi, a modo di vedere del CXO e parte del team, non sono sufficientemente interessanti e allora si è deciso di creare questa sorta di social network dove l'utente finale potrà collegarsi con gli amici, scrivere commenti, postare foto, recensire eventi e quant'altro.
Come avete già ben capito questo social ha una doppia funzionalità: da una parte invogliare l'utente a utilizzare di più l'applicazione e, dall'altra, tramite i dati raccolti poter meglio consigliare l'utente riguardo gli eventi che potrebbero maggiormente interessargli sia tramite ricerca sia tramite pubblicità mirata (una sorta di Adwords molto spartano).
Ma ho parlato troppo senza mostrare nulla di interessante quindi bando alle ciance e iniziamo a vedere qualcosa di più interessante.
Partiamo dalle tecnologie: l'architettura sarà a micro servizi con base docker (se non l'avete installato non vi preoccupate), il reverse proxy/load balancer utilizzato sarà nginx (oltre ad essere molto efficiente è già stati integrato nell'architettura quindi son forzato ad utilizzarlo), i principali linguaggi di programmazione utilizzati saranno Go e {Python/c++}, come base dati verrà utilizzato postgresql e due istanze di redis (una per gestione di code e l'altra per caching). Probabilmente verrà fatto qualche accenno ai database a grafo ma più avanti (una graph api non è richiesta pertanto al momento eviterei di mettere troppa carne sul fuoco).
Questo è un breve incipit, di Venerdì spero di riuscire a scrivere un secondo post riguardante autenticazione/autorizzazione utenti e iniziare a imbastire qualcosa riguardo le richieste di amicizia.
Kind regards,
T.
How to: Social Network
- Fottemberg
- Messaggi: 19398
- Iscritto il: martedì 29 novembre 2011, 22:52
Re: How to: Social Network
Seguo con molto interesse.
PC: CoolerMaster MasterBox Q300P, AMD Ryzen 7 5800X, Thermalright Peerless Assassin 120 SE, GIGABYTE B550M AORUS ELITE, 2x32GB Patriot Viper DDR4-3600, Asus Dual RX6650XT 8GB, SSD Toshiba RC500 512GB, SSD Lexar NM790 2TB, CoolerMaster V650 Gold, Windows 11 Home