metro

Ditch The Bell


A desktop notifier for RSS/Atom feeds that lets you closely configure features of the freedesktop notification specification to unlock the most customizable feed notification experience possible on Linux.

Features
  • Configure a custom command to launch when clicking on a notification (e.g., your favorite application, shell command, custom script). The feed entry link will be passed as an argument, allowing the command to open the link directly.
  • A feed profile system built to separate notification behaviors for each of your different types of feeds (e.g., news, blogs, podcasts, videos, etc).
  • Define patterns in your profiles to filter feeds so you're only notified for the entries that are relevant to you.
  • Configuration options to fine-tune feed fetching behavior such as the search window, search interval, etc.

LinkLink


Forecasts


An elegant Single-page application for viewing weather forecasts built using NextJS + Django REST Framework. Through the use of the Google Maps Geocoding API and weather data pulled from openweathermap.org, users are able to search for nearly any place in the world and view a real time forecast for the searched location with the hourly temperature displayed using line charts. Creating an account is as simple as connecting your Google account to the app via the OAuth protocol. By signing in with Google, a user profile is saved to the app's PostgreSQL database using the Google resources granted to the app by the user (name, email address, language preference, and profile picture). With a newly created account, users gain the ability to save up to 5 locations of their choice for quick and easy forecast viewing in future visits.

Link


My Personal WebsiteYou're looking at it!


Experience it firsthand!

I created this Next.js powered personal website to showcase my skills, projects, and background. The website features a modern and user-friendly design that highlights my work, making it easy for visitors to learn more about me, explore my projects, and get in touch with me.

Key features of the website include:

  • Built with Next.js as an isomorphic Single Page Application (SPA) for seamless navigation and optimal performance.
  • Enhanced search engine optimization (SEO) through both the isomorphic nature of Next.js and the integration of next-seo.
  • A contact form using Formik and Yup for form handling and validation, allowing visitors to get in touch with ease

This website is my central hub for sharing my accomplishments and experiences in software development. Enjoy exploring my portfolio, and feel free to reach out through the contact page!




NetworkCourse Project (CS50W 2021)


A Twitter-like social network website for making posts and following users.

⚠️ Disclaimer This project was completed as an assignment for the course: CS50’s Web Programming with Python and JavaScript. Please note that this project does not represent my current coding abilities or best practices. It has been included in my portfolio to showcase the progress of my skills over time and to provide context for my overall experience in software development. While I have grown and improved since working on this project, I feel that this project served as a significant catalyst for growth in my learning and for those reasons I am choosing to include it in my portfolio.



CommerceCourse Project (CS50W 2021)


An eBay-like e-commerce auction site that allows users to post auction listings, place bids on listings, comment on those listings, and add listings to a “watchlist.”

⚠️ Disclaimer This project was completed as an assignment for the course: CS50’s Web Programming with Python and JavaScript. Please note that this project does not represent my current coding abilities or best practices. It has been included in my portfolio to showcase the progress of my skills over time and to provide context for my overall experience in software development. While I have grown and improved since working on this project, I feel that this project served as a significant catalyst for growth in my learning and for those reasons I am choosing to include it in my portfolio.