Meet is a react serverless, progressive web application (PWA) using a test-driven development (TDD) technique. The application uses the Google Calendar API to fetch upcoming events.
Meet was a project I built as part of my web development course at CareerFoundry to demonstrate my mastery of test driven development and PWA's.
The aim of the project was to build a progressive web app with the ability to work offline and a serverless backend developed using a TDD technique.The aim of the project was to build a progressive web app with the ability to work offline and a serverless backend developed using a TDD technique.
16 Days
First I: Applied a test-driven development, defining user scenarios for Jest (unit and integration), Cucumber (acceptance), and Puppeteer (end-to-end) tests based on user stories.
Then I: Implemented serverless functions such as display events from Google Calendar using AWS Lambda
Next I: Created a project in Atatus to automate tracking the performance of the app to resolve any issues
Then I: Used object-oriented programming to set up notification warning, info and error alerts
Next I: Implemented PWA using Lighthouse, a free tool offered by Google that’s used to analyze apps. allowed my app to be installed on users’ devices by editing the manifest file from create-react-app and also implemented the offline logic by using localStorage.
Finally I: Used Recharts library to add two charts one that shows how many events will take place in that city on upcoming days in the form of a scatterplot chart, and another that visualizes the popularity of event genres in the form of a pie chart and then deployed the updated app on GitHub pages.
I like the concept of creating user scenarios and testing before coding. I could see this being an error free approach that saves a lot of time and helps in keeping code consistent across a team. I also enjoyed using Kanban to organize my task and achieve an orderly productive work environment.
Upon completing this achievement I ran into some issues with testing in enzyme. My tutor and I could not find a solution as to why some of my test were not passing. I tried debugging and troubleshooting but to no success. My guess is that enyzme is no longer supported with the latest react and could be causing some dependency issues. However the app does still work as intended.
I would like to continue to build on the app by creating my own API or using another external API. I would like the data to be more diverse.
Overall, this was an insightful introduction to test driven development. I've learned quite a bit about serverless functions, defining user scenarios, unit and integration, acceptance and end to end testing.
Please use the form below to send me a message. I'll be happy to hear from you.