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
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.