Inspiration

As students who have known each other since the start of our studies, we moved in together and began using a popular flatshare app widely used in Germany. We noticed that the premium version allowed users to upload receipts, and we initially assumed this feature would enable scanning items and assigning them to specific individuals to simplify tracking expenses. However, we discovered that the feature only allowed us to upload and view pictures of the receipts without any additional functionality.

This realization led us to experiment with developing a basic scanning version ourselves, and we decided to build an app centered around this idea. Additionally, we observed that many of the premium features in the existing app, such as adding descriptions to chores and sorting lists, seemed more like basic functionalities rather than true premium offerings. This insight further inspired us to create an app that provides genuinely valuable features for managing flatshares.

What it does

We’ve developed the app to address four major use cases:

Chores

  • Recurring Tasks: Create chores that recur daily, weekly, or at custom intervals, with automated reminders set for specific times on the due date.
  • Manual Reminders: Notify assignees if they forget to complete a chore manually.
  • Chore History: View a history of completed and pending chores for increased transparency.
  • Chore Rejection: Reject incomplete chores and provide feedback on what needs to be done if a task isn’t completed correctly.
  • Fairness Score: Track and evaluate how fairly the work is distributed among flatshare members.

Finances

  • Receipt Management: Create and scan receipts manually or automatically.
  • Expense Allocation: Specify who paid for what and designate standard recipients.
  • Product-Specific Adjustments: Easily reassign products to different recipients if they don’t match the standard allocation.
  • Optimal Settlement: Calculate the most efficient way to settle expenses, minimizing the total amount of money and transactions required.
  • Activity Notifications: Receive notifications when a receipt is created, modified, deleted, or when a bill is paid.

Shopping List

  • Multiple Lists: Create and manage separate shopping lists for different purposes, such as various stores or categories like groceries and hardware.
  • Item Management: Add items to the shopping list, mark them as purchased, and deactivate them when no longer needed.
  • Search Functionality: Search for items you’ve previously used to avoid recreating entries.

Recipes

  • Recipe Creation: Create recipes with detailed descriptions and ingredient lists.
  • Ingredient Tracking: Specify whether ingredients need to be purchased regularly or occasionally (e.g., salt).
  • Shopping List Integration: Add needed ingredients to your shopping list, and if they’re already on the list, update the quantity (e.g., 200g + 400g of meat).

How we built it

We developed the app using Flutter, enabling cross-platform support for both Android and iOS. The backend was built with TypeScript and an Express server. To enhance functionality, we integrated various services, including Firebase for notifications, Sentry for error tracking and RevenueCat for managing in-app purchases.

This project was a passion endeavor that we worked on during our free time from university. We also thoroughly tested the app by using it ourselves to ensure it met our standards and delivered a great user experience.

Challenges we ran into

As we moved forward with the development of the app, it became clear that ensuring maintainability was crucial. We addressed this by implementing rigorous code quality measures, including linters, structured Git workflows, and a four-layer clean code architecture.

One significant challenge we encountered was navigating legal requirements such as Terms of Service (TOS) and Privacy Policies, which were new to us. However, by leveraging various services, we successfully managed these complexities.

Accomplishments that we're proud of

  • 13 active users we dont know from germany and switzerland
  • Bringing the app and the subscriptions through the AppStore review
  • To making it so far from a side Project to and nice and clean app with many functionalities with 2 people

What we learned

Through this project, we gained a deep appreciation for the effort required to maintain an app and manage technical debt. We learned that having a well-maintained codebase is crucial when implementing changes or fixing bugs.

Additionally, we discovered the complexities involved in handling in-app purchases on our own. This experience highlighted the value of leveraging services like RevenueCat, which significantly simplifies the management of in-app purchases and eases our workload.

What's next for FlatHero

Data Import Feature: We plan to introduce functionality that allows users to import data from other apps into FlatHero, simplifying the migration process and enhancing user convenience.

Garbage Calendar Integration: In Germany, residents have specific garbage collection schedules and must place trash cans by the curb on collection days. To help users stay on top of this, we aim to enable the import of local garbage calendars into the app, providing timely reminders for trash collection.

Apartment Management Enhancements: We're considering adding a feature that allows apartments to be grouped into houses. This will enable users to set up rotating schedules for garbage duties, ensuring that each apartment takes its turn.

Milestone Achievement: We are eagerly anticipating reaching the next milestone for our first app purchase, which will mark a significant step forward for FlatHero.

Built With

Share this project:

Updates