All projects

MacConnect

A full social network, built from a blank page: profiles, posts, likes, comments and messaging between users.

Role

Developer

Period

2023 – 2025

Context

BTS SIO SLAM · Lycée Paul Sabatier

Live

Demo ↗

Code

GitHub ↗

Sign-in screen of the MacConnect application
The problem

Rebuilding a social network is mostly about modelling relationships between people.

The brief asked for a complete application for a fictional company: profiles, a feed, interactions between users, and a messaging system. Nothing exotic taken on its own, but it all has to hold together.

The real difficulty wasn’t displaying a post. It was deciding how to represent who follows whom, who is allowed to see what, and how a conversation attaches to two accounts without duplicating the messages.

The solution

A PHP application organised in MVC, without a framework: requests go through a router, controllers carry the logic, models talk to MySQL. The interface leans on HTML, CSS and Bootstrap, and the quick interactions go through AJAX.

PHPMVCMySQLAJAXBootstrapGit

Three decisions

  1. 01

    The data model before the code

    Posts, likes, comments, follows and messages all cross each other. Modelling those relationships first avoided rewriting half the queries halfway through.

  2. 02

    MVC by hand, without a framework

    The point of the exercise was to understand what a framework does for you. Writing the router and the layer separation yourself makes moving to Laravel afterwards far more legible.

  3. 03

    AJAX for the short interactions

    A like or a comment doesn’t justify reloading the whole page. Light actions go off in the background; the rest follows the classic cycle.

The result

A deployed, usable application: account creation, feed, posting, likes and comments, and messaging between users. Unit, integration and load tests were used to catch the slow queries before it went live.

What I took from it: writing yourself what a framework automates costs time once, and saves it on every project afterwards.

See the live demo

Next project

PGI Coffee Shop

Read the case study