← Back to Projects

Baretag iOS App

iOS app (Swift) for real-time device tracking and management; Flask/Ngrok backend and 3D localization validated in Blender.

View on GitHub →

Overview

iOS app (SwiftUI) for the BareTag tracking system: real-time map of anchors and tags, optional grid and boundary polygon, out-of-bounds alerts. Auth and user data are loaded from a configurable backend (e.g. Flask/Ngrok).

Description

iOS app (SwiftUI) for the BareTag tracking system: real-time map of anchors and tags, optional grid and boundary polygon, and out-of-bounds alerts. Auth and user data come from a configurable backend (e.g. Flask/Ngrok). ContentView uses a global BASE_URL and @AppStorage for auth state; authenticated users see the main tab view and fetchUserData() loads profile data; otherwise LoginView is shown. Demonstrates SwiftUI app structure, MapKit/annotations, backend integration, and state management for a real-time tracking product.

MainTabView and tabs The app has three tabs: AnchorLocatorView (Localizer), MapView (Map), and AccountView (Account). AccountView holds the logout binding so the user can sign out.

MapView and map state MapView uses TagDataWatcher and AnchorDataWatcher (with useLocalFile: false) as @StateObjects, plus UserLocationManager for the device location. The map is centered at a configurable coordinate with adjustable span. MapViewRepresentable receives the region, lock state, boundary polygon (user-drawn), and annotations for tags and anchors. State tracks grid visibility, drawing mode, boundary coordinates, and out-of-bounds tags with alerts (debounced so the same tag does not alert repeatedly). A 1 s timer refreshes data; the user can tap a tag or anchor to see details.

Anchor model Anchor.swift defines Anchor as Identifiable, Codable with id, name, latitude, longitude, and a 2D position (CGPoint). Codable maps backend positionX/positionY to position.x/position.y.

Other components The app also includes TagModel (BareTag), TagLocatorView, TagLocationManager, TagDataWatcher, MapViewModel, GridOverlay, LoginView, RegisterView, AccountView, and UserLocationManager.

Demo

No live demo available for this project. See the repo for setup and run instructions.

Tech & tools

  • Swift
  • Flask
  • Ngrok
  • C
  • Python
  • JavaScript
  • Blender

Highlights

  • iOS app for real-time tracking and device management
  • Flask/Ngrok backend for remote requests
  • 3D localization validated in Blender simulation
  • Integration with multilateration positioning pipeline

More projects

WorldWide Rover

HackUMass XII — Best Embedded System. Autonomous, globally accessible rover: web interface for real-time control, maze navigation, obstacle avoidance. Python/Flask backend, Raspberry Pi, Arduino, React, ngrok.

Buffet

Trading AI: paper and live trading on Alpaca, strategy optimization, signal processing, and Qiskit-based quantum optimization. Python, TensorFlow, Alpaca API.

Pong on Assembly

Interactive Pong on FPGA (Duke ECE 550). Hardware VGA/PS2 implementation plus full assembly version (pong.s) for custom 32-bit processor ISA.

Custom Single-Cycle 32-Bit Processor

Custom ISA and single-cycle datapath in Verilog; synthesis-ready design used as the execution target for Pong assembly (Pong-on-Assembly repo).

Multilateration 3D Positioning

3D multilateration and localization algorithms with Python implementation and Blender-based simulation; feeds into Baretag device positioning.

RISC-V Encryption

Low-level encryption on RISC-V: assembly and C implementations for algorithms and analysis on a RISC-V toolchain.

PUF Tester

Hardware tooling for testing and characterizing Physically Unclonable Functions (PUFs); supports security and fingerprinting use cases.

tinyTemp

Temperature display on ATtiny85: reads sensor via ADC and shows °F and °C on SSD1306 OLED (ECE 304, Spring 2024).

WorldWide Rover

HackUMass XII — Best Embedded System. Autonomous, globally accessible rover: web interface for real-time control, maze navigation, obstacle avoidance. Python/Flask backend, Raspberry Pi, Arduino, React, ngrok.

Buffet

Trading AI: paper and live trading on Alpaca, strategy optimization, signal processing, and Qiskit-based quantum optimization. Python, TensorFlow, Alpaca API.