MeetApp is a serverless, progressive web application (PWA) with React built using a test-driven development (TDD) technique. The application uses the Google Calendar API to fetch upcoming events with the following key features: The user is able to filter events by city, show/hide event details, specify number of events, use the app when offline, add an app shortcut to the home screen.
MeetApp is a personal project developed during my web development course at CareerFoundry, showcasing my expertise in writing User Stories and Scenarios, app development with React and TDD methodology as well as my ability to design and implement a functional PWA from concept to deployment.
The objective of the Meet app is to provide users with an efficient and seamless platform for managing and visualizing events, integrating advanced features such as serverless architecture, offline functionality, and real-time performance monitoring using TDD methodology and OOP features.
I started the Backend part of the project in July’24 with my first commit and the official work on the project ended in August’24.
Backend Techstack:
To begin the development process, I started by writing user stories based on the app’s key features. These user stories served as the foundation for understanding the application's core functionality and user requirements. Each user story was then translated into multiple test scenarios, ensuring a robust testing framework would be in place from the outset. I created the project repository, deployed the initial structure of the project, and pushed the first commit to GitHub. At this early stage, I evaluated the merit and usefulness of serverless deployment for the app and created an AWS account, which required 24 hours to become fully functional.
Following this, I connected the React app with a protected API and prepared an OAuth client to handle authorization and authentication securely. Once the AWS account was active, I obtained the necessary AWS credentials and integrated my access key into the app via the terminal, ensuring a seamless setup for future development.
Leveraging serverless technology, I implemented a Lambda function and tested its functionality by creating a serverless deployment package. This streamlined approach enhanced scalability and reduced infrastructure management overhead.
Adopting both Test-Driven Development (TDD) and Behavior-Driven Development (BDD) methodologies, I wrote unit tests, integration tests, user acceptance tests, and end-to-end tests. These tests were meticulously based on the project’s features and scenarios, ensuring the app's functionality and performance met the set up standards.
To monitor the app’s performance, I set up a project in Atatus. This enabled me to track metrics and performance data effectively. Additionally, I configured alerts for the Meet app using Object-Oriented Programming (OOP), allowing real-time notifications for critical issues.
To enhance user experience, I implemented progressive web app functionality. This included enabling the app to function offline and allowing users to add it to their home screens. These features ensured a seamless experience across different environments and devices.
For the web app’s user interface, I incorporated data visualization features using Recharts. This provided users with intuitive and interactive visual representations of data, enhancing the overall usability and appeal of the app.
The development process was incorporating best practices in planning, backend integration, serverless architecture, testing, performance monitoring, and progressive functionality. Each step was executed with attention to detail, ensuring the Meet app delivers a high-quality and user-centric experience.