2025, Development
Role: Sole developer
Meet App
I created a serverless progressive web application (PWA) built with React. The app fetches event data from the Google Calendar API and was developed using a test-driven development (TDD) approach. To enhance the user experience, I also added data visualization features.

Key Features
Filter Events by City – Users can search for and display upcoming events in specific cities
Show/Hide Event Details – Expand or collapse event information on demand
Specify Number of Events – Let users control how many events are shown
Offline Support – Cached event data is available even without internet
Installable PWA – Users can install the app as a shortcut on mobile or desktop
Data Visualization – A scatterplot showing the number of events per location and a pie chart visualizing the popularity of event genres
Process
This project let me dive into modern web development practices by combining the scalability of serverless architecture with the offline capabilities of PWAs. By following TDD principles, I was able to focus on building reliable, high-quality code. To make the app more engaging, I integrated visualizations that help users quickly understand event data. I started this project by researching serverless architecture and progressive web apps, identifying the features that would make the app both scalable and user-friendly. I created user stories and test scenarios first, applying a strict test-driven development process to guide my coding. After setting up the React framework, I developed AWS Lambda functions to handle authentication and event retrieval, replacing the need for a traditional backend.
I then implemented the core features, such as filtering events, expanding event details, and specifying the number of events displayed. Once these essentials were in place, I enhanced the app with offline support and installability, turning it into a full-fledged PWA. To add depth, I integrated data visualization components that displayed events in scatterplots and pie charts. Finally, I performed extensive testing, ensured responsiveness across devices, deployed the app to GitHub Pages, and connected monitoring tools to maintain performance.