My GSoC’22 organisation was CCExtractor and the project I worked on was Beacon-Backend (Github repo). My mentors were Aadi Bajpai and Carlos Fernandez.

As soon I was accepted for GSoC, the community bonding period started. I started interacting with my mentor. We discussed and set various project milestones, pondered over how we were going to implement the required features. We decided that we’ll update the backend before the mid evaluation and complete all the cloud related deployment stuff before the final evaluation.

I setup the codebase and was pretty excited to get my hands dirty since this was my first GraphQL project and had not worked with AWS before.


0: Unifying the Master(express) and AWS branch…

…and fixing some small bugs.

Pull requests involved:

  1. Unified the AWS and Express Branches
  2. Merged Unified into Master!

Details of the work:

  1. Subscriptions wont (automatically) be included in (resolvers.js) lambda versions, whereas they will (automatically) be included in express version.
  2. Changed the scripts in package.json, a) start_aws to run index.js of aws version. b) start to run the express version.
  3. Updated the resolvers to use mongoose 6.X and now both aws and express version share common files such as models, resolvers etc.
  4. Serverless code lives inside /serverless .

This helped/will help us deploy the code later, because now the any further change to codebase wont have to be duplicated for the two different branches.

1: N beacons 1 Group

<aside> 💡 Issue that tracked the progress.

</aside>

This task involved making new models, updating schema and resolvers. New Group model was added and the beacon model was made a sub-collection of this group model. Straightforward query and mutations to read and write to group model. New subscription “GroupJoined” was added to provide real-time updates about new joiners of the group.

  1. N Beacons 1 Grp: PR1
  2. N beacons 1 Grp: PR2

This finished adding support for the new feature of groups, which was the target for the mid-evaluation. After some manual testing, we moved to deployment, so the frontend team can actually test it in the app itself.

2: Cloud Deployment Related