ES Get in touch arrow_forward
apps Switch project expand_more
hub Part of an e-commerce SPL

Hortet

Freelance · e-commerce Android + iOS 2023 Retired
Hortet storefront showing the fresh-produce catalogue and basket
01

The Product

Hortet is an ordering app for a local fruit and vegetable store based in Reus, built with a modern approach to elevate the customer experience.

02

Features

The solution was adapted closely to the store's own processes, translating them into a digital product. Its main features include:

Authentication and Guest Access

The app offers several ways to sign in, including email-and-password authentication and Google and Apple Sign-In. Guest access lets users browse the catalog without registering first; this mode is restricted, and an account is required to purchase.

Categories and Products

Because every item the store sells fits this structure, the catalog is organized into categories and products, which can be browsed manually or found quickly through the search bar on the Home screen.

Each product page shows its details, including availability and how the product is sold. Fruit and vegetables are sold by weight, priced per kilogram, while other items such as bottled water, drinks, and preserved food are sold by unit. The app adapts the purchase flow to each case, letting users pick the exact weight or the number of units they need, with the price updating accordingly.

Availability is shown clearly so users always know what they can order, and products that are currently out of stock are marked, avoiding surprises when the order arrives.

Cart, Orders and Addresses

When a user adds a product to the cart, it appears on the cart screen, where they can add as many items as they like, adjust the weight or quantity, edit an item, or remove it. The cart displays a running subtotal of all products.

At checkout, the app shows the order details, including store pickup or delivery, cash or card payment, the delivery address, and the name of the person collecting the order.

Users can save more than one address and switch between them at checkout without re-entering their details each time they deliver to a familiar location. A default address can also be set and is selected automatically for every order.

Order Notifications

Once an order is placed, the user receives push notifications tracking its progress, letting them know when it has been accepted, is ready, is out for delivery, and has been delivered.

Additional Capabilities

The app is synced across devices in real time, so users can access the same account from multiple devices. The shop owner can configure several settings, including a minimum app version (to require users to update when necessary), discounts and loyalty points, delivery costs with an optional free-delivery threshold, and opening hours that inform users of the store's status and when their order will be processed.

03

My Role

As this was a freelance project, I managed the entire product lifecycle.

Requirements Gathering and Definition

Working closely with the client, I documented the store's processes and procedures across every production stage, from stock management to delivering the order to the end customer. With this information in hand, I defined the product scope and the features needed to meet the business's needs, drawing on my experience in user experience and product definition (a discipline grounded in my MSc from the Open University of Catalonia).

Collaboration with UI Designers

In all my freelance projects, collaborating with a designer is a key step in ensuring the app looks polished. I work alongside the designer to safeguard the best possible UX and to make sure the design is led by user experience rather than visual appeal alone, never beauty over functionality.

Development

Once the design was finalized, I moved on to development, applying clean architecture and clean-code practices regardless of platform, language, or framework. This project was built natively for Android and iOS; you can find more detail in the technical stack below.

Store Release

After development and testing with the client, using internal testing in Google Play for Android and TestFlight for iOS, I managed the full release process on both Google Play and the App Store, including compliance, privacy, assets, and all other requirements.

04

Technical Stack

Kotlin (Android)Swift (iOS)Firebase AuthFirebase Realtime DatabaseFirebase StorageFirebase FunctionsFirebase AnalyticsFirebase CrashlyticsDependency InjectionClean ArchitectureMVVMRedsys PaymentsOneSignal