Welcome to My Beacon Project

This is where you can learn about my Beacon project, follow my progress through weekly blog updates, and discover the technical details behind the implementation.

Project Overview

Design an application enabling weight room content to be distributed to a user near a particular station. The app will provide the user with a specific workout to be done and give the user updates each day. This will map the user's workout usage over time and suggest rep ranges to complete.


Project Requirements

  • 1. Different workouts should be played at each station(beacon) location dynamically generated.
  • 2. Consider different information based on nearness to beacon.
  • 3. Indicate in some way that there are two or more stations(beacons) nearby and allow user to choose.
  • 4. The application should filter out non-useful signals that may be near by.
  • 5. The application should map beacons to content.
  • 6. The application should check for updates when started so that additional locations can be added without reinstalling the app.

About Me

Hello! My name is Spencer Evenson and I am a computer science major with a minor in Buisness at St. Norbert College.


Philosophy Statement

Since my childhood, I have been fascinated by computers. The presence of technology has continually influenced my thinking and interactions with the world around me. My earliest memories consist of exploring computers where I went beyond basic usage to opening them up and studying their mechanisms to understand their functions. Despite not knowing how to reassemble computers at that time my curiosity led me to develop a lasting passion for problem-solving and innovation. My comprehension of technology became more profound as I aged. My initial interest in hardware transformed into a passion for programming which allows me to create and build ideas into reality. Creating a project from its initial concept to a functional reality brings profound fulfillment. Technology serves as a powerful mechanism for extending human limits and creating beneficial solutions to everyday challenges. Continuous learning combined with creativity and innovation forms the core of my philosophy.

Resume

Project Blog

Week 11: Went on a Trip

April 22, 2025

Nothing new, but soon...

Read more →

Week 10: Pulling from Database

April 13, 2025

Have implemented pulling data from database...

Read more →

Week 9: API Final Touches

April 6, 2025

Finally finished the API endpoints...

Read more →

Week 8: Station Detection and Displaying Data

March 30, 2025

If user gets in range of beacon, ask them if they want to see the data that is tied to it...

Read more →

Week 7: Proximity Detection

March 26, 2025

I now have a proximity detection GUI...

Read more →

Week 6: Test View in Swift

March 16, 2025

I setup a test view showing a text area, radio buttons, and check boxes...

Read more →

Week 5: API Endpoints

March 7, 2025

Setup my API routes and solidified my thoughts on DB...

Read more →

Week 4: Setting up the backend infrastructure

February 28, 2025

First steps on setting up the API to handle user data, beacon data...

Read more →

Week 3: First version of app

February 21, 2025

Pushed first version of app to iOS device. Set up simple filtering for beacons...

Read more →

Week 2: Good Start

February 13, 2025

I have setup a hello world page and got feedback from my peers...

Read more →

Week 1: Initial Setup

February 7, 2025

This week, I made this webpage and have some general notes...

Read more →

Project Information

Technical Stack

iOS Application

  • Core Location Framework - Primary framework for iBeacon functionality
  • Xcode - Development IDE
  • Local storage for caching user data and beacon thresholds

Backend

  • Node.js - RESTful API server
  • MongoDB Atlas - Cloud-hosted database for:
    • Beacon data
    • User information
    • Workout data
  • Mongoose - MongoDB object modeling

Website

  • HTML5
  • Tailwind CSS - Styling framework
  • JavaScript - Client-side navigation and interactions

Features

Beacon Detection & Filtering

  • Real-time scanning for nearby beacon devices
  • Filtering system for specific beacon names (BeaconL8, BeaconL2, etc.)
  • Proximity detection with visual interface
  • Local storage of beacon thresholds for efficient detection

Workout Station Integration

  • Automatic station detection when user is in range
  • Dynamic content display based on user's proximity to stations
  • Exercise information and instructions for each station

Data Management

  • User workout history tracking
  • Real-time data synchronization with cloud database
  • Secure storage of user information and workout data
  • Time-series beacon data collection and analysis

User Interface

  • Clean and intuitive mobile interface
  • Organized tab system for different types of information
  • Real-time proximity indicators
  • Interactive workout station information display

Timeline

timeline