Page MenuHomePhabricator

[GSOC 2024 Proposal] Lingua Libre v3.0 enhancement and migration : Jatinder
Open, Needs TriagePublic

Description

Profile Information

Name: Jatinder Mahajan
Github
Gitlab
Gerrit
Resume: https://jatinderg683.hackerresume.io/a0490a93-bab5-4093-869b-3791bef6c59d
Location: Punjab, India
Typical working hours: 1:00 pm to 4:00 am UTC+05:30

Synopsis

The Lingua Libre v3.0 enhancement and migration project aims to upgrade and migrate the Lingua Libre platform to improve scalability, performance, and user experience. The current backend, utilizing wikibase and blazegraph, presents limitations in scalability and query speed. By transitioning to a Python Django backend and VueJS frontend, the project intends to address these shortcomings, providing a more efficient and elegant service for recording vocabulary from diverse languages. These enhancements will contribute to the enrichment of Wikimedia projects with a broader range of audio-word content.

How it Benefits Wikimedia Projects:

  • Improved scalability and performance will enable the recording of a larger volume of vocabulary, enriching Wikimedia projects with diverse audio-word content.
  • Enhanced user experience will attract more contributors, fostering increased participation and a more comprehensive representation of languages within Wikimedia projects.

Possible Mentor(s): @Poslovitch @Yug
Have you contacted your mentors already?
Yes, I have initiated communication with both mentors, @Poslovitch and @Yug . I have successfully completed and fixed some microtasks in collaboration with the mentors.

Deliverables

Community Bonding Period (May 1 - May 26)
Activities:

  • Engage with the Lingua Libre community for insights and understanding of user needs.
  • Investigate existing migration strategies in similar platforms.
  • Establish communication channels with mentors and contributors for ongoing support and collaboration.

Coding Phase

Week 1-2 (May 27 - June 9): Research and Initial Setup
Activities:
Investigation:

  • Research on migration strategies from wikibase[blazegraph] to Python Django and VueJS.
  • Analyze existing backend and frontend implementations in other platforms.

Coding:

  • Set up the development environment for Lingua Libre migration.
  • Initial code exploration and planning for backend and frontend migration.

Week 3-4 (June 10 - June 23): Backend Migration
Activities:
Coding:

  • Migrate backend functionality from wikibase and blazegraph to Python Django models and views.
  • Implement necessary APIs for frontend integration.

Testing:

  • Conduct initial testing of backend functionalities post-migration.

Documentation:

  • Document the implementation details and usage guidelines.

Week 5-6 (June 24 - July 7): Frontend Development
Activities:
Coding:

  • Set up the development environment for VueJS.
  • Develop frontend components and UI elements based on design requirements.
  • Integrate frontend components with backend APIs.

Testing:

  • Begin testing the integration of frontend and backend functionalities.

Week 7-8 (July 8 - July 21): Refinement and Testing
Activities:
Coding:

  • Refactor code for optimization and scalability.
  • Address any bugs or issues identified during testing.

Testing:

  • Conduct thorough testing of both frontend and backend functionalities.
  • Optimize performance and ensure compatibility across different browsers.

Midterm Evaluation Period (July 8 - July 12)
Activities:

  • Submit midterm evaluation and gather feedback from mentors.

Week 9-10 (July 22 - August 4): Deployment Preparation
Activities:
Coding:

  • Prepare deployment environment and configuration settings.

Testing:

  • Conduct final rounds of testing to ensure readiness for deployment.

Week 11-12 (August 5 - August 18): Deployment and Documentation
Activities:
Coding:

  • Deploy the updated Lingua Libre platform to production environment.

Documentation:

  • Document the migration process, including challenges faced and solutions implemented.
  • Finalize project documentation, including setup instructions, API documentation, and user guides.

Final Evaluation Period (August 19 - August 26)
Activities:

  • Finalize code and address any last-minute issues.
  • Conduct final testing of the entire Lingua Libre platform.
  • Ensure all documentation is up-to-date and comprehensive.

Post-GSoC (August 26 onwards)
Activities:
Coding:

  • Address any post-evaluation feedback and bug fixes.
  • Continue contributing to Lingua Libre if needed.

Testing:

  • Continue testing and validation of the implemented features.

Final Submissions and Results (September 3)
Activities:

  • Await and acknowledge the initial results of Google Summer of Code 2024.

Extended Coding Period (September 3 - November 4)
Activities:

  • Continue contributing to Lingua Libre if needed.
  • Ensure ongoing testing and quality assurance.

Final Submissions and Results (November 4)
Activities:
Coding:

  • Finalize any remaining contributions.

Testing:

  • Confirm the stability and functionality of the Lingua Libre platform.

Participation

Communication Plan:
I plan to maintain open and transparent communication throughout the project. Weekly progress updates will be shared with mentors and the community through email and weekly meetings. Any challenges or roadblocks will be promptly communicated to seek guidance.

Source Code Repository:
The source code will be regularly pushed to a dedicated Gerrit or GitHub or GitLab repository under my account. This will facilitate version control, collaboration, and transparency. Each commit will be accompanied by meaningful commit messages, and major updates will be communicated to mentors and the community.

Seeking Help:
When facing challenges, I will utilize community channels, including mailing lists and forums, to seek help. Additionally, I will actively participate in the weekly meetings with mentors to discuss progress and address any issues. Prompt and clear communication will be maintained to ensure a collaborative and supportive development environment.

This detailed plan outlines the project's goals, benefits, mentorship structure, and a comprehensive timeline for task completion. It reflects a thoughtful approach to contributing to the InlineComments in wikimedia extension during the Google Summer of Code program.

About Me

Education
I have graduated in Computer Science from Sardar Beant Singh State University (SBSSU) with a degree completion date in January 2023

How did you hear about this program?
I discovered GSoC through online research. While exploring opportunities on the internet, I came across GSoC, and its reputation as an excellent platform for enhancing professional skills caught my attention.

Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?
No, I do not have any other time commitments, such as school work, another job, planned vacation, etc., during the duration of the program.

We advise all candidates eligible for Google Summer of Code and Outreachy to apply for both programs. Are you planning to apply to both programs and, if so, with what organization(s)?
Yes, I am eligible for both the programs, but have only applied to GSoC.

What does making this project happen mean to you?
Realizing this project means merging my passion and expertise to make a meaningful impact. It's not just a technical endeavor but a commitment to innovation and positive contributions, bringing both professional fulfillment and personal pride.

Past Experience

I am skilled in a range of programming languages, including Blockchain, TypeScript, Java, PHP, and more. My expertise extends to frameworks like Symfony, React.js, and Express.js, along with proficiency in tools such as Docker, AWS, and Git. With a strong background in databases like MySQL, MongoDB, and Redis, I've successfully applied these skills in real-world projects, showcasing my commitment to staying updated in the rapidly evolving field of technology.

Please add links to any feature or bug fix you have written for a Wikimedia project during the application phase.
T358694: Change word "Link" to domain name in Page Exchange URL display
T354624: Modified and Reproduce legacy layout for the Review step
fixes the local setup issue for the project's development.
Added Husky to set up pre-commit hook
Added Dark Mode to the Lingua Libre v3

Describe any relevant projects that you've worked on previously and what knowledge you gained from working on them.

  • Sports Gear Swag: In my role as a Full-Stack Developer at GeekyBones Lab, I led the development of "Sports Gear Swag," an online platform for personalized athletic apparel using React.js and Symfony. Overcoming challenges in implementing extensive customization options, I gained hands-on experience in React.js and Symfony. The successful launch highlighted my ability to balance customization with user-friendliness.
  • Prioticket: As a Full-Stack Developer at GeekyBones Lab, I contributed to the global ticketing platform, "Prioticket," utilizing Laravel and Node.js. My role included enhancing technical capabilities and launching 'Priopass' for streamlined traveler access. This project deepened my backend expertise, honed project management skills, and provided insights into international business operations and partnerships in the travel industry.

Describe any open source projects you have contributed to as a user and contributor (include links).
Yes I did to many, please refer to my github profile some of them are listed as :

  1. [https://github.com/ushahidi/platform/issues/4753#issuecomment-1981621223]:
    • This contribution involves familiarizing myself with the technical documentation relevant to the WhatsApp integration project for Ushahidi, as well as reviewing Ushahidi's technical documentation and exploring the WhatsApp Business API documentation. Additionally, feedback on proposed libraries/frameworks and considerations for UX, security, and testing were provided.
  1. [https://github.com/ushahidi/platform-client-mzima/pull/815]:
    • This PR fixes and added the prop for the handling the cases :
    • 1. That if there no posts in the specific survey - then user should see - "survey_has_no_posts": "There are no posts in this survey!",
    • 2. There is no survey selected - then user should see - "no_posts_yet": "Select a survey to show posts!",
  1. [https://github.com/ushahidi/platform/issues/4848#issuecomment-2006645908]:
    • This Cypress test case is designed to ensure the functionality of sending a WhatsApp message via the Infobip API. The test involves making a POST request to the Infobip API endpoint with a predefined payload containing message details. After sending the request, the test verifies that the response status code is 200 and checks for expected properties in the response body, such as the presence of messages and their status. The test aims to validate the reliability and correctness of the WhatsApp message sending feature integrated with the Infobip API.
  1. https://medium.com/p/d98b23fb7de5/edit
    • This task involves creating a compelling blog post about my reflections about the Outreachy-WhatsApp project. The goal is to share our findings, and propose areas for further exploration.

Any Other Info

Sports Gear Swag
Prioticket
Hacktoberfest 2023: I achieved a remarkable feat by winning the Hacktoberfest 2023 competition among over 50,000 participants. As a part of this accomplishment, a tree was planted in my name, underlining my commitment to sustainability. Additionally, I received a coveted Swag kit as recognition for my contributions and dedication to open-source projects.

HackerRank Badges: I have earned several prestigious badges on HackerRank, including the "30 Days of Code Badge" and the "10 Days of JS Badge," showcasing my prociency and dedication in coding and JavaScript challenges. These badges reect my commitment to continuous learning and problem-solving in the realm of programming.

Event Timeline

Jatinder190124 renamed this task from Lingua Libre v3.0 enhancement and migration to GSOC Proposal for Lingua Libre v3.0 enhancement and migration.Mar 25 2024, 10:32 PM
Jatinder190124 renamed this task from GSOC Proposal for Lingua Libre v3.0 enhancement and migration to GSOC(2024) Proposal for Lingua Libre v3.0 enhancement and migration.
Jatinder190124 claimed this task.
Yug renamed this task from GSOC(2024) Proposal for Lingua Libre v3.0 enhancement and migration to GSOC(2024) Proposal for Lingua Libre v3.0 enhancement and migration : Jatinder.Mar 31 2024, 11:50 PM
Yug renamed this task from GSOC(2024) Proposal for Lingua Libre v3.0 enhancement and migration : Jatinder to [GSOC 2024 Proposal] Lingua Libre v3.0 enhancement and migration : Jatinder.Apr 1 2024, 5:45 PM