Difference between revisions of "GSoC Brainstorming"

From GeeklogWiki
Jump to: navigation, search
m (there was a useful forum discussion about an e-commerce plugin a while ago - added link)
(translations idea has its own page now)
 
(29 intermediate revisions by 2 users not shown)
Line 1: Line 1:
These are new and not fully fleshed-out ideas for the [[Google Summer of Code]]. Contributions welcome!
+
== New Ideas ==
  
* Site Migration for PostgreSQL and/or MS SQL
+
'''Please note:''' These are new and not fully fleshed-out project ideas for the [[Google Summer of Code]]. We think that these would be useful additions to Geeklog, so we are interested in project proposals based on these ideas. In the state that they are outlined here, though, they would require more work to turn them into a proper proposal. You can use them for inspiration for a project proposal of your own.
* Database Migration: Switch from Postgres to MySQL or MS SQL or the other way around
 
* E-Mail Subsystem: Geeklog sometimes has to send out a lot of emails. Instead of sending them all at once (and running into timeouts), we could queue them and send them out in batches. This queue should allow for other job types as well.
 
* Facebook Connect: Allow users to login to a Geeklog site with their Facebook Account. Could become part of the [[SoC socialnetworking|Social Networking Features]] Project.
 
* Multi-site Setup: Run several websites off of one codebase. There's a [http://geeklog.fr//wiki/doku.php/hack:geeklog-multi-sites-1.5.0 hack] for that, but it's a pain for upgrades.
 
* Admin toolbox: A collection of mini-plugins for admin tasks (e.g. reset stats, change a default setting for all users, etc.). Should have super easy install, e.g. just drop (upload?) a file in a predefined directory.
 
* Migration from/to other systems is always a hot topic. How could we make that easier?
 
* Multi user blogs. Geeklog can handle blogs of several users, actually, if you give one topic to a user then it is almost unlimited. There are a few existing discussions on the forum and also feature requests concerning the improvement of user blogs. E.g. read only topics, using GL for a large site with many users. Basically it is a native function of GL but it need some improvement.
 
* New Calendar Plugin - Our current calendar plugin is, to say the least, lacking in lots of important features. Tries to enhance the calendar to add these features doesn't seem feasible from prior experience. A new calendar plugin could have the following features:
 
** Support for "site wide events", "user events" and "group events".
 
** Moderation for submission of site events. Ability to submit an existing "user event" as a site wide or group event.
 
** Ability to share personal calendars with other users.
 
** Ability to import, export and perhaps sync using the iCal format.
 
** Ability to create recurring events.
 
** Have an efficient implementation (especially important when implementing recurring events)
 
** Support for event reminders.
 
** Invitations and attendance tracking.
 
* Add shopping cart and/or e-commerce functionality to Geeklog (in the form of a plugin). Using an existing open source shopping card or e-commerce web application would probably be a good idea, but the result should be fully integrated with Geeklog's security model ([http://www.geeklog.net/forum/viewtopic.php?showtopic=74449 related forum discussion])
 
  
As we flesh out these ideas, they will be moved to their own pages and linked to from our [[Google Summer of Code|GSoC Start Page]].
+
 
 +
=== Multi-Site Setup ===
 +
 
 +
Out-of-the-box support to run several websites off of one codebase. There's a [[Multi-Site Setup|hack]] for that, but it's a pain for upgrades and has unresolved issues with shared resources like files (favicon, XML sitemap, ...) and resources (images in articles, user photos, ...).
 +
 
 +
=== Staging Support ===
 +
 
 +
When making significant changes to a site, you don't want to do those on your "live" site, possibly disrupting its service. So you would set up a second site with pretty much the same setup as the original and make the changes there first.
 +
 
 +
How could Geeklog (possibly the install script?) support such a setup? E.g. syncing changes back and forth.
 +
 
 +
=== Migration ===
 +
 
 +
'''Migration from/to other systems''' is always a hot topic. How could we make that easier? We don't want to lock in users into Geeklog, so both import and export should be supported.
 +
 
 +
Things like [http://www.geeklog.net/forum/viewtopic.php?showtopic=68851 the mtimport format] and [http://en.wikipedia.org/wiki/Content_Management_Interoperability_Services CMIS] come to mind.
 +
 
 +
=== Alternative WYSIWYG Editor ===
 +
 
 +
Integrate '''Aloha Editor''', replacing FCKeditor/CKEditor as the "advanced" (WYSIWYG) editor in Geeklog.
 +
 
 +
As [http://eight.pairlist.net/pipermail/geeklog-devel/2011-January/005270.html discussed], this is probably not enough work to keep a student busy for 3 months. For a proper GSoC project, this would need to be expanded upon.
 +
 
 +
=== Semantic Web ===
 +
 
 +
Go '''Semantic Web'''. This is a somewhat vague idea: Use available building blocks such as Apache Stanbol (see [http://www.geeklog.net/article.php/iks-workshop-amsterdam Report from the IKS Workshop in Amsterdam]) and the Aloha editor (see [http://semantic-editor.org/ Semantic Editor]) to add semantic information to articles.
 +
 
 +
Possible uses: SEO, better linking between articles (also see [http://www.geeklog.net/comment.php?mode=view&cid=14099 What's Related]).
 +
 
 +
A student working on this project should have a better idea of what "semantic web" is than the author of these sentences ...
 +
 
 +
=== Mass-E-Mail Support ===
 +
 
 +
Implement an '''E-Mail Subsystem''': Geeklog sometimes has to send out a lot of emails. Instead of sending them all at once (and running into timeouts), we could queue them and send them out in batches. This queue should allow for other job types as well.
 +
 
 +
=== Admin Toolbox ===
 +
 
 +
A collection of mini-plugins for admin tasks (e.g. reset stats, change a default setting for all users, etc.). Should have super easy install, e.g. just drop (upload?) a file in a predefined directory.
 +
 
 +
=== Multi-User Blogs ===
 +
 
 +
Geeklog can handle blogs of several users. Actually, if you give one topic to a user then it is almost unlimited. There are a few existing discussions on the forum and also feature requests concerning the improvement of user blogs. E.g. read only topics, using GL for a large site with many users. Basically it is a native function of GL but it need some improvement.
 +
 
 +
=== Read-Only Mode ===
 +
 
 +
Switching a site to '''Read-only mode''': Sometimes, it's time to close a site. You could take it offline entirely, but that would remove (possibly still useful) content from the web. Instead, it would be nice to have an option that disables all options to log in, sign up, add or edit content, etc.
 +
 
 +
=== Undo ===
 +
 
 +
Implement an '''Undo Function''': Currently, as soon as you click on "save" for an object (story, block, user, ...) the old value or status of the object is gone and overwritten with whatever you changed last. It would be nice to have the ability to go back to a previous version when needed.
 +
 
 +
This could possibly be expanded to a full-fledged revision control or something like the [http://wiki.geeklog.net/index.php?title=GSoC_Brainstorming&action=history history] function of MediaWiki.
 +
 
 +
There are already some hooks in place to help implement this, see [[PLG_itemSaved]], although they are not yet implemented everywhere.
 +
 
 +
=== Articles Plugin ===
 +
 
 +
Articles (also called ''stories'') are built into Geeklog. There's no good reason for this, other than that it has always been like that. The idea here is to move all article support to a plugin. In addition to it being more consistent, Geeklog would also become more modular and you could disable articles in order to use Geeklog only as a web framework.
 +
 
 +
A big concern with this idea is backward compatibility due to the necessary change of the URLs of all the articles on a site. This would need to be addressed in a way such that it also works for sites that can not use URL rewriting.
 +
 
 +
Note that this idea is not new and even somewhat controversial. It may also not as easy to implement as it may sound at first.
 +
 
 +
 
 +
== Leftover Ideas ==
 +
 
 +
This is a list of other ideas for projects for the [[Google Summer of Code]] that have been tossed around in previous years but did not seem so important at this point in time.
 +
 
 +
* [[SoC_WebDAV_API|WebDAV API]]
 +
* [[SoC_content_translation_service|Google Translation API]]
 +
* [[SoC_web_analytics_api|Implement Open Web Analytics]]
 +
* [[SoC_css_foundation_classes|Implement a theme based on the YUI CSS Foundation Libraries]]
 +
 
 +
If you plan to apply for one of these projects you should provide a good use case. Otherwise, these ideas could serve as a starting point for your own project idea.
  
  
 
[[Category:Summer of Code]] [[Category:Development]]
 
[[Category:Summer of Code]] [[Category:Development]]

Latest revision as of 15:28, 29 March 2013

New Ideas

Please note: These are new and not fully fleshed-out project ideas for the Google Summer of Code. We think that these would be useful additions to Geeklog, so we are interested in project proposals based on these ideas. In the state that they are outlined here, though, they would require more work to turn them into a proper proposal. You can use them for inspiration for a project proposal of your own.


Multi-Site Setup

Out-of-the-box support to run several websites off of one codebase. There's a hack for that, but it's a pain for upgrades and has unresolved issues with shared resources like files (favicon, XML sitemap, ...) and resources (images in articles, user photos, ...).

Staging Support

When making significant changes to a site, you don't want to do those on your "live" site, possibly disrupting its service. So you would set up a second site with pretty much the same setup as the original and make the changes there first.

How could Geeklog (possibly the install script?) support such a setup? E.g. syncing changes back and forth.

Migration

Migration from/to other systems is always a hot topic. How could we make that easier? We don't want to lock in users into Geeklog, so both import and export should be supported.

Things like the mtimport format and CMIS come to mind.

Alternative WYSIWYG Editor

Integrate Aloha Editor, replacing FCKeditor/CKEditor as the "advanced" (WYSIWYG) editor in Geeklog.

As discussed, this is probably not enough work to keep a student busy for 3 months. For a proper GSoC project, this would need to be expanded upon.

Semantic Web

Go Semantic Web. This is a somewhat vague idea: Use available building blocks such as Apache Stanbol (see Report from the IKS Workshop in Amsterdam) and the Aloha editor (see Semantic Editor) to add semantic information to articles.

Possible uses: SEO, better linking between articles (also see What's Related).

A student working on this project should have a better idea of what "semantic web" is than the author of these sentences ...

Mass-E-Mail Support

Implement an E-Mail Subsystem: Geeklog sometimes has to send out a lot of emails. Instead of sending them all at once (and running into timeouts), we could queue them and send them out in batches. This queue should allow for other job types as well.

Admin Toolbox

A collection of mini-plugins for admin tasks (e.g. reset stats, change a default setting for all users, etc.). Should have super easy install, e.g. just drop (upload?) a file in a predefined directory.

Multi-User Blogs

Geeklog can handle blogs of several users. Actually, if you give one topic to a user then it is almost unlimited. There are a few existing discussions on the forum and also feature requests concerning the improvement of user blogs. E.g. read only topics, using GL for a large site with many users. Basically it is a native function of GL but it need some improvement.

Read-Only Mode

Switching a site to Read-only mode: Sometimes, it's time to close a site. You could take it offline entirely, but that would remove (possibly still useful) content from the web. Instead, it would be nice to have an option that disables all options to log in, sign up, add or edit content, etc.

Undo

Implement an Undo Function: Currently, as soon as you click on "save" for an object (story, block, user, ...) the old value or status of the object is gone and overwritten with whatever you changed last. It would be nice to have the ability to go back to a previous version when needed.

This could possibly be expanded to a full-fledged revision control or something like the history function of MediaWiki.

There are already some hooks in place to help implement this, see PLG_itemSaved, although they are not yet implemented everywhere.

Articles Plugin

Articles (also called stories) are built into Geeklog. There's no good reason for this, other than that it has always been like that. The idea here is to move all article support to a plugin. In addition to it being more consistent, Geeklog would also become more modular and you could disable articles in order to use Geeklog only as a web framework.

A big concern with this idea is backward compatibility due to the necessary change of the URLs of all the articles on a site. This would need to be addressed in a way such that it also works for sites that can not use URL rewriting.

Note that this idea is not new and even somewhat controversial. It may also not as easy to implement as it may sound at first.


Leftover Ideas

This is a list of other ideas for projects for the Google Summer of Code that have been tossed around in previous years but did not seem so important at this point in time.

If you plan to apply for one of these projects you should provide a good use case. Otherwise, these ideas could serve as a starting point for your own project idea.