Rent Check is an application that serves as a convenient checklist designed to simplify your apartment rental experience.
The app streamlines apartment choice by categorizing check items, allowing you to create groups within each flat based on necessity (must-have and optional), room-specific criteria (bathroom and bedroom), and any other preferences you desire.
In most cases, you confidently assess requirements, checking items like “not ground floor” for a second-floor apartment. In situations of uncertainty, such as when considering pets allowed and a landlord permits cats but is unsure about dogs, Rent Check introduces a meh option.
After inspecting all the apartments and marking your preferences, you’ll have a consolidated list of potential flats, conveniently organized based on your specific criteria. This makes comparing apartments and reaching a final decision a simplified process.
To register and log in, enter your username and password.
Note that currently, our app supports only one authentication method (refer to Bearer Authentication for details).
Click the +
button to add a flat. Provide the mandatory address and, optionally, a title and description. Upon completion, you’ll be redirected to a dedicated page for the created flat.
Click the +
button to add a group. Next, either assign a new unique title or select from existing groups – those you currently have or had across all flats. As a result, a new empty group is created.
Click the +
button to the right of a group title to add an item to the specific group. Likewise for groups, provide either a new unique title or select an existing item. Thus, a new item is added to the group.
There are four statuses you can assign to an item:
unset
, no color: Haven’t been checked yet.not ok
, red color: Doesn’t meet the requirement.ok
, green color: Meets the requirement.meh
, yellow color: Uncertain if it meets the requirement or not.To change the status, simply tap on the item.
Swipe an item to delete it from the group.
To delete a group, click the 🗑️ button at the right.
To delete a flat, long tap on it
This version represents an MVP, with more exciting features coming!
Check the Rent Check Project to explore opened issues and stay tuned for updates 💙
For technical details regarding the backend, please refer to the corresponding section. For the frontend, check out the corresponding repository.
The application follows a layered architecture:
The code is implemented in Go, using the following stack:
The app employs token (Bearer) authorization for secure user access. Here’s how it works:
Integration tests have been implemented for the repository layer. Testcontainers is utilized to set up a Docker container with a test database.
The current test coverage averages around 80% for flat, group, item, and user repositories.
Docker serves as the deployment solution, here are the key characteristics of its configuration:
db
for PostgreSQL and api
for the applicationdb
and api
servicesapi
service