Full-stack civic mobile app

FamilyPromise Mobile Matching App

A role-based mobile app helping tenants, property owners, and case handlers coordinate Section 8 housing voucher matches in one workflow.

Overview

Housing-match coordination involves different users with different responsibilities. The app needed to make tenant needs, property-owner listings, and case-handler review feel like one coherent workflow instead of separate spreadsheets, calls, and manual follow-up.

The system centres on account roles, session-cookie authentication, profile management, property creation, available listings, and a match endpoint designed to grow into a fuller eligibility and case-review workflow.

This was university coursework, built by a team. It is included as evidence of role-based access design and mobile-plus-API integration, which transfer directly to customer portal work. It was not a commercial engagement, and Family Promise is not a client. The repository belongs to a teammate and is linked above.

The transferable lesson is about sequencing: role design has to be settled early, because it determines navigation, profile data, protected endpoints, and testing paths all at once.

Status
University team project, Fall 2024 — built with multiple contributors
Built for
Tenants seeking housing, property owners listing units, and case handlers reviewing matches
Role
Full-stack developer, mobile UI implementation, Flask API integration, backend testing
Timeline
Fall 2024
Platforms
iOS, Android
Categories
Mobile Apps, Customer Portals
The FamilyPromise matching app shown across mobile screens

What was built

Responsibilities and core features

Responsibilities

  • React Native and Expo screens for login, account creation, property creation, and matching
  • Integration against Flask REST endpoints
  • Session-cookie authentication in protected role-specific requests
  • Backend testing and Postman documentation of payloads and response shapes

Core features

  • Login, account creation, role selection, and profile setup
  • Three distinct user roles with different navigation and permissions
  • Property intake so owners can create listing records
  • Available listings surfaced to tenant match workflows
  • Match-interest flow for tenants, with case-handler review
  • Session-cookie authentication across protected endpoints

Engineering

Problems that came up, and what fixed them

The specifics matter more than the feature list. This is what the work actually consisted of.

  1. Role design settled first, because everything depends on it

    Three roles with genuinely different responsibilities shape navigation, profile data, protected endpoints, and every testing path. Deciding the role model early was what allowed the rest of the app to be built without repeated rework.

  2. Documented API contracts for a multi-contributor team

    Mobile forms become far easier to build when payloads and response shapes are documented with real examples. Postman collections documented the JSON contracts and authenticated flows, which mattered because frontend and backend were being written in parallel by different people.

Technical architecture

  • React Native and Expo frontend for iOS and Android screens including login, account creation, property creation, and matching views
  • Flask backend with RESTful endpoints for registration, login and logout, user profiles, profile updates, property creation, property browsing, and match intent
  • Session-cookie authentication used in backend testing and protected role-specific API requests
  • Postman testing documentation validating JSON payloads, response shapes, and authenticated user flows
  • Team repository workflow with multiple contributors and a README documenting local frontend and backend setup

Technology stack

  • React Native
  • Expo
  • TypeScript
  • Flask
  • Python
  • REST APIs
  • Postman

What it adds up to

  • Three user roles supported across one shared codebase
  • Registration, login and logout, profiles, profile updates, property creation, property browsing, and match intent covered by the API
  • Authenticated flows validated through documented Postman collections

Related services

The work this project demonstrates

Custom Software

One system that matches your real process, instead of four tools and a spreadsheet holding the gaps together.

Customer Portals

A portal takes the ten repeated questions off your phone and puts them behind a login, answered accurately, at two in the morning.

Mobile Apps

Cross-platform apps in React Native and Expo — including the background, permission, and store-review work that decides whether an app actually ships.

Keep reading

The GameLynx app shown on a phone, displaying its member discovery map

Cross-platform mobile appMobile Apps

GameLynx

A skill-based matchmaking app that pairs golfers with compatible playing partners nearby, then gets the round on the calendar.

In development — store listings in progress

  • React Native
  • Expo
  • TypeScript
  • React 19
  • +5 more
The MileageSync app shown on a phone, displaying its trip tracking home screen

Cross-platform mobile appMobile Apps

MileageSync

A hands-free mileage logger that detects drives in the background and turns them into IRS-ready deductions, with every GPS point kept on the device.

In development — store listings in progress

  • React Native
  • Expo
  • TypeScript
  • SQLite
  • +4 more

All case studies

Building something in this territory?

If any of this resembles the problem you are trying to solve, a discovery call is the fastest way to find out whether we can help.

Prefer email? Contact@DeviceBytes.com