Summer of Code/2016/Journal Rethink

< Summer of Code‎ | 2016
Revision as of 07:14, 20 March 2016 by Abhijit (talk | contribs)

About Me:

  • What is your name?

My name is Abhijit Patel and I am a 2nd year undergraduate student at Dhirubhai Ambani Institute of Information and Communication Technology, Gandhinagar, India.

  • What is your email address?

abhisandhyasp.ap@gmail.com

  • What is your Sugar Labs wiki username?

Abhijit

  • What is your IRC nickname on irc.freenode.net?

AbrahmAB

  • What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)

My first language is Gujarati . I am also fluent in English, Hindi and Marathi.

  • Where are you located, and what hours (UTC) do you tend to work? (We also try to match mentors by general time zone if possible.)

I am located in Gandhinagar, India. The time zone is Indian Standard Time (UTC + 5:30). I am planning to work 5:00 to 14:00 (UTC) but is adjustable. As I don't have any other commitments this summer I could surely manage my time and be active when the mentors are available.

  • Have you participated in an open-source project before? If so, please send us URLs to your profile pages for those projects, or some other demonstration of the work that you have done in open-source. If not, why do you want to work on an open-source project this summer?

I am new to open source.The idea of “anyone could contribute code” is just splendid. Developing a piece of software that would be used by millions of people by coordinating with other developers all round the globe, is something that has always fascinated me.

Sugar learning platform is an example of how technology can be used to impart education. Contributing to the open-source project under sugar labs would indirectly contribute to educating a few more children. Nothing else could match this joy.

About my Project

  • What is the name of your project?

Journal Rethink

  • Describe your project in 10-20 sentences. What are you making? Who are you making it for, and why do they need it? What technologies (programming languages, etc.) will you be using?

Journal Rethink is to enhance Journal such that students could use it as a platform to do their project-work.

The listed features can be used for making Journal as a platform for working on projects.

Shared mini-journal:

The present Sugar Journal shares only single instance of an activity with a group of participants. A need is to make Journal support sharing of multiple instances of one or more activities among the same group like for Maths Project group.

For this a feature of “Shared project having multiple Journal Entries(A mini-journal)” would be added under this project. On sharing a project , a new shared and synced mini-journal would be initiated. This idea of mini-journal can be implemented by creating one single instance which has instances of all the activities to be shared.

In short, When users opens the Journal they see a list of mini-journals. When they click on the mini-journal, they see a list of activities that are shared with the same participants under the same project in the mini-journal (same layout as journal today).

Start a new entry or Add New Item:

Under the mini-journal feature another feature of adding more instances of activities directly from Journal by just using the feature of “Add Item”. At first the student or user will be forced to title the entry he is adding. Than a File-Chooser view of Home-view displaying the list of activities would pop-up from which user would select the activity to start working in.

Integrating Chat Activity in mini-journal:

As for every project work needs discussion among the group members. Integrating the chat activity in this mini-journal would give a place for discussion for all the members of the mini-journal.


Something more that would improve user experience :  

Icon View for Journal:

Journal is in list view today. The Icon View would make searching through images much more engaging and efficient. A prototype of this Icon View is created in the below link.

Implemented Icon View (in my prototype [1]):

Journal as Service:

Journal currently is used as an Sugar Activity.The Journal is always running as a service when the Sugar is running. It is accessible by also by the Journal button in the frame.

Sort alphabetically:

Adding another “Sort by name” feature only when the view is switched from Journal to the external device like USB.

This sort would be best in case when external devices are connected. For if the users want to copy some files from external device to their device in such case sorting by name would be preferable than sorting by date or size.

Technologies or languages used are python and Gtk.

For the mini-journal I will be using telepathy implementations like the Salut (for link-local XMPP ) and Gabble that are being used by sugar.

UI design for Mini-Journal below with the details of new tools:


  • What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; tell us what you will be working on each week. (As the summer goes on, you and your mentor will adjust your schedule, but it's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.


Period Task
Get thorough with Journal code. Analyze its working. I have basic understanding of the code because of my previous contributions to sugar.
Till 18 May - Analyze more on how collaboration works in sugar.

- Develop an outline of the project and more discussion with my mentor Sam and other community members regarding the features that are to be implemented.

19 May to 23 May Begin coding for “Add New Entry” tool.

- Design a Pop-up Box to give title.
- Create a File Dialog/Chooser View of HomeView.

24 May to 8 June Start developing the “Share Project” tool.

- Create a mini-journal instance that will be shared. - Develop this Mini-Journal instance to handle the instances of other activities for sharing.

9 June to 24 June - Test for collaboration of mini-journal.

- Write test cases that can be furthur used for testing. - Send patches of the feature completed and get feedback from community on the features that are implemented.

25 June to 26 June Prepare for mid-term evaluation.

The major features listed above would be implemented till mid-term.

27 June to 28 June Midterm Evaluation
29 June to 5 July Buffer Week
6 July to 9 July Analyze the feedback and clean up the code.
10 July to 16 July Integrate the Chat activity in mini-journal.
17 July to 23 July - Finish up the small features.

- Complete the Icon view for Journal. - Implement “Sort alphabetically” mainly for the list of files of the mounted devices like USB. - Convert Journal Activity to Sugar Service.

24 July to 7 August Discuss with Sam and other community members on the current progress made and get a few more ideas that could be implemented in a short span of time.

Implement them.

8 August to 15 August - Improve code efficiency

- UI improvements - Thorough Testing - Fix relevant bugs

16 August to 22 August - Merge the changes to the source code of Journal.

- Documentation and Update the wiki page of Journal, describe the new features that are added. - Add comments that will help further development.

21 August to 24 August Final Evaluation

Convince us, in 5-15 sentences, that you will be able to successfully complete your project in the timeline you have described. This is usually where people describe their past experiences, credentials, prior projects, schoolwork, and that sort of thing, but be creative. Link to prior work or other resources as relevant.