MeetBIT (PWA)
The MeetBit App stands as an innovative progressive web application (PWA), seamlessly merging the strengths of both web and mobile apps. Its serverless architecture ensures a smooth user experience, empowering individuals to effortlessly discover, join, and engage in numerous upcoming local IT events. This fosters a sense of community and connection among event-goers.
Development approach
I employed AWS Lambda and the Serverless Toolkit to establish an authorization server, enabling app users to connect to the Google Calendar API through an access token. I developed unit and integration tests, examined individual and collective app component functionality, and conducted end-to-end tests using the Puppeteer tool. Implementing a Web App Manifest and Service Worker transformed the app into a PWA, assessed for performance using Lighthouse. I integrated Recharts, a React-based visualization library, to enhance the app with a pie chart and scatter plot.
Features
- Filter events by city
- Show/Hide event details
- Update Number of Events
- Use the App when offline
- Visualize data with chart
- The app is a React application.
- The app was built using the TDD technique.
- The app used the Google Calendar API and OAuth2 authentication flow.
- The app used serverless AWS lambda for the authorization server instead of using a traditional server.
- The app passed Lighthouse's PWA checklist.
- The app works offline or in slow network conditions with the help of a service worker.
- Users will be able to install the app on desktop and add the app to their home screen on mobile.
Tech stack
- React
- Jest
- Jest-Cucumber
- Puppeteer
- React toastify
- AWS lambda
- Google Calender API
- Atatus
Live links
Challenges and merits
In this project, a major challenge I encountered was adopting the Test-Driven Development (TDD) approach, which involved writing tests before implementing the actual codeāan unfamiliar methodology for me. To overcome this obstacle, I invested considerable time in acquiring proficiency with various testing tools, such as Jest for unit and integration testing, Puppeteer for end-to-end testing, and Cucumber for user acceptance testing.