User:Qll/Calendar Review: Difference between revisions
< User:Qll
Jump to navigation
Jump to search
(Start. Add Overview, Source Code section and general app review details.) |
(Add Permissions description to the review.) |
||
Line 14: | Line 14: | ||
* [https://github.com/lightsofapollo/notamd NotAmd]: An extensible loader system, used to load the calendar's dependencies | * [https://github.com/lightsofapollo/notamd NotAmd]: An extensible loader system, used to load the calendar's dependencies | ||
* [https://github.com/visionmedia/page.js page.js] ([https://visionmedia.github.io/page.js/ Documentation]): An Express-(Framework)-inspired client-side router | * [https://github.com/visionmedia/page.js page.js] ([https://visionmedia.github.io/page.js/ Documentation]): An Express-(Framework)-inspired client-side router | ||
==== Permissions ==== | |||
Requested permissions and their uses: | |||
* systemXHR: Used to fetch CalDAV resources from (arbitrary) remote servers (js/ext/caldav.js) | |||
* settings (readonly): - | |||
* alarms: Used to start the application in intervals to synchronize all calendars and maybe other uses | |||
* browser: Used for an OAuth authentication flow (js/oauth_window.js) | |||
* storage: The calendar app is using an IndexedDB to store appointments, alarms and similar (js/db.js) | |||
* desktop-notification: (Most likely) used to notify the user about upcoming events and failed synchronization attempts (js/notification.js, js/controllers/alarm.js, js/controllers.error.js) | |||
* audio-channel-notification: To tell the audio channel manager to adjust the notification channel if a user presses volumeup/-down in the calendar (js/app.js) |
Revision as of 18:24, 19 June 2014
App Review Details
- App: Calendar
- Review Date: 2014-05-11-2014-07-07
- Review Bug: [1]
Overview
Architecture
The app uses a custom Model View Controller (MVC) framework, templating system and storage layer.
Source Code
The source code of the app is hosted at GitHub, as part of the gaia repository. All external libraries are located at js/ext/ (relatively to the root of the app). The following external libraries are used:
- CalDAV: Loads and parses CalDAV from remote servers
- jsical: Parses iCalendar data
- NotAmd: An extensible loader system, used to load the calendar's dependencies
- page.js (Documentation): An Express-(Framework)-inspired client-side router
Permissions
Requested permissions and their uses:
- systemXHR: Used to fetch CalDAV resources from (arbitrary) remote servers (js/ext/caldav.js)
- settings (readonly): -
- alarms: Used to start the application in intervals to synchronize all calendars and maybe other uses
- browser: Used for an OAuth authentication flow (js/oauth_window.js)
- storage: The calendar app is using an IndexedDB to store appointments, alarms and similar (js/db.js)
- desktop-notification: (Most likely) used to notify the user about upcoming events and failed synchronization attempts (js/notification.js, js/controllers/alarm.js, js/controllers.error.js)
- audio-channel-notification: To tell the audio channel manager to adjust the notification channel if a user presses volumeup/-down in the calendar (js/app.js)