• Type of project: Web application
  • Role: Designer and full-stack developer
  • Languages & tools: HTML, PHP, MySQL, Laravel, Composer
  • Published: 15/01/2020


I created this web application as part of a university course in database theory. This was a rather large individual project, where we (the students) had free hands to create pretty much whatever we liked, as long as it involved querying a database using raw SQL statements. I decided that I wanted to explore the Laravel framework for PHP and used it to create a social media platform.

Because of the limited resources at my disposal (being only one person working on the project and having only a few weeks to complete it), my goal was to make a simplified and somewhat different version of Twitter. The application would be targeted at writers and journalists who want to write and publish long articles instead of short tweets (which are capped at 280 characters). The users could then follow other users, and read and like their articles.

Database model

This model describes the two entity sets, Articles and Authors (users) used in my database, and the relationships between them. I implemented this design in a MySQL database using four tables (articles, is_liked_by, authors, and is_subscriber_to) and wrote raw SQL queries to ensure CRUD (Create, Read, Update, and Delete) functionality by authenticated and authorized users. Laravel offers an easy-to-use database migration through Eloquent, which would have been a lot simpler to use, but because the goal of this project was to learn database theory, I used raw SQL queries instead.

Under the hood

The application is built using PHP and the Laravel framework, which utilizes the Blade templating engine for dynamically inserting content into views. Since UI design was not an important part of the assignment, I simply integrated the Bootstrap CSS framework and used the standard Bootstrap classes as much as possible.

Learn more

If you wish to learn more about this project, please watch the video below where I present the finished project, it’s functionalities and some of the source code. To learn even more, click the button below the video to open the full case report (pdf).

View full case report