Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Build Status Coverage Status Version Twitter

Lightning is a real-time social media REST API, to be used in conjunction with Thunder. Lightning provides methods to request data from various 3rd party social media and cloud services, including Facebook and Twitter.

Running Locally

  • Requirements
    • Java 1.8
    • Maven 3.3.3

First, fork this repo on GitHub. Then, clone your forked repo onto your machine.

$ git clone YOUR-FORK-URL

Compile and package the source code with Maven.

$ mvn package

Run the packaged jar with the server argument.

$ java -jar application/target/application-*.jar server

Lightning should now be running on localhost port 9000.


There is a Python testing script available in the scripts directory. To run this script, make sure you are in the base lightning directory and run the following command.

$ python scripts/

There are multiple optional command line arguments for the testing script. These are described in the table below, along with their default values. Additionally, when running the script from the command line, adding the -h option will display a help message with all optional arguments.

Flag Description Default Value
-h --help Display a help message. ----
-e --endpoint The endpoint to connect to lightning with. http://localhost:9000
-m --email The email to make requests for.
-p --password The password of the user that matches the username. Should not be a hashed password. password
-a --auth The basic authentication credentials in the form {app_name}:{app_secret} application:secret
-v --verbose Provide more output information. False

When adding new endpoints to lightning, be sure to include a new TestCase for that endpoint in the script.

Another testing option is to use HTTPie. See the wiki for each individual command.