MeetBIT (PWA)

cineF

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.