Week 1–2 of GSoC 2024: My Journey with Drupal — Developing the Supabase Authentication Module

Md Sahil
4 min readJun 24, 2024

--

Google Summer of Code (GSoC) x Drupal Association

Introduction

Greetings, everyone! My name is Md Sahil, and I am thrilled to share my journey so far as a Google Summer of Code (GSoC) 2024 contributor for Drupal. My project involves creating a module called Supabase Authentication.

This article details my progress over the first two weeks, highlighting key learnings, challenges, and accomplishments.

Initial Steps and Setup

Catch-Up Call with Mentor

On May 27th, I had catch-up call with my mentor, Ayush. We discussed the differences between Drupal 7 and future versions and decided on a few tasks to get started:

  • Install any Drupal distribution locally.
  • Complete the provided Drupal development playlist.
  • Set up a local environment and ensure a custom module performs a specific function.

Installing Drupal and Learning the Basics

I installed Drupal and began working through the “Drupal Training — Module Development” playlist. Here are the key learnings from Unit 1:

  • Introduction to Drupal Module Development: Understanding plugins, services, and forms.
  • Fundamentals of the Drupal framework, OOP, MVC, services, hooks, and plugins.
  • Symfony integration for routing, event handling, and the service container.
  • Page Call Process: Request handling, front controller, routing.
  • Services: Dependency injection and custom services.
  • Coding Standards: PHP, YAML, naming conventions, best practices.

Developing My First Custom Module

Beginning Unit 2

On May 29th, I started Unit 2, focusing on creating my first custom module. I learned about:

  • The info.yml file and creating the first module.
  • The Hook System and implementing hooks.
  • Routing and Controllers.
  • Menu API and Menu Items.

Progress and Implementation

By May 31st, I had completed Unit 2 and began working on Unit 3. I also started developing the RSVPlist module, where I created an email submission form and added more features.

Implementing Learnings: Site Time Location Module

Assignment Details

On June 2nd, Ayush assigned me a task to implement what I had learned:

  • Create an ADMIN CONFIGURATION form to input country, city, and timezone.
  • Develop a service that returns the current time based on the selected timezone.
  • Add a Plugin block to render the location and current time, with caching enabled.

Building and Debugging

Over the next few days, I focused on this assignment. Here are some highlights:

  • Reinstalled DDEV and set up Open Social.
  • Successfully installed the Firebase Authentication module.
  • Built custom modules using the FormBase class and custom services.
  • Faced a “403 Forbidden” error during Open Social setup and issues with Firebase configuration.

Overcoming Challenges

Debugging and Problem Solving

From June 5th to June 9th, I tackled various issues:

  • Watched videos and read documentation to resolve user authentication problems with Firebase.
  • Used Thunder Client to verify authentication via POST requests.
  • Fixed bugs in the Site Time Location module, ensuring it met the acceptance criteria.

Achievements

By June 9th, I had successfully completed the Site Time Location module, which is now fully functional. I uploaded the code to GitHub and began exploring Drupal and Supabase to develop the Supabase Authentication module.

Site Time Location module

Conclusion

The first two weeks of GSoC 2024 have been incredibly productive and educational. I’ve gained a solid understanding of Drupal module development, tackled real-world challenges, and laid the groundwork for the Supabase Authentication module. I’m excited to continue this journey and share more updates in the coming weeks.

Stay tuned for more progress updates, and feel free to check out my GitHub repository for the Site Time Location module here. Thank you for following along!

Thanks for reading!

Other Articles

I have documented my progress in detailed weekly articles. You can read more about my journey in these posts:

Feel free to check them out for a more detailed view of my experiences and learnings.

--

--