Line 39: |
Line 39: |
| | | |
| My project in short will add advanced backup-restore, cloud sync and easy sharing features for the sugar journal. The following are the features in detail: | | My project in short will add advanced backup-restore, cloud sync and easy sharing features for the sugar journal. The following are the features in detail: |
− | #'''Add selective and multiple backup-restore:''' User can select part of the journal to be backed up or restored directly from within the backup page. Also can make multiple backups and select any among them to restore from. Metadata for each Journal entry will store the list of dependencies and library objects, which will be downloaded again as needed (and, as available). <br /> <u><i>Why?</i></u> Backups will be specific and save unnecessary wastage of storage space. Replace the ineffective way to store Journal images with the risk of running out of local space. It will enable specific journal entries to be distributed by the teachers as tutorials without hampering the existing Journal of students. | + | #'''Add selective backup-restore:''' User can select part of the journal to be backed up or restored directly from within the backup page. Metadata for each Journal entry will store the list of dependencies and library objects, which will be downloaded again as needed (and, as available). <br /> <u><i>Why?</i></u> Backups will be specific and save unnecessary wastage of storage space. Replace the ineffective way to store Journal images with the risk of running out of local space. It will enable specific journal entries to be distributed by the teachers as tutorials without hampering the existing Journal of students. |
| #'''Add system to backup and restore from school servers (XSCE):''' Now backup can only be stored and restored from devices, but this feature will add school servers to the options. <br /> <u><i>Why?</i></u> <br /> | | #'''Add system to backup and restore from school servers (XSCE):''' Now backup can only be stored and restored from devices, but this feature will add school servers to the options. <br /> <u><i>Why?</i></u> <br /> |
| #*The existing (ds-backup) option on OLPC OS is not an effective method because it cannot be easily restored. (from what I understand) | | #*The existing (ds-backup) option on OLPC OS is not an effective method because it cannot be easily restored. (from what I understand) |
Line 50: |
Line 50: |
| #'''Easy sharing of Journal items based on above server frameworks:''' When server frameworks like XSCE and cloud are available, their utility can be increased by adding features where children can share any item with others in just few easy clicks. The GUI will be indifferent to the framework being used in the background even though it will provide options, if both are present at the same time. | | #'''Easy sharing of Journal items based on above server frameworks:''' When server frameworks like XSCE and cloud are available, their utility can be increased by adding features where children can share any item with others in just few easy clicks. The GUI will be indifferent to the framework being used in the background even though it will provide options, if both are present at the same time. |
| | | |
− | <u>Technologies:</u> I will use python and its libraries for the main backend along with GTK+ for the GUI and graphics generator like Inkscape for the icons. For the different server integration, I am planning to use use server specific cli, apis, libraries or scripts like “owncloudcmd” for ownCloud, “RClone” that supports many cloud services like Google Drive, Amazon S3, Openstack Swift / Rackspace cloud files / Memset Memstore, Dropbox, Google Cloud Storage, Amazon Cloud Drive, Microsoft One Drive, Hubic, Backblaze B2, Yandex Disk, The local filesystem and tools like rsync for XSCE school-servers. I will also use polkit for permissions and symbolic links. | + | <u>Technologies:</u> I will use python and its libraries for the main backend along with GTK+ for the GUI and graphics generator like Inkscape for the icons. For the different server integration, I am planning to use use server specific cli, apis, libraries or scripts like “owncloudcmd” for ownCloud, “RClone” that supports many cloud services like Google Drive, Amazon S3, Openstack Swift / Rackspace cloud files / Memset Memstore, Dropbox, Google Cloud Storage, Amazon Cloud Drive, Microsoft One Drive, Hubic, Backblaze B2, Yandex Disk, The local filesystem and tools like rsync for XSCE school-servers. I will also use polkit for permissions and symbolic links. If I finally use rclone for cloud sync, then I might learn and use go programming language in which it is made or use pexpect to run its cli. |
| | | |
| | | |
Line 66: |
Line 66: |
| *Look for various different ways to approach the project. | | *Look for various different ways to approach the project. |
| *Discuss with mentor(s), OLPC members, XSCE members and if possible the people who work down there to tailor the project to the perfect needs and flow. | | *Discuss with mentor(s), OLPC members, XSCE members and if possible the people who work down there to tailor the project to the perfect needs and flow. |
| + | *Draw a detailed roadmap on how I will implement each feature. |
| *Learn any required skill I may be missing. | | *Learn any required skill I may be missing. |
| *Design GUI according to the flow as discussed above and create icons as required required. | | *Design GUI according to the flow as discussed above and create icons as required required. |
Line 76: |
Line 77: |
| | 23 May-29 May | | | 23 May-29 May |
| | | | | |
− | *Begin coding for the specific backup-restore feathttps://wiki.sugarlabs.org/go/File:Gameoversnake.pngure. | + | *Continue the development of the selective backup-restore feature on which I already have done some work.[https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 link] I plan to finish at least 90% of this feature on this week. |
− | *Add the multiple backup-restore feature to it, whose prototype has been made by me already. | + | *Try to match my style of coding with the existing code by reviews and proper study of the code. |
| |60 hours a week (summer vacations) | | |60 hours a week (summer vacations) |
| | | |
Line 92: |
Line 93: |
| | | | | |
| *Finish off the XSCE server feature. | | *Finish off the XSCE server feature. |
− | *Relatively free week to act as buffer if required or start the next weeks work. | + | *Relatively free week to act as buffer if required or start the next week's work. |
| |60 hours a week (summer vacations) | | |60 hours a week (summer vacations) |
| | | |
Line 98: |
Line 99: |
| | 13 June-20 June | | | 13 June-20 June |
| | | | | |
− | *Finalize the cloud integration for ownCloud and majority of the third party providers like (Google Drive, Dropbox, Amazon S3), whose prototype has been made by me already. | + | *Finalize the cloud integration for ownCloud and majority of the third party providers like (Google Drive, Dropbox, Amazon S3), whose prototype has been made by me already [https://github.com/ManashRaja/cloud-sync-demo link]. |
| *Testing and code documentation | | *Testing and code documentation |
| *90% as per functionality of the project will be complete | | *90% as per functionality of the project will be complete |