[TYPO3-GSoC] Student Proposal: Next Generation List Module

Emre Can GEÇER emregecer at gmail.com
Wed Apr 7 01:19:25 CEST 2010


Hi.

Any critic or advise will be helpful before sending my proposal to GSOC :)

*
*

*Name: *Emre Can GEÇER

*Contact Email:* emregecer at gmail.com

*IM Service, Username:* GTalk, emregecer

*Location:* Izmir, Turkiye

*Languages: *Turkish, English, Japanese

*What languages do you speak?*

Turkish, English
*
University, Semester / Year, Relevant Classes: *Izmir Institute of
Technology, Spring Semester / 2010, 4th grade undergraduate student
*
Programming Languages: *C, C#, Java, PHP, JavaScript, HTML, XHTML, XML,
Scheme, Prolog

*What programming languages do you know, are you good in?*

PHP -> I'm working in a company currently. In there I'm writing Facebook
application. http://apps.facebook.com/celebrityquiz/

        -> Personally, I'm fan of fantasy fiction. I have a website
http://www.kuyutorman.com/ There, I've written a Middle Earth
library<http://www.kuyutorman.com/ortadunya/>
.

        -> I'm familiar to phpBB for a long time.

JavaScript -> My Facebook application depends on AJAX logic. So I'm using
JavaScript and jQuery.

Java -> We are using Java as our object-oriented programming language in my
university. My Java experience consists of given homeworks which are in
DataStructures, Fundamentals of Programming Languages, Software Engineering
and Building Software Systems.


*Have you contributed to other Open Source projects, which ones?:*

Last summer, I worked in DIVE (Distributed Intelligence Virtual Environment)
lab and with a partner, we translated LEGO NXT's
Firmware<http://mindstorms.lego.com/en-us/support/files/Firmware.aspx>into
Turkish.

http://sourceforge.net/projects/nxtturkish/


Project Proposal:
*Next Generation List Module*

*Fast search*

Content management systems that are on web usually consists of many and many
pages. Each click on CMS creates a server load and when we consider a
web-site which has thousands of users, each request from user to server
becomes significiant for bandwidth and traffic. AJAX is a general known way
to reduce server load.

For example; if a search is needed in a web page, it is not a good way to
reload the page with same template, same PHP or (any language) functions. It
is essential to use AJAX if we have a static template and  if we only need
to refresh a local part of an HTML.

In TYPO3's admin panel, Admin Loaded Extensions Page, Admin Logs, Admin
Tools: Configurations and more pages which has a textbox and provides search
functionality. It will be more efficient that search results is shown
without page refresh.


*Introduce an ultra-flexible filter*

For more efficient filtering, MySQL procedures and views can be written.
Filtering over stored procedures are more useful and efficient than
filtering over query which is used over and over again. In the example of
goal definition, a procedure called ShowUsersByRegistrationDate(param1,
param2) can be created and with a help of a parameter. param1 and param2 can
be dates which we want to filter users in param1 and param2 interval.

*
Remove the CSV export part from the list view* & *Integration of other
export types*

Exporting can be used in many different places of TYPO3 such as users, web
pages, logs etc. CSV export is currently specific exporting type in TYPO3.
CSV export operation can be transformed into generalized Exporting logic,
and all backend pages could export the info which is on screen. Exporting
should not be only with CSV; PDF, XML and Excel formatted documents can be
created with Exporting.

For PDF creation, open source FPDF <http://www.fpdf.org/> can be used.

It can also be considered that, TYPO3's structure can be print out as an XML
format theorically, where it is necessary.

*Introducing in-place-editing & Drag-Drop Sorting
*

In-Place-Editing is a part of AJAX branch of project. Like
this<http://tool-man.org/examples/edit-in-place.html>project,
in-place-editing can be done where it is necessary with the help of
true AJAX requests. Drag-drop sorting needs to send AJAX requests too. When
ordering is changed by user, this act should reflect DB. With using tool
like this <http://tool-man.org/examples/sorting.html>, drag&drop sorting can
be accomplished.

*UI refactoring & speed improvements while loading the module*

Caching, query quality and database structure should be checked whether they
are in the most efficient way they are able to.


*Additional Idea*

Nowadays an end user should consider social network websites when he/she
creates a content, material, document or etc. "Sharing buttons" become
existed in many different platforms such as blogs, CMSes and even wiki's. It
can be an essential idea that when user creates a page, he / she can add
share buttons to publish the content of page in different social network
platforms such as Facebook, FriendFeed, Buzz etc.


*Benefits for TYPO3:*

AJAX development and MySQL refinements can increase the performance of
TYPO3. It can be accepted that, using AJAX where necessary saves click, time
and server load. Generalizing Exporting operations will make TYPO3 more
modular. In-place-editing and Drag&Drop operations will make TYPO3 more
user-friendly which is one of our desires.



*How will TYPO3, its community and / or its users benefit from your project?
*

This project is intended to be as a development on performance and easing /
decreasing users' time to spend on creating a CMS with TYPO3.



*What's the goal, what will be available at the midterms, what at the end?*

The goal is to send each deliverable on time and finishing all jobs.



More information about the TYPO3-gsoc mailing list