Journey

My First Project: A Used Car Sales System for SPM

Where it all started: the CRUD web system I built as a secondary school student, what it taught me, and what I would do differently today.

Tuan Mifzal Fawwaz

Tuan Mifzal Fawwaz

CS (Software Development) Student, UniSZA

Mar 14, 2024 5 min read
#FirstProject #PHP #MySQL #CRUD #Journey

2020: INSERT INTO cars (model, price) VALUES (...)

TL;DR

In 2020, as a personal SPM project, I built a web-based Used Car Sales Management System using HTML, CSS, PHP and MySQL. It was simple, but it introduced me to CRUD operations, relational databases and web development, and it is the reason I chose Computer Science.

Every developer has a first project that sparked everything. Mine was a Used Car Sales Management System that I built during secondary school, around the time I was preparing for SPM.

Looking back at it now, as a final-year Computer Science student, is both a little embarrassing and very motivating. This post is about what I built, what I learned, and what I would change if I built it again today.

01 Where It All Started

I wanted to build something real, not just follow tutorials. A used car dealer needs to keep track of vehicles for sale and the customers interested in them, which felt like a practical problem I could solve with a simple web system.

I had very little experience at the time. Most of the project was learning as I went: how a web page talks to a server, how data is stored in a database, and why things break when one small detail is wrong.

02 What I Built

The system let a user manage vehicle listings and customer information through a web interface:

Vehicles
  • Add new cars
  • View & search listings
  • Update & delete
Customers
  • Record customer details
  • Edit information
  • Remove records
Stack
  • HTML & CSS
  • PHP
  • MySQL

In other words, it was a classic CRUD application: Create, Read, Update and Delete. Simple, but it covered the core of almost every data-driven system I have built since.

03 What It Taught Me

  • How the web works: forms send data to PHP, PHP talks to MySQL, and the result is turned back into a page.
  • Relational databases: designing tables, choosing keys and writing SQL queries.
  • Debugging: reading error messages carefully and testing one change at a time.
  • Persistence: finishing a project, even when it is not perfect, teaches more than starting many.

The real outcome

More than any single skill, this project showed me that I enjoy turning a real problem into working software. That is why I chose to study Computer Science (Software Development).

04 What I Would Do Differently Today

With what I know now, there are several things I would change if I rebuilt the system:

  • Security first: use prepared statements to prevent SQL injection and hash passwords properly.
  • Plan before coding: draw an ERD and gather requirements before touching the code, as I learned in Software Engineering.
  • Separate concerns: keep database logic, business logic and HTML apart instead of mixing them in one file.
  • Use version control: track changes with Git and GitHub so mistakes are easy to undo.
  • Responsive design: use a framework like Bootstrap so the system works on phones too.
  • Test properly: write test cases for each feature instead of only clicking around.

Here is a small example of how I would write a query today, compared with how I probably wrote it back then:

then_vs_now.php
// Then: user input placed directly into the SQL (unsafe)
$sql = "SELECT * FROM cars WHERE model = '" . $_GET['model'] . "'";

// Now: a prepared statement keeps data and SQL separate
$stmt = $conn->prepare('SELECT * FROM cars WHERE model = ?');
$stmt->bind_param('s', $_GET['model']);
$stmt->execute();
$result = $stmt->get_result();

05 From SPM to Final Year

Start small, but start

A simple CRUD system led to a restaurant system, a SOA food delivery platform and a machine learning FYP.

Theory makes practice better

University courses explained why some of my early approaches worked and why others did not.

Revisit old work

Looking back at old code is one of the best ways to see how much you have grown.

Keep building

Every project, however small, adds a skill that the next one builds on.

Thanks for Reading

If you are a student thinking about building your first project, my advice is simple: pick a real problem, keep it small, and finish it. Feel free to reach out if you'd like to chat.

Get In Touch
Tags: #FirstProject #PHP #MySQL #CRUD #Journey
Mifzal Fawwaz

Tuan Mifzal Fawwaz

CS (Software Development) Student · UniSZA

I'm a final-year Computer Science student at UniSZA who builds web applications with PHP, MySQL and machine learning. I'm currently completing my industrial training at Tricubesncr JV Sdn. Bhd. (September 2026 – March 2027).

// have a question or idea?

Let's Build Something Together

Want to talk about this project or have a question? I'm always happy to connect.