~/projects/whim

Whim

> Location-based Social App

Whim is a location-based social app designed to encourage in-person interaction and healthy relationships. Through location-based matching, the app connects you with people with similar interests, who frequent the same spots as you.

Whim leverages background geolocation to continuously scan for connections, even when the app is in the background. It features a warm, welcoming design, emphasizing human connection and spontaneity.

Status:
Development
Timeline:
1.5 months (ongoing)
Role:
Fullstack Developer
Team:
Solo Project
Whim

[Features]

Background Geolocation

Whim utilizes a background location task, defined using Expo Task Manager, to search for connections in the foreground and background.

Profile Customization

Whim provides users a great deal of creative freedom over their profile page. Users can pick and choose from a list of interactive profile components to make their personality shine.

Messaging

Whim leverages Socket.IO to provide real-time messaging capabilities. Messages are synchronized with the server to enable cross-device persistence.

SMS Authentication

Whim utilizes Firebase Authentication to enable passwordless SMS authentication. Users can easily create or sign in to an account, without worrying about verification emails or lost passwords.

[Key Challenges]

Firebase Auth Integration

Whim uses Firebase for authentication, but otherwise uses a fully custom backend. Seamless integration was accomplished using Firebase Admin on the backend and React Native Firebase (wrapped with a custom hook) on the frontend.

Location-based Matching

Synchronizing live user location with the server, and broadcasting connection information when users are close in proximity, required careful interoperation between the client and server. By periodically broadcasting the user's location using a background task, and then evaluating geographic distance between user clusters on the server using PostGIS, location-based matching was implemented.