About: ThinkUp Roadmap
Clone this wiki locally
Welcome to the ThinkUp roadmap!
This page details the current ThinkUp projects-in-progress. A project will appear here if it involves a series of steps. Individual next actions or TODOs as related to a project will go in the ThinkUp Issues list.
Join the project mailing list to propose additions to this list.
Ongoing Project: Creating New Data Source Plugins
- LinkedIn — API documentation , Status post with comments
- Gmail and Yahoo Mail (OAuth/IMAP)
- What else?
- Google Buzz
Project: Simplify Installation and Upgrades
See notes on this in the Google Summer of Code Ideas Page.
Something to consider as we write the upgrading mechanisms and API: Semantic versioning
Project: Refine the plugin architecture
- Build plugin options interface so that configuration comes out of config.inc.php (Issue #66)
- Give plugins the ability to register tabs on the front end (Issue #103)
- Offer database creation methods so that plugins can make new tables, store and retrieve data from them
To make TU truly multi-service and enable users to build their own features into it, it’s got to be pluggable. There should be allowances for both webapp plugins (data visualizations and custom listings, etc) as well as crawler plugins (new data sources like Facebook and Buzz).
As we build TU plugins, we will continue to refine the plugin architecture.
Here’s an update on the current state of the pluggable architecture:
- All plugin files are now located in a single place, webapp/plugins/.
- Each individual plugin has its own subfolder there, so the Twitter plugin is in webapp/plugins/twitter/.
- Templates for rendering plugin-specific things on the frontend are in a templates subdirectory, ie, webapp/plugins/twitter/view/.
- Classes the plugin requires should be in a lib subdirectory, ie, common/plugins/twitter/model/.
- Right now the only webapp plugin that’s working is the configuration screen.
- There are now tt_plugins and tt_plugin_options tables
- By default, the Twitter plugin is inserted and set to active in the tt_plugins table.
ThinkUp plugins will work like WordPress: you drop a folder into the webapp/plugins/ directory, and it gets listed in the webapp as “Inactive.” Click a link to activate the plugin (insert its row into the db, set is_active to 1, run any relevant installation routines) and the crawler and webapp will execute the methods it registers from there on in.
See also: Plugins: Architecture Wishlist
Project: Expand Documentation
- For users — User guide in progress
- Installation guides for Windows, Mac, and Linux
- Configuration help
- Write user guide to app versions as tagged here
- For developers – Developer guide in progress
- PHPDocumentor class documentation (See Issue #98)
- GitHub help and hints
- Output both JSON and RSS
- Implement Twitter API?
Project: Code Upgrades
- Develop code style guide for both PHP and Smarty/HTML/CSS
- Complete regression tests
- More sanity checks for when objects aren’t initialized, cover all cases
SQL QueriesProject: Optimize
- Using the sql.log to track slow queries, optimize queries to make selects as fast as possible.
Make ThinkUp multi-language, possibly by using gettext() and Smarty. Relevant mailing list thread
Assorted New Features Already in the Issues List
- Capture friends’ Twitter favorites/Facebook likes, add tab/sub-tab displaying those (Issue #20)
- Lists (Issue #17)
- Capture all the lists owner’s Twitter users are on, display this somehow (tag cloud?) The Facebook equivalent is groups
- Sort replies by list membership (show me only replies by people on “my best friends” list or in a Facebook group)
- Geo-location (Issue #21)
- Capture geo tags on tweets when available, fuzz them to change them from a city block to a whole city
- Hashtag/user tracking that’s not the account owner (Issue #23)
- Start/stop capture of hashtagged tweets
- Keyword search/saved searches, evaluate Sphinx, Solr, MongoDB as possibilities (Issue #16)
- Add paging back to see more than just one page of posts (Issue #25)
- Add the ability to remove an authorized account once it’s added (Issue #27)