GSoC Proposal for "Click To Dial Popup Window For Linux Desktop"

Name

Naman Tiwari

Contact/Email/IRC

Github: https://www.github.com/namantw/

Debian Wiki: NamanTiwari

Salsa-username: namantw-guest

Email: <namantw@gmail.com>

IRC: namantw (OFTC/freenode)

Timezone: GMT +5:30 (IST)

Background

I am a first-year student at the Indian Institute of Information Technology, Allahabad, India. I am currently pursuing a Bachelor of Technology in Information Technology (Graduation year: 2021).

I fell in love with the idea behind free and open source software the moment I was introduced to it in school. I always wanted to get a chance to contribute and become a part of this wonderful community. I had a course in Python programming in my first semester. I have a good knowledge of Python programming and I am also proficient in C++, Java and Go. I have some experience with pyQt framework (I have used pyQt on Python 3 but I am also comfortable with Python 2).

I plan to give around 7 to 8 hours a day, five days a week but I can be flexible with work hours since I have no other commitments during the google summer of code period. I would also love to continue contributing to Debian after the end of google summer of code.

Co-mentor : Name: Pranjal Paliwal Email: <paliwal.pranjal83@gmail.com>

Location : Allahabad, Uttar Pradesh, India. I plan to work from home. I can also work from my college which is a 15 minutes drive away from my home.

Operating System : My laptop is dual booted with Ubuntu 16.04 LTS and Windows 10 running Debian 9 stretch on VirtualBox.

Development Tools : I use Sublime Text 3 as my go-to text editor and Pycharm IDE (Professional Student edition) and Jupyter Notebooks. I have been using git for a year now.

Internet Connection :I have a stable 15 - 20Mbps internet connection available at home. My college has a high speed broadband with a speed of 75Mbps.

Application Tasks : I made a sample python script which shows a prototype of the dial popup here gist. It can be run using python dial.py <phone number>. It pops up a GUI dialer made with pyQt5.

Project Title

Click To Dial Popup Window For Linux Desktop

Project link : ClickToDialPopupWindowForLinuxDesktop

Project synopsis

This project is aimed at adding a pop-up GUI phone which appears whenever a tel: link is clicked on inside any application in Debian. The pop-up will have basic features like adding contact to phone book, details about the country in which the phone number is registered and another button to save the number to an address book. The application is to be developed as a standalone Python script which will be invoked as a MIME handler. The script will not need to understand how to dial the phone calls: when somebody clicks the "Call" button, the script can run another script such as sipdial in reSIProcate (Page link) or pjsua (Page link) so that in the future more features like sending messages can be implemented.

Deliverables: The result of this project is that clicking a tel: link in GNOME can start a pop-up window. I plan to add the following components in the GUI:

The user will have the freedom to use the program of their choice for calling if the “TELEPHONE” environment variable is set. The phone book would have a search feature.

I also plan to write weekly/fortnightly blog posts about my progress and keep the mentors updated on IRC or any other communication platform about the progress.

Project Schedule


Week 0: Community bonding period

April 23rd to May 14th

Week 1: Write a dummy "tel:" handler

May 14th to May 21st

Week 2: Configure the dummy "tel:" handler

May 21st to May 28th

Week 3: Make a popup window

May 28th to June 4th

Week 4: Place a phone call

June 4th to June 11th

Week 5: Learn to use execvp

June 11th to June 18th

Week 6: Place a phone call

June 18th to June 25th

Week 7: Add phone book feature

June 25th to July 2nd

Week 8: Country

July 2nd to July 9th

Week 9: User configuration

July 9th to July 16th

Week 10: User configuration

July 16th to July 23rd

Week 11: Documentation and installation script

July 23rd to July 30th

Week 12: Packaging

July 30th to August 6th

Beyond GSOC


If I finish ahead of schedule, I will take up the following goals during the summer period itself. However, I plan to do it anyways, after the end of the summer of code if I have enough time. I wish to continue contributing to Debian.

Extra : Google Contacts Integration

I plan to implement a “sync with google contacts” contacts feature using Google Contacts API.

Extra : Sending messages to a number

I also plan to add an option to send text messages. This would require discussion with the mentors.

Exams and other commitments

I will have my university's end semester examinations from 29th April to 7th May, so I will be less active during this time. I do not have any other commitments or examinations in the Google Summer of Code period.

Other summer plans

I have no other plans for summers. I plan to spend the entire summer at home coding.

Why Debian?

I am a fan of free and open source software. I love the fact that Debian provides such a functional and light-weight operating system for free. I had installed Debian on my old laptop and Debian gave it a new life. I currently have a Debian 9 stretch installed on a Virtual box on my main laptop, which I use for playing around with python scripts.

My previous Debian contributions

This will be my first time contributing to Debian. I am relatively new to the open source community in general but the following are some contributions I have made to other projects: Made a command-line calculator in Utlyz-CLI (Page link) Implemented a command line interface application to use Historic Price API to give price of a bitcoin at a certain time in the past in Go language (Page link) A text editor made in Electron I coded from scratch (Page link)

Are you applying for other projects in SoC?

No.