Name: Digvijay Singh
Email ID: Singh.firstname.lastname@example.org
Background: I am a fourth year student from Indian Institute of Information Technology, Allahabad, studying for my Bachelor of Technology in Information Technology. I am proficient in C, C++ and Java. Currently I am working as an Intern for the Kernel Team at Juniper Networks. I have worked on Android apps during my academic projects, where I developed an app for Gait Authentication using the data recorded from the Accelerometer sensor. You can find the code here:
I was the network administrator of my institute for 3 years where we usually found ourselves relying on Debian GNU/Linux machines to run our squid proxy server. Debian is preferred more because its packages are well integrated. Working for Debian is an excellent opportunity to give back to the world of open source.
Links to my projects can be found at:
Project Title: Debian Android Application
Project Details: The purpose of this app is to represent the data in the BTS, PTS, and UDD in a way that is useful in a mobile context. With the increasing popularity of the smart phones, which are much user friendly and portable, we require an Android app that can provide all the information available on the online resources to a user on his mobile device.
The main requirement of such an information providing app is to have a easy to use, intuitive and interactive User Interface. Besides having an excellent UI, the app also requires looking after the technical aspect i.e. it should be faster, secure and less bugs. For creating such an app for Debian, I have few specifications that the app shall have:
* The Package Tracking System
The Package Tracking System lets you follow almost everything related to the life of a package. It will fetch the data from the online resources using the REST web services of Debian API calls. Other than that it should have the subscription module for keeping track of updates on a particular package of interest to a user. The notification can be in the form of email or under the new alert section on the app. It will have a favorite section to remember the URL of the specific source package which can be directly accessed.
* The Bug Tracking System
The bug tracking system will have a UI to show details of all the bugs and their status with proper tags or severity etc. for example refinement on the basis of time, location, archive bugs or raw bugs. It will have the same subscription module to keep track of an interested bug. The Bug tracking system will also incorporate a UI to report the bugs and Spam reports in the bug logs. The UI will be an easy to use interface where it will try and make it easier for the user to choose the package and version for which it is being filed, scenario of occurrence, adding tags and severity levels etc. It will also keep track of all the reported bugs by the user.
* The History Module and Caching model
The history module is an interface for history of testing, popularity testing and history of uploads etc. that could be easily retrieved from the UDD. The caching model is based on local storage of the items through SQLite or a procedure similar to a cache manifest of HTML5. It will be useful in saving user’s item of interest and keep track of the failure on a POST due to connection problems. A cron job can be scheduled for automatically posting the required item after the connection resumes.
* Other features that this app should include are:
Help: it is highly important and will help user to better understand the method of using the app.
Since the amount of data being transferred is so high we have to try and do it without draining the battery a lot.
Other UX ways to provide a good ux environment like a timeline based view of the bug reports or the package updation.
Synopsis: The plan is to create an Android app that will provide all the information and resources like Package tracking system, Bug tracking system, Ultimate Debian database that debian developers utilize to properly maintain their packages. The Android app will be divided into mainly three main modules, for PTS, for BTS, and for UDD. The PTS will allow you to follow the life of package by the means of an easy to use and intuitive user interface, with subscription options available. The BTS has mainly two sub modules one for tracking a bug based on tags or severity, or fix status while the other for reporting a bug or a spam in the bug log using an interactive user interface that has the capabilty of a cache to store reports offline using either SQLite or XML data file. The final module for UDD is a history module that is linked to the other two modules and stores the history of updates testing, popularity testing etc. The app will come with a help feature which will have various interactive FAQ's as well so that a new user can get a better understanding. Besides that with the excess amount of data transfer the app will also try and focus on saving the battery. The focus of the app would be to have user friendly UI's and UX ways such as a timeline based view of the bug reports or package updation.
Benefits to Debian: As mentioned earlier that with the increasing popularity of the smart phones, which are much user friendly and portable, it has become a requirement to have an android app which provides a developer a cheaper and portable means of finding the information displayed in a much more precise and condensed form. With the help of such an app, debian developers will have an easier and more user friendly access to the abundance of information on Debian resources on a daily basis to maintain their packages.
Deliverables: An Android application that will be distributed either via Google Play store or directly available for download from a Debian website.
April 22 – May 3
- Work on the proposal.
May 3 – May 27
- Conversations with Debian and learning of various tools needed.
May 27 – June 16
- Get to know mentors and familiarize with the resources. Have a project plan in place.
June 16 – August 2
- Coding begins. Work to be completed: PTS module and BTS module with all their functionalities. Create Documentation and commit regularly.
August 2 – September 16
- Work to be completed: UDD module and caching model with integration of all modules into a common working framework. Create Documentation and commit regularly.
September 16 – September 23
- Work to be completed: Unit testing and Unit Integration testing, scrub code and Improve the documentation.
- Submit for the final evaluation.
Other Commitments: Currently I am workin as an intern at Juniper Networks and my internship ends at the end of May, after that I have no other commitments till December.
Why Debian? Besides the fact that a wide range of organisations and individuals use Debian, I think it is the best packaging system in the world, easy to install and upgrade. I will get a chance to contribute to the opens source community. Moreover, to be a part of such a dedicated and talented team, would be immensely educational and fruitful to my career in the long run.