Page MenuHomePhabricator

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

Description

Profile Information

Name: Pushkar
Portfolio website: https://pushkarbansal.me/
Github: pushkar707
Twitter: https://twitter.com/Pushkar66114413
Phabricator: pushkar7077
Location: India
Typical Working Hours: 4.00 am to 12:30 pm and 3:00 pm to 6:30 pm (UTC)

Synopsis

Summary:
The Lingua Libre v3.0 enhancement and migration project aim to revamp the legacy Lingua Libre website from a wikibase, blazegraph backend to a modern tech stack of Django and vuejs. The main reason behind revamping is to improve performance in terms of query speed using a separate client and server side and avoid issues such as duplication of data through DRY principles.

Benefits:
The aim of this project is going to be:

  • Complete the tasks mentioned on Lingua Libre's phabricator's workboard.
  • To add all the functionality and pages of legacy Lingua Libre to v3.0 along with new features and enhancements.
  • The aim is to improve scalability, maintainability, and performance in v 3.0 providing an enhanced user experience in terms of speed, storage, UI/UX, and functionality to attract more contributors

Possible Mentors: Hugo Lopez ( @Yug ), Florian Cuny ( @Poslovitch )

Have you contacted your mentors already?
Yes

Deliverables / Timeline

Here are the deliverables that this proposal promises to complete within the timeline.

Community Bonding Period

  • The target here is going to be to strengthen the bonds with the team and mentors.
  • Discuss the timeline proposed, and make any changes here if required.
  • Understanding all the issues on the phabricator's dashboard, and solving any confusion along with the team
  • Testing and going deep into the codebase to identify bugs and create a ticket for those.
  • Discussing various ideas and methods to solve the problems, and complete the tasks.

Week 1-2 (May 27 - June 9): Basic Full-Stack tasks

  • Complete the backend workboard including django update and authentication
  • Complete the frontend workboard.
  • Create static pages: home, about, and help pages. I noticed that these pages are not responsive on https://lingualibre.org/, so I will create them responsive to all devices.
  • Complete the documentation tasks.

Week 3-4 (June 10 - June 23): Record Wizard

  • Working over the record wizard's design and UI (with discussion with mentors)
  • Completing workboard tasks for Record Wizard (currently 6 tasks)
  • Fixing any new bugs found, and thoroughly testing the entire functionality
  • The aim is to wrap up the record wizard at this time.

Week 5-6 (June 24 - July 7): Word list generators and upload batch

  • Complete any tasks that might be pending from the first four weeks (although this is unlikely)
  • Complete the world list generators and upload batch tasks on the workboard

Note: In the first 6 weeks, after completing the tasks mentioned above, if I have any remaining time, I will be spending that over backlog tasks mentioned on the workboard, also I will be writing code for testing and even monitoring required for all the tasks I complete during the project.

Week 7-8 (July 8 - July 21): Website

  • Complete user's profile {F43910753}
  • Add the discussion page with all the CRUD functionality as in https://lingualibre.org/, along with any new functionalities required.
  • Add the statistics page

Midterm Evaluation Period (July 8 - July 12)
These are the expected outcomes which can be evaluated in this evaluation:

  • A fully functional record wizard with no bugs.
  • All the frontend, backend, and documentation tasks completed from the workboard.
  • UI for the websites including home, about, help, discussion, and statistics page
  • Word list generators and upload batch tasks.
  • I will do my best to also complete any more tasks added to the workboard before this time

Week 9-10 (July 22 - August 4): Website

  • Notifications and notices
  • Edits and actions implementations of all the pages
  • Implement search on the website

Week 11-12 (August 5 - August 18): Finalisation and DevOps

  • By week 10, the entire application along with all the pages is expected to be completed, though I am sure there must be something in the website that I must have missed above, so those can be completed in this time
  • Entire application will be thoroughly tested and any feedback provided to me will be worked upon in this period
  • I can handle DevOps work including deployment, CI/CD, docker, or whatever is required in this period.
  • Finish testing and monitoring on the website. (Although testing might be finished by week 10 only)

Final Evaluation Period (August 19 - August 26)

  • By 18th August, the project will be completed, and the entire project will be ready for evaluation in this period.
  • Any further feedback on my work can be handled in this period.

Post-GSoC (August 26 onwards)

  • Will maintain my contact with the community, and help future contributors to contribute.
  • Will be solving doubts and queries of the community, especially related to all the code I would've written.

Extended Coding Period (September 3 - November 4)
I can use this period to work over any feedback or bug reports I receive during the time before this.

Participation

  • I will stay available for mentors during my working hours, where they could discuss anything with me.
  • I will stay active on phabricator, and GitLab
  • I will be providing daily updates for all the work I do.
  • I will seek help from the mentors whenever I have to, and have clarity before performing any task.

About Me

Education
I am currently pursuing a 3rd year BCA from Vivekanand Institute of Professional Studies, Delhi. I will be graduating in July 2024

How did you hear about this program?
I got to know about this program through @Yug. He introduced me to this project, while I was contributing to Lingua Libre's Signit Extension. Since my tech stack matched with this project very well, so he recommended I go for it in GSOC.

Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?
I just have my week-long exams in June, during which time my working hours will be limited. I am pursuing my education through open learning, so I don't have any commitment there other than exams. I am currently doing an internship that ends on 30th April, so it doesn't collide with GSOC. Hence, I won't have any other commitments during the GSOC period.

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)?
No, I plan on participating only in Google Summer of Code 2023, with Wikimedia Foundation.

What does making this project happen mean to you?
For me contributing to the GSOC project has been my target since the last year's GSOC (as I missed it). For this I have leveled up my skills during the past year, made open-source contributions, etc. I have been looking for a project to work on in GSOC since November 2023, looking at previous year's organizations. I was finally able to find this project last month, where I felt that this is the project that I can do better than any other project, the project is for a cause, and that also makes me feel for the project. My tech stack matches very well with the project. Getting selected for this project has been my primary focus in the past month, and once selected, completing it successfully is going to be the top priority for the upcoming months.

Past Experience

I have been doing programming and web development for 4+ years now. I have also worked professionally as a freelancer and intern for almost 2 years now.

Please add links to any feature or bug fix you have written for a Wikimedia project during the application phase.

Development Skills

FrontendJavascript, Vue, React, TailwindCSS, Strict Typescript
BackendDjango, Flask, Postgres, MySql, Nodejs, Prisma
AdvancedFirebase, Docker, Redis, Socket.io, Queues, Celery
DeploymentAWS EC2, ECS RDS, Nginx, CI/CD,
TestingPytest, Jest
MonitoringPrometheus, Loki, Grafana (Beginner)

Professional work experience

  • Full Stack Intern at Stickman Services: July 2022 - January 2023
  • Freelancer since January 2022
  • Software development Intern at Heydaw Technologies: September 2023 - January 2024
  • Software development intern at Rakshakcode: February 2024 - April 2024

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

  • vCard: vCard is a webpage project I built using Django. It allows users to create a digital cart that displays their basic information. They can also use it as a mini-website by adding their products, and separate sections where they could add images and text. Repo
  • License Generation System: This is a project in MERN Stack, although I have added it here, especially due to its client side, i.e. javascript. This project is based on govt. official license creation system, with a better UI/UX 70% faster than govt’s system. Users can get started instantly with Firebase login and use a highly interactive dashboard to enter their details, upload documents, pay test fees, take license tests, and finally generate the license. Repo
  • Vercel Clone: Not very relevant to this project, but this is one of the most interesting and advanced personal projects of mine, hence adding it here
    • Working: Takes the GitHub repo of the project and spins a docker container, that clones and builds the project,
    • Further, build files are copied outside of the container and deployed to AWS S3
    • Users can debug the deployment process by checking live logs provided using Redis and socket.io.
    • Finally, a reverse proxy server is created that returns static files from AWS S3.
    • The project enabled me to get hands-on experience with Redis, docker, socket.io, and system design.
  • Apart from these projects I have worked on the admin dashboard, e-commerce websites, and other multiple full-stack projects. Since they are company's or client's projects and do not have a public repository, I didn't mention them explicitly, but you can check those on my [[ http://pushkarbansal.me/ | portfolio ]]or LinkedIn. To summarise, I feel I have enough experience to be able to take up and complete this project.

You can find details about my work in these positions on my portfolio website:

Describe any open source projects you have contributed to as a user and contributor (include links):

Following are some of my other contributions to open source:

Work Period

Week 1

  • Discussing the week 1 and week 2 tasks with my mentor over a meeting, to begin working on them.
  • Add Tailwind.css to the project
  • Then I created the Home, about anh help page fully responsive with good design (almost finalized expecting only minor changes in future)
  • Further, I implemented i18n for the translation of the website

    Week 2
  • I had to do some small backend and documentation tasks, but after discussing them with my mentor, they were secondary tasks and there was confusion regarding them.
  • Hence I moved to record wizard, which according to me is the most important aspect of the project.
  • Initially, it took me some time to get comfortable with codex components, and vuejs (it's my first time coding in VUE), but now I am comfortable working with it, and will make good progress in week 2 and week 3

Event Timeline

Received. Thank you Pushkar.

This comment was removed by Yug.
Yug renamed this task from [GSOC 2024 Proposal] Lingua Libre v3.0 enhancement and migration to [GSOC 2024 Proposal] Lingua Libre v3.0 enhancement and migration : Pushkar.Mar 31 2024, 11:50 PM
Yug updated the task description. (Show Details)