First project as a contractor – Tenant Management System in PHP MySQL

·

The company registration for Dida Tech is on going. The accountant is sorting out all the requirements for registration but got delayed because she went to France for a vacation with her family. I don’t mind at all. Good for her. We can just continue with the registration when she comes back.

Just for a little context, I’m still employed. I still work at my current job. I just figured I might start looking for clients now if I want to jump ship in the future. And I found my first client. The very first person who took the leap to work with me.

About the capstone project – Tenant Management System

Basically, it’s a capstone project for college. The problem was that, the client is already working and doesn’t have the time to work on his capstone. He just wants to finish school and continue minding his job.

The project is about a Tenant management system. My job is to develop this app and do a code walkthrough of it so he can do the final defense with confidence. This is like doing a KT (knowledge transfer) when you’re about to leave a job.

The app should help you manage your tenants for your apartments. A couple of features this app includes:

  • Authentication and authorization
  • Manage tenant records
  • Notify tenant of upcoming rent by email (or text, but client have no funds for SMS notifications)
  • Manage and handle payment of tenants
  • Record of invoices and payments
  • Analytics and tracking of paid and unpaid rents
  • Automatic penalties for overdue rents
  • Tenant communications, notifications and announcements

Once I got the downpayment I started coding the project.

The above picture is a screenshot of the actual homepage.

The above picture is what the tenant dashboard looks like. All they need is in this dashboard page.

And lastly, above image is what the admin will see.

I am pretty happy on how it is turning out. I developed my own ORM in PHP because I don’t want to use Laravel. I know that’s what others are using and it’s fast to develop. But I think it’s an overkill.

I never thought that I’ll pick up PHP again. And there’s a lot of new features in the language that I like. Especially the type system. Also, I’m using a modern editor now and it helps with the developer experience. So I’m liking developing this app.

public static function where(array $params, string $operator = 'AND'): array
    {
        $conn = self::connectDb();

        $query = self::createWhereQuery($params, $operator);

        $stmt = $conn->prepare($query);

        $stmt->execute($params);

        $results = $stmt->fetchAll();

        if (empty($results)) return [];

        return array_map(function ($invoice) {
            return new static($invoice);
        }, $results);
    }

Look the sample code above. PHP has types!

On a personal note @ work: Getting Promoted to Tech Lead

At work, I will be promoted to an Engineering Technical Lead or a Tech Lead come February. I’ll be leading a small team now. And it will make my departure from a being an employee a lot harder when it’s time to leave. And probably be a lot more work now that I have two responsibilities to take care of. Dida Tech and being a Tech Lead.

It will be one hell of a ride.

Regards,

Jeff

Leave a Reply

Your email address will not be published. Required fields are marked *

About

I work as a software engineer in the fintech space. I’m trying to build a company called Dida Tech on the side. Join me on my journey.