HTTPS clone URL
Subversion checkout URL
- "ThinkUp is currently in the process of upgrading"
- [GSoC 2013] Ankit Aggarwal's iOS app proposal
- [GSoC 2013] Bhavesh Sharma YouTube plugin proposal
- [GSoC 2013] Cassio Melo New Insights based on Sentiment and Frequent Pattern Analysis
- [GSoC 2013] Create a VK.com plugin
- [GSoC 2013] Muhammad Sumon Molla Selim's Localize ThinkUp Proposal
- [GSoC 2013] Nadeem Shaik's YouTube Plugin Proposal
- [GSoC 2013] Pranjal Prabhash's YouTube Plugin proposal
- [GSoC 2013] Proposal by Pranjal Goswami
- [GSoC 2013] Some new Insights by Joe Mathai
- [GSOC 2013] ThinkUp Youtube Plugin Proposal
- [GSoC 2014] Proposal : Android App & GCM plugin
- About: ThinkUp Inspirations
- About: ThinkUp Roadmap
- About: ThinkUp RoadMap to Version 1.0
- About: Troubleshooting Common Problems and Solutions
- About: User Guide
- About: Working with ThinkUp and Git
- Code Style Guide
- Code Style Guide: CSS
- Code Style Guide: HTML
- Code Style Guide: PHP
- Code Style Guide: Smarty Template Language
- Code Style Guide: SQL
- Configuration: config.inc.php Settings
- Configuration: config.inc.php Settings for Developers
- Configuration: Enable the crawler's verbose developer log
- Configuration: Facebook
- Configuration: Google+
- Configuration: Twitter
- Create a new Youtube Plugin Supan Shah
- Design Patterns
- Designing Maximum Accessibility for ThinkUp
- Developer Guide
- Developer Guide: Data Access Objects (DAO's)
- Developer Guide: File Naming Conventions
- Developer Guide: Get the Source Code from GitHub and Keep It Updated
- Developer Guide: Git Tips
- Developer Guide: How to Change the Database Structure
- Developer Guide: How to Write Great Unit Tests
- Developer Guide: Manually Installing ThinkUp for Development Purposes
- Developer Guide: Pull Request Checklist
- Developer Guide: Setting Up Eclipse PDT
- Developer Guide: ThinkUp for Beginners by a Beginner
- Developer Guide: ThinkUp for Beginners, by a Beginner
- Developer Guide: ThinkUp Screencasts
- Developer Guide: ThinkUp's Model View Controller Implementation
- Developer guide: vim tips
- Front end and back end optimization
- Google Summer of Code 2011 Ideas Page
- Google Summer of Code 2013 Ideas Page
- Google Summer of Code 2015 Ideas Page
- Help: sorry, registration is closed on this thinkup installati...
- Help: ThinkUp is currently in the process of upgrading
- Insight Style Guide
- Installation OpenShift
- Installation: Amazon EC2
- Installation: Dreamhost
- Installation: Local Computer
- Installation: Mac OS X
- Installation: SELinux
- Installation: Windows
- Installing ThinkUp
- Making ThinkUp Accessible
- Plugins: Architecture Wishlist
- Plugins: Developer Guide
- Plugins: How to Build a ThinkUp Plugin
- Plugins: Simple Plugins to Build
- The ThinkUp API: UserNotFoundException
- Think Up Localization Vinh
- ThinkUp and PHPDocumentor (PHPDoc)
- ThinkUp Summer 2011 Mentor Program
- ThinkUp Talks: The ThinkUp Podcast
- Tips for Converting Wiki content to reStructuredText
- Twitter Realtime Plugin
- Twitter Realtime Plugin: Configuring and Running
- Upgrade: AppFog
- ~GSoC 2010: Dwi Widiastuti Installation Simplification and Auto Updates
- ~GSoC 2010: Dwi's Installer Process
- ~GSoC 2010: Ekansh's Geo location Visualization Proposal
- ~GSoC 2010: Google Summer of Code 2010 Ideas Page
- ~GSoC2010: Aditya Patawari's Installation Simplification and Auto Update
- ~GSoC2010: Ankit Ahuja's Smart Playlists
- ~GSoC2010: Ankit Guglani GeoSpatial Visualizations.
- ~GSoC2010: Ankit Guglani Social Network Analysis
- ~GSoC2010: Bharadwaj's Messaging plugins framework Web API
- ~GSoC2010: Cristian Regep Geo Location Awareness and Visualizations Proposal
- ~GSoC2010: Grigoruta Adrian Auto Installer and Updater
- ~GSoC2010: Hitesh's GUI installer (Wamp Xampp) and Updates
- ~GSoC2010: Martin Richard's code refactoring
- ~GSoC2010: msankhala's RSSFeed support
- ~GSoC2010: Ninad Pundalik's Messaging Plugins Framework Proposal
- ~GSoC2010: nmudgal's Data Source Input Plugin
- ~GSoC2010: Prateek Gupta's Proposal for Geo Location Awareness and Visualizations
- ~GSoC2010: Sean Cronin's Quick Install Proposal
Clone this wiki locally
NOTE: We’re making certain assumptions about what your environment looks like and your mileage may vary. If you want to access ThinkUp at a URL other than yourdomain.com/thinkup, or on a subdomain, you’ll have to adjust accordingly.
I’m sure there are errors to be found and clarifications to be made—please help clean this page up!
- You have a Windows computer that is accessible from the internet. For best security, your computer should be up to date with all available patches and updates.
- You have access to an SMTP (mail) server, either locally on your server or accessible via your network. Otherwise, ThinkUp can’t send any email and much of its functionality will be disabled.
- Install Git for Windows (http://help.github.com/win-git-installation/)
- Generate SSH Keys (http://help.github.com/msysgit-key-setup/)
- Install XAMPP (http://www.apachefriends.org/en/xampp.html)
- Get the latest ThinkUp files from GitHub
git clone git://github.com/ginatrapani/ThinkUp.git
- Make a MySQL database
- Edit httpd.conf to point to webapp directory
Register the app with Twitter:
Application Type: Browser
Copy the Consumer key and Consumer secret
- Run the web-based install at
http://yourdomain.com/thinkup/install/and follow its steps
- Authorize ThinkUp to use your Twitter account
- Create a batch file to run crawler automatically
In a nutshell, just follow the instructions for downloading and installing GIT for Windows at http://help.github.com/win-git-installation/ . Don’t worry about any of the installation options – simply choosing all of the defaults during installation will give you a GIT environment that will work just fine with ThinkUp.
Once again, just follow instructions at http://help.github.com/msysgit-key-setup/ . Be sure that it is setup correctly before continuing (i.e.: you can ssh email@example.com and receive a “successful authentication” message).
XAMPP is an nicely packaged and easy to install Apache distribution containing, among other programs, MySQL and PHP, which are necessary for ThinkUp. For the purposes of this guide, we’re going to assume that you’re using XAMPP as your serving platform.
You can download XAMPP from http://www.apachefriends.org/en/xampp-windows.html . Get the basic (not XAMPP Lite) package.
Go ahead and start the XAMPP installation. Simply choosing the defaults will give you all the tools you need to run ThinkUp. Note: by default, the XAMPP will say that it will install at c:\ . However, this will actually create the folder c:\xampp and install all files into it. For the rest of this guide, we’ll assume this is where the XAMPP files are.
After the installation is finished, press 1 (start control panel). This opens up the XAMPP Control Panel. (Note: you should also have shortcuts on your desktop to launch the XAMPP Control Panel as well). We’re going to start the Apache and MySQL servers, which are all you need to run ThinkUp. First, start the Apache server. You’ll probably get a Windows firewall warning stating that the program’s trying to communicate to the network. You’ll have the option to allow access to local and public networks. If you want your server to be accessible from the internet (probably yes), make sure the “public” option is selected. Next, start the MySQL server. Once again, you’ll probably get another firewall warning. However, the MySQL server does NOT have to be accessible on the network for ThinkUp to work. Therefore, we’d recommend setting the firewall to block all network access.
ThinkUp needs PHP’s Curl extension to work. However, by default this extension is disabled. Enabling it is easy, though. Just open the php.ini file in your favorite text editor (located at c:\xampp\php\php.ini, if you’re following the defaults. Just find this line:
And replace it with this:
Go back to the XAMPP Control Panel, and stop Apache. Then, start it again.
One last thing – We highly recommend you read XAMPP’s security notes, especially if you’re going to be live on the internet.
First, create a folder on your hard drive to store the files from git for ThinkUp (say, c:\git). Then, start Git Bash. At the command line, change into your directory …
… and type this command to get the ThinkUp files:
git clone git://github.com/ginatrapani/ThinkUp.git
You now have all of the latest ThinkUp files in the folder c:\git\ThinkUp .
The default installation of XAMPP includes phpMyAdmin, a web-based MySQL client. We’ll use this to create and setup the database for ThinkUp.
- In a web browser, go to phpMyAdmin: http://127.0.0.1/phpmyadmin/
- From the main page, create a new database (we’ll call it tt_thinkup_db for the rest of this guide).
- In the left panel, select the ThinkUp database; then in the right pane, click the Import tab.
- In the box “File to Import”, browse for the ThinkUp database creation script (c:\git\ThinkUp\webapp\install\sql\build-db_mysql.sql). Then, press Go. This creates all of the tables and such ThinkUp needs.
Now we need to create a special database user to access the ThinkUp database
- Go back to phpMyAdmin’s home screen.
- Click the Privileges tab to create a new user for accessing the database (say, thinkup). Give this new user a good password. (Leave all of the Global privileges checkboxes blank, then press Go.
- In the Database-specific privileges section, choose tt_thinkup_db, then select the SELECT, INSERT, UPDATE and DELETE privileges and press Go.
This one’s a bit tricky. If you followed this guide closely, your Apache installation is separate from your ThinkUp installation. This is great for security reasons, but as it stands right now your webserver can’t access the ThinkUp webfiles. Now, you could just manually copy and paste the files from the webapp directory to apache’s web directory (c:\xampp\htdocs\), but you’d have to do this every time ThinkUp is updated. A better solution would be to edit Apache’s configuration file to point automatically to the webapp directory.
For example, lets say you want your ThinkUp installation to be accessible at http://www.yourserver.com/thinkup/ . With your favorite text editor, edit Apache’s configuration file (c:\xampp\apache\conf\httpd.conf) and add these lines at the end:
<Directory "c:/git/ThinkUp/webapp"> Order allow,deny Allow from all </Directory> Alias /thinkup "c:/git/ThinkUp/webapp"
Now, restart Apache. Your ThinkUp installation webfiles are now accessible to your webserver.
Since you’re hosting ThinkUp yourself, you have to register it as an app with Twitter. Head over to Twitter’s “Applications page” http://twitter.com/apps/new and click on Register a new application. For Application Name put something unique like “John’s ThinkUp.” Enter anything in Description (it just can’t be blank). For Application Website put the URL you set up in the previous step, e.g.
http://yourdomain.com/thinkup. For Application Type choose Browser. For Callback URL put e.g.
http://yourdomain.com/thinkup/plugins/twitter/auth.php. For Default Access type, choose
Read-only. Leave the checkbox next to
Use Twitter for login unchecked. Finally, click on Save.
On the next page Twitter will give you some information. Copy down the Consumer key and the Consumer secret for later.
Go to your ThinkUp installation website (i.e.:
Make sure “Check System Requirements” shows everything as green. If so, press “Next Step” to go to, well, the next step.
Under “Create your ThinkUp Account,” enter your name, your email address and a password for your ThinkUp webapp. Under “Connect ThinkUp to Your Database,” enter your database information from step 5. Assuming you’re using the installation defaults, you don’t need to change the values under “Advanced Options.” Press “Next Step.”
If everything installed correctly, you received a congratulations message. Congratulations! You’ll receive an email to activate your account. Activate it and log into your ThinkUp site (i.e.:
Now, you’ll want to enable the Twitter plugin. Click the “Configuration” button in the upper right corner, then click “Twitter” on the next page. This will bring up the configuration page for Twitter. Enter the Consumer key and the Consumer secret from step 7. Press “save options.”
If you’ve entered your secret and key correctly, you should now see a page with a button that says “Authorize ThinkUp on Twitter.” Click on the button to set up your Twitter account and jump through the hoops to authorize ThinkUp to access your Twitter account.
ThinkUp won’t do anything until the crawler has run. To run it manually, go to a Windows Command Prompt and from the ThinkUp crawler directory (e.g.
cd c:\git\thinkup\webapp\crawler\) run the crawler like this:
c:\xampp\php\php.exe crawl.php firstname.lastname@example.org yourttpassword
Nothing will happen for a few seconds, and then you’ll be returned to the command prompt. When you go back to ThinkUp in your web browser you should see some of your recent tweets. That means it’s working!
Because Twitter limits the number of data requests an app makes each hour, it probably won’t be able to crawl all of your tweets and replies in one go. This means you’ll have to crawl periodically to get all of your tweets, and to get new tweets. Instead of having to enter the crawl command every hour, you can tell Windows to do it automatically for you.
First, you’ll need to create a “batch” file that Windows’ scheduler will refer to. Create a new text file (say, c:\git\thinkup.bat) and add these lines:
cd c:\git\thinkup\webapp\crawler\ c:\xampp\php\php.exe crawl.php email@example.com yourttpassword
Now, go to Windows’ Scheduled Tasks control panel and create a new task using the batch file you created above. By default, you can’t schedule tasks to run more than once daily, but you can get around that: http://support.microsoft.com/kb/226795
(Note: this assumes you already have PHP and MySQL installed and running correctly on your server. Yes, that’s a pretty big assumption,
but you can google lots of tutorials to help get you started. Also, I’m using IIS and the SMTP server built into Windows – you may need to install these if they’re not already running on your system)
- After you’ve downloaded the web files and set up permissions for the ThinkUp files, you need to grant MODIFY permissions on your
template_c directory (webapp/template_c) to your internet guest account (SERVER_NAME\IUSR_SERVER). Read and write privileges are not enough. Otherwise, you’ll get lots of strange and frustrating errors from Smarty :)
- The SMTP server built into Windows 2003 doesn’t like “complex” email addresses. I had to modify line 59 in register.php from:
“From: \”Auto-Response\" <notifications@$host>\r\n" .
To: “From: notifications@$host\r\n” .
- In your php.ini file, to enable curl and gd, uncomment the lines “extension=php_curl.dll” and “extension=php_gd2.dll”
- To schedule the crawler, I created a one-line .bat file:
By default, you can’t schedule tasks to run more than once daily, but you can get around that: http://support.microsoft.com/kb/226795