Firespark: Design and Development of a Message-Sharing Social Network

This work aims to present the steps required to build a modern open-source social network including features such as users, followers, and sending posts and comments, with a simple client-server architecture and design to allow for easy maintainability and extensibility to any feature desired. The o...

Descripción completa

Detalles Bibliográficos
Autor: Drăghici, Sorin
Tipo de recurso: tesis de maestría
Fecha de publicación:2022
País:España
Institución:Universidad Complutense de Madrid (UCM)
Repositorio:Docta Complutense
Idioma:inglés
OAI Identifier:oai:docta.ucm.es:20.500.14352/73912
Acceso en línea:https://hdl.handle.net/20.500.14352/73912
Access Level:acceso abierto
Palabra clave:004(043.3)
Social network
API
Relational database
SQL
Android
PHP
Python
GCP
VMs
Louvain.
Red social
Bases relacionales
Informática (Informática)
1203.17 Informática
Descripción
Sumario:This work aims to present the steps required to build a modern open-source social network including features such as users, followers, and sending posts and comments, with a simple client-server architecture and design to allow for easy maintainability and extensibility to any feature desired. The objective is to also demonstrate how modern web services help with turning what two decades ago were considered to be complex hosting tasks, into almost trivial tasks requiring little to no effort from the developer’s point of view. To develop and host our social network, a Google Cloud Platform virtual machine has been selected, along with a relational database for its data management. The thesis discusses all aspects from planning, methodology, gathering requirements, server and database design and coding, along with an Android client design and implementation to serve as a user gateway to the network. An extra exercise is performed on top of the built network to demonstrate (I) the concept of community detection using the Louvain method, and (II) how any developer can make use of the network’s interface to develop personal client applications.