Hello Everyone, I know I'm late for the proposal, but better late than never. I have written a proposal for KDE-Connect for some much needed functionality. Even if my proposal is not upto the mark then I would love to get feedback and I would still work on this features independently(not being a part of GSOC).
P.S: Sorry if some java or c++ syntax words come in the proposal. I have tried my best to avoid them. Proposal: *Organization:* KDE *Project:* KDE-Connect *Abstract:* Mobiles and PCs have become ubiquitous in day to day life and need for communication between them is much needed. There are lots of applications which try to bridge this gap and KDE-Connect stands out at this by seamlessly integrating itself into the KDE Desktop. KDE-Connect has a lot of room for improvement and one of the function which I find important is the ability to control PC (Input Emulation) from the mobile device (mouse and keyboard) and to share files between devices. ------------------------------ *Name**: *Shabaz Ahmed *Email Address**:* shabaz1...@gmail.com *Freenode IRC* Nick: build3r *Mobile number:* +91 9972115447 (Whatsapp or Telegram) *Location (City, Country and/or Time Zone):* Bangalore, India, IST *Linkedin Profile:* http://in.linkedin.com/pub/shabaz-ahmed/42/b4a/810/ ------------------------------ *Proposal Title:* Input emulation, file syncing and voice control support for KDE-Connect. ------------------------------ *Motivation for Proposal / Goal:* I got a similar idea a few months back and I was really excited to work on it . During my research, I found many applications which were almost doing what I had in my mind but when I got to know about KDE-Connect, an open source project, which is similar to my idea, I was really happy that I don't have to start from scratch. Many developers oversee the Google's speech-to-text<http://developer.android.com/reference/android/speech/package-summary.html>( http://developer.android.com/reference/android/speech/package-summary.html) package which is accurate up to 90%, even with my Indian accent (during my tests). My idea is: Why to use our fingers when the smart phone gives us the ability to use our voice? The second functionality of Input Emulation which I want to add to KDE-Connect is also very handy. The smart phone touch screen can be used as a wireless touchpad for the Laptop or PC. Even when the touchpad is not working the smart phone can be used a secondary touchpad, or it could even be used when giving presentations. The third functionality - file syncing, is a much needed one and there are no "proper" apps in the market which gives the desired functionality. In today's life it is crucial to keep the files synced between devices; in places like India and other developing countries where mobile data connection is unreliable and costly, cloud storage will not suffice. So my idea is to keep a shared folder between devices; when some file is put into the folder it gets synced between the devices seamlessly in the background on wifi network. ------------------------------ *Implementation Details:* *File Sync: *For this feature I would add a separate shareable folder on both the PC and the android phone (on the external storage). Whenever a file is added to the folder on the PC or on the phone, the background processes on the device would open up ports and sync the files. I prefer using events instead of polling. I have already developed a similar app which syncs photos taken from any mobile to other mobile running the application on the same network. You can check it out here<https://github.com/build3r/PhotoSync>( https://github.com/build3r/PhotoSync). *Input Emulation*: For the touch pad emulation I can map the gestures to the mouse pointer, basically I send the difference (movement) in terms of X-Y co-ordinates to the server running on PC which will take this data and move the mouse pointer appropriately. I will also add a sensitivity feature in which the user can set the sensitivity of the mouse pointer which I can handle in the mapping function. Single tap would be for left click, tap and hold for right click and two finger drag for scrolling. I would be using Gesture-Detector<https://developer.android.com/training/gestures/detector.html>( https://developer.android.com/training/gestures/detector.html) package for this. *Voice Control:* I have not seen a single application on market doing this. For voice control, as I said above, I'll be using the speech recognition package of android. I would give a list of predefined command such as "Open Browser", "Open Terminal" etc. and this list can also be customized by the user. He can even add new commands for which he must include appropriate shell script on the PC. So basically when the user gives a command (by voice) the Google server returns the string equivalent of it, we match the string with predefined and user defined (in that order) and if it is even a partial match (80%) we send a command to the server on PC side which runs the appropriate shell script. I have started working on the module ( https://github.com/build3r/MobileControl) independently. I just have to work on the KDED to add this functionality. Preferably I'll add a tap and hold button to speak the command in the main activity (kdeconnect-android<https://github.com/build3r/kdeconnect-android>/ src <https://github.com/build3r/kdeconnect-android/tree/master/src> / main<https://github.com/build3r/kdeconnect-android/tree/master/src/main>/ java<https://github.com/build3r/kdeconnect-android/tree/master/src/main/java>/ org<https://github.com/build3r/kdeconnect-android/tree/master/src/main/java/org>/ kde<https://github.com/build3r/kdeconnect-android/tree/master/src/main/java/org/kde>/ kdeconnect<https://github.com/build3r/kdeconnect-android/tree/master/src/main/java/org/kde/kdeconnect>/ UserInterface<https://github.com/build3r/kdeconnect-android/tree/master/src/main/java/org/kde/kdeconnect/UserInterface>/ *MainActivity.java*). ------------------------------ *Tentative Timeline:* *Before 21st April: Start to hack the KDED and start experimenting with various features.* *21st to 1st May: Clear all doubts which may arise during the hacking period.* *1st to 18th May: Make proper community bonding and learn about other new projects at KDE ask mentors and fellow developers for feedback on my project.* 19th May: Start actual development. 19th to 25th May: Implement the Voice Control Feature 25th to 28th May: Test the Module separately. 28th to 30th May: Integrate into KDE-Connect and do Integration Testing. 30th May: Take Feedback 1st to 14th June: Implement Input Emulation. !4th to 17th June: Module Testing. 17th to 22st June: Integration Testing. 23rd June: Release Alpha Version to friends and fellow developers. 23rd to 25th June: Midterm Evaluation. 25th June to 10th July; implement File syncing Feature. 10th July 20th July: Module Testing (Must be tested thoroughly). 20th July to 30th July: integration Testing. 1st August: Release Alpha version 2. 5th August Release: Beta Version. After GSOC: I have other handy features and improvements for KDE-Connect such as improvement of media control as done in this project ( http://homepage.ntlworld.com/mark.harman/comp_wifiremoteplay.html), Shutdown, restart and logoff buttons, a file browsing feature. ------------------------------ *Working:* I have no commitments during this summer and can easily devote 45hrs per week. I have no problem in coding at night, in fact I prefer working at night. *About Me:* *My name is Shabaz Ahmed and I'm 20 years old. I'm currently studying at M. S. Ramaiah Institute of Technology pursuing B.E in Computer Science and Engineering. I'm technology enthusiast and like develop and use softwares. I'm open source user and big promoter (set up an open-source community at my college). I have been KDE user for past 1 year and I find KDE community just awesome (people are eager to help). I have good skills in C, C++, JAVA and HTML. I'm a keen interest in competitive programming (I head the coding club of our college). I haven't actually developed open source softwares but I have contributed to the community by reporting bugs (VLC and Ubuntu) and helping out people on discussion boards.* *Why Should I be Selected?:* *Once something gets my interest and I start working on it with this interest then I forgot the world (won't sleep or eat) until I complete it or perfect it or until I'm satisfied by the results (Has happened to me lot during competitive programming contests). I won't promise that I would deliver a world class app during this summer but I do promise that I would deliver what I have told at least in a working condition.* *Junior Jobs:* I will be sincere at this, I had taken up a junior job to fix a bug but due to various reasons I couldn't complete it and inevitably I had to drop it. But I have developed quite a few applications independently (most of them Android). You can find them here: https://github.com/build3r?tab=repositories
>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<