|
|
Line 1: |
Line 1: |
| Back to [[Labs/Weave]].
| | = Weave Project Ideas = |
|
| |
|
| = Weave Projects And TODOs =
| | Here's a list of ideas for small and fun projects to do on top of / around Weave to spark your imagination. If you're interested in working on any of these, get in touch with us and we can help you get started! |
|
| |
|
| Here's a start. This list is not exhaustive; you may want to check out the [https://bugzilla.mozilla.org/buglist.cgi?product=Mozilla+Labs&component=Weave&resolution=---&order=Bug+Number list of Weave tickets on Bugzilla] for a more well-defined list of tasks.
| | You can also check out the [https://bugzilla.mozilla.org/buglist.cgi?product=Mozilla+Labs&component=Weave&resolution=---&order=Bug+Number list of Weave tickets on Bugzilla] for specific bugs and tasks. |
|
| |
|
| == WebUI == | | == Mobile Integration == |
|
| |
|
| Ability to view bookmarks. Adding bookmarks or otherwise managing them would be nice too. Viewing history would be a plus.
| | Weave has built-in support for Fennec, the mobile version of Firefox, but the hardware support for Fennec is limited. Native clients for iPhone, BlackBerry, etc. would make it possible to reach those users. |
|
| |
|
| Encryption and decryption in the browser will be quite slow, both RSA and AES are required, the web app will probably need to present progress to the user so they know what's up.
| | Note that full sync clients are not necessary, a possible way to start is just getting data from the Weave cloud and displaying it. |
|
| |
|
| == Server Formats / DB Splitting ==
| | There are three reasons to create a native client instead of a website for mobile phones: |
| | # Weave data is encrypted, so native decryption is very important |
| | # A native client would make it possible to interact with various phone components not exposed to the web (e.g., address book, bookmarks list for browser) |
| | # You can add an app as a top-level icon, generally, but not a site (depending on the specific phone). |
|
| |
|
| The server currently has all data from a given engine (bookmarks, history, etc) all in one big blob. This needs to change to multiple files so that we can share different chunks of data with different people.
| | Of those only the first reason is a deal-breaker. However, by implementing a crypto proxy service it would be possible to have web-based access of Weave data on phones. |
| | |
| Another related project is to split up deltas so they are on separate files on the server, with the filenames being the delta version number. Currently they are all in one file, and that means that adding a delta requires downloading all deltas, appending, then uploading all of them again.
| |
| | |
| == UI Work ==
| |
| | |
| From design to implementation, we need it all.
| |
| | |
| == OAuth Support ==
| |
| | |
| Implement OAuth on the server-side to allow 3rd parties to access your data. This involves creating a registration system for 3rd parties, implementing the OAuth spec (probably in python/django), and creating some basic landing pages for it all to work. ''This has now been added to the roadmap and will be a feature item for the core team for the 0.4 milestone.''
| |
|
| |
|
| == Thunderbird Port == | | == Thunderbird Port == |
|
| |
|
| Thunderbird trunk would be easiest. Chris has some starter code here already, but there's a lot to do, and interesting projects to build on top, sharing data between TB and Fx. | | Thunderbird trunk would be easiest. Chris has some starter code here already, but there's a lot to do, and interesting projects to build on top, sharing data between TB and Fx. |
|
| |
| == Mobile Devices ==
| |
|
| |
| Any project here would be great to see. It can be web-based, and through a separate service that talks to Weave using the 3rd-party API (e.g., OAuth), then transcodes to make content easy to consume on the phone.
| |
|
| |
| == NSS Support ==
| |
|
| |
| We are using OpenSSL at the moment, but we really need to move to NSS. Weave is implemented in JavaScript, and there are currently very few interfaces to NSS from JS. This work involves several sub-projects:
| |
|
| |
| * Ensuring NSS can do all the things we need it to.
| |
| * Putting together a build environment within the Weave extension, so we can build binary components that link to NSS.
| |
| * Creating interfaces (XPCOM) to expose the required NSS functionality.
| |
| * Changing Weave to use these new XPCOM interfaces instead of calling out to OpenSSL.
| |
|
| |
|
| == Additional Data-Type Support == | | == Additional Data-Type Support == |
|
| |
|
| Dictionaries, sessions (or just open tabs if that's too hard), installed extensions, preferences, ... | | Dictionaries, sessions, installed extensions, preferences, ... |
|
| |
|
| == Data Harvesting == | | == Data Harvesting == |