Skip to content

MAKE YOURSELF COMFORTABLE

Display & accessibility

Choose what feels comfortable. Your preferences stay saved on this device.

Colour & light

Soft light uses warm, muted surfaces. Dark reduces bright backgrounds.

Text size

Back to work

KnockKnock

A working roommate-matching application developed with React Native, Expo and Firebase from a UI/UX design created by Fernanda Fernandes.

Mobile DevelopmentCollaborationReact Native

Role

Mobile App Developer

Category

Mobile Development · Collaboration

Year

2025

KnockKnock app preview

Development

Nami Enkhjargal

UI/UX Design

Fernanda Fernandes

Project Type

Collaborative master's project

01

Overview

KnockKnock is a roommate and accommodation-matching application created as a collaborative master's project. The UI/UX design was created by Fernanda Fernandes, while I was responsible for developing the application and connecting the experience to a working Firebase backend.

02

My Role

Mobile App Developer

  • Developed the application using React Native and Expo
  • Built Firebase authentication
  • Structured the Firestore database
  • Created separate Seeker and Provider experiences
  • Implemented user profiles and accommodation listings
  • Added image uploading
  • Developed swiping and matching functionality
  • Built real-time conversations and image messaging
  • Added map-based accommodation discovery
  • Implemented reporting, hiding and account-management features
  • Connected the Figma designs into a functional end-to-end application
03

The Product

KnockKnock supports two connected user journeys. Seekers can explore accommodation and potential roommates, while Providers can publish and manage listings. Matching creates a connection between compatible users and opens a conversation.

04

Technical Structure

React NativeExpoFirebase AuthenticationFirestoreReact NavigationExpo Image PickerReact Native MapsAsyncStorage
05

Development Challenge

The main challenge was connecting several dependent systems — profiles, listings, swipes, matches, conversations and reports — without breaking the user journey. A single action could affect several parts of the database, so the data structure and state management needed to remain consistent.

06

Design Collaboration

I translated the provided Figma designs into reusable React Native components and working interactions. During implementation, I communicated technical constraints and adapted responsive behaviour while preserving the designer's original visual direction.

07

Key Functionality

Role-based onboarding

Separate sign-up paths for people seeking a place and people listing one.

Profiles & listings

Structured profile and accommodation-listing data, with photo uploads.

Swipe & matching

A swipe-based interface that creates a match when interest is mutual.

Real-time chat

Conversations with image messaging, updating live via Firestore.

Map discovery

Browsing available accommodation by location on a map.

Reporting & account controls

Reporting, hiding and account-management tools for user safety.

08

Outcome

The result was a functioning end-to-end mobile application rather than only a visual prototype. The project strengthened my ability to collaborate with a designer, translate interface designs into code and connect complex user flows to a real database.

09

Reflection

If I continued development, I would focus on production security rules, performance testing, notification handling and further validation of the matching experience.