[GSoC 2017] Calendar Application
Introduction
Hello I'm Akshay (IRC/Trac: akshay, GitHub: AkshayAgarwal007) from Kolkata, India. I would be working on developing a native Calendar Application for Haiku as a part of Google Summer of Code 2017. My mentors for the project are Scott McCreary and Kacper Kasper. I am very excited for this project.
Why a Calendar Application? Isn't there already one?
A Calendar application is a must have application for any operating system and would be beneficial for end users as well as developers. Haiku doesn't have a calendar application yet. There are a few existing 3rd party Calendar apps out there, but none are close to a simple and elegant Calendar app that an end user would like to use, with all the necessary features a modern Calendar app should have.
Also the existing ones (Borg, A-Book, Organizer, Eventual) have issues of their own and hence I would be writing one completely from scratch, referring them wherever required.
Features the Calendar app would have
I reviewed a bunch of Calendar apps on other platforms and came up with a subset of necessary features to be implemented:
- Create, modify and synchronise events.
- Set event reminders.
- Display Day, Month Calendar views.
- Set event color.
- All day long events, recurring events.
- Google Calendar integration.
- A minimal look with intuitive UI design.
Future features
These are the features that I plan to work upon after GSoC:
- Support for alternate calendars.
- Categorize events.
- Search for events.
- Week, Year View.
- Timeline view for a single day/week.
Google Calendar Integration
This is one of the most important feature the Calendar app would have. It is a must have so that the users can get their events synchronised between devices and other platforms they use. Since almost all the calendar apps have a Google Calendar integration, this would be the best way to achieve event synchronisation.
A Google Calendar API client would be written using Haiku APIs and would be integrated into the application.
Wireframes
These are some tentative designs for the Calendar application.
Add Event
- I would be coming up with a final design for this, incorporating all the options required for supporting recurring events and an event color picker.
Day View
- All day long events would be pinned to the top.
- Right click on an event will open a context menu with three options (View, Modify, Delete)
- View will open the entire event details in read only mode. Modify and Delete options would also be available inside View mode.
- Using the calendar widget in the side panel, user can navigate through months. Buttons to navigate one month at a time can be replaced by a dropdown to simply select month+year for user's ease.
Month View
- Clicking on a particular day in month view will show events of that day in side panel.
- Again the buttons to navigate one month/year at a time can be replaced by a dropdown to simply select month+year for user's ease.
I would be finalising the user interface design in the upcoming week and suggestions from you all would be highly valuable for the same.
Icons
I plan to use the following icons in the application (icons be Michele Frau [Zumi] are really cool):
- Main Application icon:
http://zumi.xoom.it/myhaiku/3rd%20party%20apps/schedule%20r3.png - Add Event toolbar icon:
http://zumi.xoom.it/myhaiku/btoolbar/document%20open%20recent.png - I would be needing a Calendar toolbar icon similar to one in the wireframes.
Apart from this I would also be working on to improve date/time classes in Haiku as required for the application.
References
Akshay's blog
- [GSoC 2017] Calendar Application: Final Report
- [GSoC 2017] Calendar Application: Weekly Report 7
- [GSoC 2017] Calendar Application: Weekly Report 6
- [GSoC 2017] Calendar Application: Weekly Report 5
- [GSoC 2017] Calendar Application: Weekly Report 4
- [GSoC 2017] Calendar Application: Weekly Report 3
- [GSoC 2017] Week 3-4 of Community Bonding
- [GSoC 2017] First two weeks of Community Bonding
- [GSoC 2017] Calendar Application