Next Up - A Podcast Alarm

Update!

Next Up has just been featured on Lifehacker! Check out the article here.

For more screenshots and up-to-date info about Next Up, check out the Next Up support page.

Summary

Long before I ever considered taking a course in iOS app development, I knew, if I took one, what my final project would be. I wanted to wake up to something less abrasive than alarm sounds and more engaging than music.

I spent hours and hours over the course of months looking for an app that would do one simple thing: allow me to wake up in the morning to a podcast of my choosing. The options I found were scarce and disappointing.

Functionality

I designed Next Up with the intention of creating something clean, intuitive, and well-suited to its particular purpose. It integrates with podcasts already managed in the native Podcasts app and plays in the native Music app.

Each alarm has options to repeat on particular days of the week, play the newest episodes first, only play uneard episodes, choose snooze duration, max volume, and more. This allows it to accomodate for podcasts of all different types, whether daily, weekly, serial, stand-alone, or those dealing with news or current events.

A Django Blog

Summary

A simple Django blog app. The home page shows a lists of blog posts. Each post has a detail page, and any user can add or edit a post. A sidebar presents the most recent posts regardless of which page the user is on.

The app was written to meet particular specifications (including allowing any user to post or edit), and with an emphasis on a rapid completion. For future, personal projects, I plan to add more elements and polish.

Technologies

The blog app was developed using Django 3.x, Python 3.x, HTML, as well as custom CSS and Bootstrap.

Links

  • The blog app isn't currently hosted, but the source code is available on github.

Screenshots

OpenMC Plotter

Summary

I developed a graphical interface for visualizing and manipulating plot slices for the open-source Monte Carlo particle transport simulation software, OpenMC, which is now used almost daily in the design of nuclear reactors. It was voluntary contribution overseen by a favorite instructor, the project's originator, Dr. Paul Romano.

Technologies

The program was implemented in Python, using a Python adaptation of the Qt graphical framework called Pyside2, and dependent on integration with the OpenMC code base.

links

Video Demo

A brief demonstration of some of the program's key features and methods of interaction.

Video Credit: Patrick Shriwise

WEB APPS

Stock Portfolio

This stock tracking web app allows users to add and remove stocks from an online portfolio that updates prices using the free IEX Cloud realtime stock API. User data persists across sessions, including the closing and reopening of the tab or browser.

Stock views can be sorted in ascending or descending order based on the stock symbol, number of shares, share price, or total stock value. Values are updated when the app is opened, the manual refresh button is tapped, and anytime the sorting method is changed. The app also includes error-handling for invalid user imputs and out-of-range stock quantities.

Movie Database

The movie database app allows users to search for films using the themoviedb API. Each matching film is returned with the movie poster, synopsis, a link to the movie database page, the IMDB rating, and information about the film's directors, producers, and leading actors.

A list of recent searches is maintained in left sidebar, along with an easily accessible list of the current search results. A (more than) healthy dose of CSS is used to add visual interest to the site.

Technologies

Each app was created using a combination of HTML, CSS, and JavaScript/jQuery. Each uses some elements provided by the Bootstrap framework, as well as custom fonts and icons from Google Fonts and fontawesome. The stocks app uses JavaScript localStorage to persist the user data.

Screenshots

REGGIE

Summary

REGGIE is a complete, real-world school registration system specification. As the final project for an Object Oriented Programming course, I was tasked with implementing a subtantial portion of the specifications, and received very positive feedback on the result.

Features included log-ins, courses, sections, schedules, student transcripts, instructor assignments, rosters, prerequisites, user and administrative user-management, student registration with multiple eligibility requirements, instructor approval requests, and grade assignment, among others.

Technologies

The program was written in Python, with an emphasis on good use of OOP design patterns. The program used a text-based terminal interface.

links

  • University policy forbids public sharing of coursework as a measure to prevent plagarism. Source code available upon request to interested employers.

Screenshots

Screen captures of the program during different states

Mandelbrot

Summary

As a part of a project for a course in parallel programming, I created a program to generate Mandelbrot and Julia Set plots. The program made full use of the machine's available processors to render the plots with maximum efficiency

Image specifications were read in from .csv files determining which kind of set to render, as well as the center coordinates, resolution, and color pallete for each image.

Technologies

The program was implemented in Go, with an emphasis on good use of the language's multithreading capabilities.

links

  • University policy forbids public sharing of coursework as a measure to prevent plagarism. Source code available upon request to interested employers.

Chicago Crime Data

Summary

As a weeks-long final project for a course on Big Data, I created a simple web app that imported, aggregated, processed, and presented crime statistics by date and type throughout Chicago.

Technologies

The course and project included at least some use of Scala, Spark, Hadoop, HDFS, MapReduce, Hive, HBase, Kafka, and the Google Cloud platform.

links

  • University policy forbids public sharing of coursework as a measure to prevent plagarism. The web host used for the course has since been disabled as well.

Volunteer Management Database

Summary

As a course-long project for a class on databases, I designed and developed a databse for the management of a large-scale, international volunteer disaster response organization.

The system tracked volunteers, employees, worksites, vehicles, equipment, and stored an event-based record of every important activity, from which other meaningful data could be derived.

Technologies

The database was implemented in MySQL, making use of a variety of the system's capabilities. The completed project included a simple back-end and web interface for users to retrieve and manipulate the data.

links

  • University policy forbids public sharing of coursework as a measure to prevent plagarism. Source code available upon request to interested employers.

Hoot Owl Hoot

Summary

As a part of a Python assignment, I was tasked with simulating the logic and play of a young child's cooperative boardgame by the name of 'Hoot Owl Hoot'.

The program simulated games played with optimal strategy and varying numbers of players. After simulating thousands of games, probabilities of winning were calculated for each number of players based on the results.

Technologies

The program was implemented in Python.

links

  • University policy forbids public sharing of coursework as a measure to prevent plagarism. Source code available upon request to interested employers.

This Website

Summary

As a personal project, and chance to put into practice some of what I learned in my studies of web development, I decided to put together this website as a simple showcase of some of my education and experience in less formal format than a resume or LinkedIn profile.

It's an ongoing project, with more planned than has already been implemented.

Technologies

At the moment I am exploring all that can be done with HTML and CSS alone (with a smattering of Bootstrap), though I do plan to implement JavaScript functionality as the project continues.

links

Debris Management Survey and Analysis

Summary

As my role as a Project Coordinator for the Haitian disaster response project neared conclusion, I prepared and oversaw a survey of the beneficiaries of the debris management programs, which included the demolition of unsafe structures and removal of rubble from personal properties.

I used the information from this survey, and from the database of benefiary and worksite information that I had previously overhauled, to compile an exhaustive, data-rich final analysis of the programs' impact in the community we were trying to serve.

Not every out outcome was what we hoped, but it was important to honestly asses what had been done to provide guidance for future projects. To that end, I also wrote a document of guidelines and advice for futre debris management projects.

links