Difference between revisions of "User:Ayushjain/proposal2020"

From Apertium
Jump to navigation Jump to search
(Created page with "= <center> '''Apertium GSoC 2020''' </center> <br/><center> Improvements to Apertium Website</center>= =Contact Information= '''Name''': Ayush Jain<br /> '''E-mail address''...")
Line 236: Line 236:
'''CV''' : [https://drive.google.com/file/d/1QgHkvFTpAo3c-MlJl9Lcyp1Djw4TnJCP/view?usp=sharing View CV]
'''CV''' : [https://drive.google.com/file/d/1QgHkvFTpAo3c-MlJl9Lcyp1Djw4TnJCP/view?usp=sharing View CV]
[[Category:GSoC 2019 student proposals]]
[[Category:GSoC 2020 student proposals]]

Latest revision as of 22:30, 27 March 2020

Apertium GSoC 2020

Improvements to Apertium Website

Contact Information[edit]

Name: Ayush Jain
E-mail address: ayushjainrksh@gmail.com
Alternate email: 17152@iiitu.ac.in
Mobile Number: +91 9045511472 (India)
IRC nick: ayushjain
Github: ayushjainrksh
Timezone: UTC +5.30

Why is it that you are interested in Apertium?[edit]

I belong to India, a country with 22 different spoken languages and 720 dialects used by a population of 1.3 billion. Being from a nation with vast languages and a student of Computer Science, I strive to solve the problems in language translation through my knowledge of programming and natural language processing. I like the concept of Apertium as an open source language translator as it solves the problem of language translation with ease. As I am a student of Computer Science, I have a keen interest in programming and development. I am proficient in web development and want to apply my knowledge of machine translation by contributing in Apertium. I have an urge to improve open source language translation with Apertium.

Which of the published tasks are you interested in? What do you plan to do?[edit]

I am planning to work on the Improvements to the Apertium website Idea. As I am skilled in web development and have appropriate experience working on it, I decided to work on improving Apertium website by contributing to its API called APy and also improve the frontend of the website for better user experience along with addition of new functionalities.

Why Google and Apertium should sponsor it?[edit]

I have a proper knowledge and experience with development in Python, C++ and JavaScript. Moreover I worked on several projects including areas like web development, OpenCV, machine learning and natural language processing. The Google and Apertium sponsorship would motivate me to work on my GSoC project during summer. I want to add certain functionalities to the Apertium website such as dictionary lookups. Getting sponsored by Google and Apertium would help me focus on the project during summers.

How and who it will benefit in society?[edit]

Adding certain capabilities of Apertium such as dictionary/synonym lookup and webpage translation to the website would increase the functionalities in the Apertium website. This would help in increasing the user base of Apertium and provide an improved language translator to the users.

Work Plan[edit]

Broad division[edit]

Community Bonding Period Getting to know all the mentors and getting acquainted with complete documentation of apertium. Acknowledge the problem statement and start working on a possible solution with focus on each detail. 4 May - 1 June
Phase 1 Working on adding dictionary/synonym lookup for single-word translations to the website. 1 June - 3 July
Phase 2 Working on improvements to apertium website by adding reliability coloring to the synonyms. 3 July - 31 July
Phase 3 Improvement to language detection and wrapping up the project with proper documentation and project report. 31 July - 31 August

Detailed plan[edit]

4 May - 1 June Community Bonding Period
  • Experimenting with Apertium modules.
  • Fixing issues in apertium-apy and html-tools package.
  • Writing some sample code to test various features.
  • Discussing detailed work flow with mentors.
Report for next week’s work plan.
1 June - 8 June Week 1: Setting database for dictionary lookup
  • Setting up the environment for improvement to Apertium website by adding by adding dictionary lookup mode for single word translation that would give synonyms for the translations.
  • Developing database for word table and probabilities(likelihood) of a synonym.
A database with the word pairs and probabilities
8 June - 15 June Week 2: Adding dictionary lookup in python
  • Creating python back-end for looking up the synonyms.
  • Fixing the bugs in the implementation.
  • Improving some of the already existing code.
Working back-end for dictionary lookup.
15 June - 22 June Week 3: Creating dictionary lookup front-end
  • Creating a front-end for the dictionary lookup functionality.
  • Linking the dictionary lookup functionality with back-end.
A user-focused front-end for the dictionary lookup
22 June - 29 June Week 4:Completing the dictionary lookup functionality
  • Adding all the functionalities to the website.
  • Testing the proper working of all feature.
  • Debugging the problems.
  • Creating the documentation.
  • Preparing for the evaluation.
Dictionary lookup feature added to the website.
29 June - 3 July First Evaluation
  • Submitting report for completed work and incomplete work.
  • Getting reviews from the mentor.
  • Generating bug reports.
  • Planning for next phase.
Bug reports
3 July - 10 July Week 5: Reliability Coloring back-end
  • Adding the reliability coloring feature in apertium-apy.
  • Deciding the colors to be used for reliability.
Ranking the synonyms according to the reliability.
10 July - 17 July Week 6: Completing the reliability coloring back-end
  • Complete the reliability lookup back-end.
  • Fixing the bugs in coloring.
Coloring the synonyms according to the reliability.
17 July - 24 July Week 7: Front-end for reliability coloring.
  • Working on improving the front-end when a user uses dictionary lookup along with reliability coloring.
Better UI when using single word translations.
24 July - 31 July Week 8: Updating the website
  • Adding the functionalities in the Apertium website.
  • Fixing the bugs in the implementation.
  • Add changes suggested by the mentors.
  • Preparing the documentation.
  • Submitting bug reports for second phase.
  • Second evaluation.
Implemented reliability coloring of the synonyms in the website.
31 July - 7 August Week 9: Improving language detection
  • Setting up language detection for development.
  • Making language detection work in proper manner.
Report on issues in language detection
7 August - 14 August Week 10: Adding "did you mean?" function.
  • Adding "did you mean?" suggestions on the website if someone chooses unlikely language.
Did you mean functionality implementation.
14 August - 21 August Week 11: Apertium website finalizing
  • Complete did you mean feature with implementation on the Apertium website.
  • Fixing bugs and working on release.
  • Preparing the documentation for the website.
Did you mean functionality added to website.
21 August - 28 August Week 12: Releasing updated Apertium website
  • Releasing the Apertium website with changes.
  • Testing the released website and debugging the issues.
  • Updating Apertium Wiki.
  • Evaluation by mentor.
  • Preparing documentation.
  • Completing all the changes suggested by the mentors.
Release Apertium website for users.
28 August - 31 August Week 13: Wrapping up
  • Releasing the final productions of all the work
  • Going through all of the GSoC work and checking for bugs.
  • Cleaning up the documentation.
  • Reporting unresolved bugs.
  • Future preparation and planning.
  • Final evaluation.
Release final production.

Contribution to Apertium[edit]

I have been contributing to Apertium for quite a while now.

Here is a list of my contributions various Apertium contributions :

  • Issues :
    • apertium-html-tools = 1
    • apertium-apy = 2
  • Merges :
    • Apertium-apy = 2
  • Pull requests :
    • apertium-html-tools = 1 open.
    • Apertium-apy = 1 open

I have been working on the issues in html-tools and apertium-apy under the guidance of my mentor.

Two of my pull request have been merged in which I have :
Added an index page for localhost:2737 in apertium-apy along with unit test written in tornado.
Created source TSV files for the SQL database(with over 20000 lines of code) that convert at build time.

I am working on 2 other pull requests which are still open and involves complex issues. It includes :

  • Finding langNames.db using pkg_resources.
  • A responsive navbar with additional apertium features.

Here you can see my github timeline for contributions in Apertium :



I am a third year student pursuing B.Tech. with majors in Computer Science and Engineering from Indian Institute of Information Technology, Una. I got my first exposure to computers at an age of 8 and since then I have been attached to them. Not only did I perform very well academically in the field of Computer Science but also choose Computer Science for higher education.


I have been studying Computer Science for 7 years now, with working experience in core programming languages such as Java, C++, Python, Javascript. I have been a part of several hackathons at college level. I am proficient in competitive programming and algorithm development. I have worked on several projects and build several professional websites many of which can be found on Github. I have been contributing to open source for quite a while now and have worked on several machine learning models in Python and R. I have also worked as Google Code-in mentor for Apertium this year. Here is my github timeline :


Non-summer of code plans[edit]

Google Summer of Code lies during the summer vacations of the college. I will be able to devote 40 hours per week and more if necessary to Apertium during summer of code. I might have a small vacation plan but that lies in between the Community bonding period and I will be able to manage my work accordingly. I also acknowledge that GSOC is my foremost priority and I won’t be working on any other internship, training or classes if selected for GSOC.


Linkedin : View Profile
Github : View Contributions
CV : View CV