Week 1–2 of GSoC 2024: My Journey with Drupal — Developing the Supabase Authentication Module
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.
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:
- Week 1–2 of GSoC 2024: My Journey with Drupal — Developing the Supabase Authentication Module
- Week 3–4 of GSoC 2024: Advancing the Supabase Authentication Module
- Week 5–6 of GSoC 2024: Progressing with the Supabase Authentication Module
- Completing My Mid-Term Evaluation in Google Summer of Code (GSoC) 2024: A Journey of Learning and Growth
- Week 7–8 of GSoC 2024: Releasing the Supabase Authentication Module on Drupal.org
- Week 9–10 of GSoC 2024: Deepening My Drupal Knowledge and Enhancing the Supabase Authentication Module
- Final Work Report for GSoC 2024: Supabase Authentication for Drupal
Feel free to check them out for a more detailed view of my experiences and learnings.