MacConnect
A full social network, built from a blank page: profiles, posts, likes, comments and messaging between users.
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.
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.
Three decisions
-
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.
-
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.
-
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.
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 demoNext project