A new database model for unification of OPIE/GPE PIM data using SQLite with import/export features to text and iCal formats
Link to code
Student name
Student's member profile on PlanetSoC
Mentor's name
Mentor's member profile on PlanetSoC
Description
Basically, I want to sync my iPaq running GNU/Linux with Google Calendar and any other webcalendar I find. :)
See the application and link for further info for more stuff.
Proposal
Application Title: A new database model for unification of OPIE/GPE PIM data using SQLite with import/export features to text and iCal formats
I'm working on a more detailed project documentation at http://www.nec.fct.unesp.br/marcos_umino/soc.html, please visit link soon for more up to date information. I've rewritten the whole document.
Expected time allocated on project:
20 hours per week every month until project completion, even more approaching deadlines.
My resume is listed at http://www.nec.fct.unesp.br/marcos_umino/resume.html, so this space can be better used to application discussion.
I didn't submit any other application and didn't participate at 2005 Summer of Code.
Project Familiarity:
I manage all my contacts, tasks, calendar and notes in my PDA. Migrating to Familiar was a big costy step. Both OPIE/GPE PIM apps still lose ground to comercial applications found on WinCE. Also, data is not easily migrated to/from them.
The easiest path would be thru text import/export. Not only it is easy to code, but it is very flexible, as GNU has tons of programs to do text transforming on files.
I've subscribed to several mailing lists at hh.org, and I'm browsing archives searching for discussions around PIM data.
Both OPIE and GPE use SQLite 2 as backend. This is a big plus, but they manage data differently. To unify both, I must find a 'smallest minimum multiplier' so no project will lose features in transition. I want to offer the new backend as an alternative to the existing ones and of course, offer tools for migration to new engine.
The current plans involve using SQLite3 as new engine, which I hope is a 'selling point' to call users to test and use the new implementation.
It has been commented that this project may involve more than one mentor, as it involves 2 big environments (OPIE/GPE). This application will need work with both communities so users will accept and interested in testing the new backend. It is important to develop backup procedures to avoid data loss. What I find more important is that this application will cover all aspects of open source development, and there is good chance to see work from this application improved after project conclusion.
Project Details:
Objective: Project and Implement a common database for GPE/OPIE PIM applications with text and iCal import/export features.
For the moment, I'd like to highlight the following project points:
1 - New unified SQLite3 database backend, offered as alternative to existing ones.
2 - Specially tailored tools for export to text, in well-known formats (TBD, perhaps CSV as a start) so data can easily be imported in popular applications like Google Calendar, MS Outlook, Mozilla. This necessarily must be done for each existing DB backend and the new one. This means a total 4 tools for export.
3 - New tool for import from text to new format. Also, there is possibility to develop same import tools to other backends, but not relevant to current application.
4 - iCal import/export tool. At first this will be a simple program to import/export data from iCal to new DB. At a second-phase, GPE/OPIE interfaces must be written. And at a third-phase, option at each PIM app must be given to allow periodic updates from iCal servers. Also there is space for planning upload to server, although I don't expect the timetable will allow such feature right now.
While I'm exploring these 4 main features, I'd like to say there is space for several tools. Groupware support is a very important feature in PDA application, since users that require PDA generally do so because they cannot organize their own lifes with just a plain paper agenda.
I'm working on a detailed timetable, visible on
http://www.nec.fct.unesp.br/marcos_umino/soc.html#timetable. I hope to discuss the timetable and deliverables with mentors and offer a updated and resumed version here ASAP.
1- Wk 1: Understand how GPE/OPIE store data. (done, gpe and opie uses sqlite2, opie also supports own xml format)
2-Wks 2 and 3: Implement export to text (CSV) for both GPE and OPIE PIM data. Used also as simple backup.
3- Wks 4 - 6: Create new model for data storage using SQLite.
4- Wks 7 - 8: Create import from text to new data storage, mapping fields.
5- Wk 9 - 12: Import/export from iCal format. This is a new idea. It will allow to enter urls like in Google Calendar and see other people/projects calendars into PIM apps. Also expect support for Todo app. Perhaps will implement as opensync plugin, but I plan to integrate it at least into GPE, if possible, on both. 3 weeks is ballpark estimate, probably this is the really interesting idea in this application. I'm using google calendar to manage my students's projects (so they can see it too) and it will be very handy to see all this easily imported/exported to my familiar.
Open source experience:
Besides doing mailing-list participation and updating a few wiki pages, I have no open source development experience. However I do read a lot about open source development, like books from Eric Raymond and I am very eager to do open source development. I intend to present my work on the project during our university computer science week. Even if my application is not accepted due to my 'rookie' level, I intend to do it anyway.
I can already do small coding in GNU/Linux. But I never participated in any group development effort. The 2006 Summer of Code luckily coincides with the beginning of my efforts into open-source development. A few weeks before the start of SoC I was downloading bitbake. I like being active on mailing lists and enjoy sharing experiences with other users. As I'm a teacher to professional school, this serves as example to my students which is another reason I have interest in helping people so I can be a better teacher.
Final thoughts:
I've already learned a lot in the last days about open source development. This Google project is IMO a tremendous catalyst into infusing new blood on open source dev. I'm trying to read everything about last year SoC and I'm worried about presenting a project which will be forgotten or not used, as one mentor already pointed, though I understand this is a risk every open source project have. Also, I guess this should be obvious, but I do not intent on 'grabbing the prize', I'm deeply interested into doing open source development as a professional career choice, and although my application is still being ranked, I consider myself very lucky for at least trying. The prize I'm looking for is far away from SoC, this I hope is my first step.
Link to Further Information
| Attachment | Size |
|---|---|
| accepted.png | 19.51 KB |

