(Student) rental house management platform

As my longest running project, the student rental house management platform has grown from a couple of pages to a portal that is still useful for, in this case my father, to manage his student house with 8 rooms. In this post I want to discuss the features, but also the components it’s built of.

The features (aka modules)

Login screen

Nothing exciting here. Every portal needs a login screen. What’s important is that not only the owner can log in, but also the people renting.

Cleaning module

In this house, there’s a shared responsibility to keep the place clean. Every week someone else keeps an eye on the cleanliness and the trash.

This list is created manually. A calendar picker will help you define each week and allows you to define who’s responsible. If it’s a holiday week, everyone who is there shares the responsibility. Once the list is completed, everyone has access to it, but also the right people will receive an email on Sunday evenings as a reminder.

Consumption module

The biggest module of them all: Consumption logging. Having insight in water, electricity and gas consumption allows to look for ways to reduce it. It will also indicate leaking taps or malfunctioning electrical equipment. All of the meter measurements are logged manually, which in this case is 8x electricity per room, common electricity, gas and water. These can be logged either through the web page, a prototype android app or an attempt at a mobile web app.

The consumption of 1 room. The orange line is the measurement, the blue line is the calculated weekly consumption. The brown line is the total average, the green line is an agreed maximum.

Water, gas and electricity use the same code as the rooms. These numbers are accessible to all tenants.

A quick overview of the electricity consumption for each room. This allows to spot problem areas (we’ve had a malfunctioning desktop computer before…)

User management module

User management is twofold. It authorities people to access the right sections and data, but users are also assigned to rooms (and years) to display them correctly in the cleaning module. There are users, groups (grouping users & allowing permissions) and room assignments (which are done per year).

Public website management module

A more recent feature: I had to manually update the code of the publicly accessible website showing all the (available) rooms. That’s a bit cumbersome, so I’ve linked the 2 pages and added a database table where you can manage some of the parameters. Like this my father is free to change the availability of the room, or update the pricing.

There’s no rocket science on this portal, but building this site did make me discover how challenging it is to build a usable piece of software.

The internals

The server is running PHP and a MySQL database. I’ve used Code Igniter as a framework (and also the first time I got in touch with proper MVC to keep things clean). Sadly, Code Igniter itself doesn’t come with a user (auth) library, but Flexi Auth to the rescue! The last library was jQplot  to make the graphs (together with some generic jquery to improve user experience). I’m pretty sure there are better javascript graphing libraries out there, but I don’t want to rewrite my code.

A crontab is used to send out the emails on Sunday evenings and when my hosting provider implemented Let’s Encrypt, I’ve immediately implemented that HTTPS goodness.

Some future improvements:

  • Automatic reading of meters (will require electronics)
  • A proper mobile solution. The current ones aren’t that great.
  • A document management system (contracts, proof of enrollment…) to go paperless. Maybe an interface to the town hall (start with email)
  • A communication system

The code will remain closed source for now. Maybe in the future there might be commercial interest, and I believe this platform can really provide added value! If you’d be interested in using this platform, feel free to get in touch (info@[websitename.be])

Leave a Reply

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

Subscribe now