Giter Club home page Giter Club logo

infomanc3r / twitter-archiver-beta Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 1.0 478 KB

(deprecated by Twitter API update) A tool for archiving tweets onto an AWS DynamoDB database. Backend built using the Spring framework for Java along with Gradle, Dagger, Apache and the Twitter API. Frontend built using React and JavaScript.

Java 54.34% HTML 8.84% CSS 16.93% JavaScript 19.88%
apache-tomcat dagger gradle restful-api spring apache-http aws-dynamodb twitter-api axios css html5 javascript react

twitter-archiver-beta's Introduction

Twitter-Archiver-0.3

A simple program built using the Spring framework for Java that allows archiving tweets onto an Amazon Web Services DynamoDB database. The frontend is built as a single-page-application using React, and communicates to the REST API on the backend using Axios.

Setup

There are three steps in order to set up the Archiver.

1) Set up AWS credentials

There must be valid AWS credentials in the .aws folder in the home directory ~/.aws, typically in the form of file named config structured like below:

[default]
region = us-west-2
output = json
aws_access_key_id = accessKey
aws_secret_access_key = secretKey

Replace with the preferred region and the keys for the desired AWS account.

2) Set up application.properties file and add to .gitignore

Next you must create/edit an application.properties file that will store a bearer token - an alphanumeric key provided by the Twitter Developer Portal and required to access the Twitter API.

The application.properties file is used to set various properties in the Spring framework. In this case, it will allow us a place to store the bearer token that we can avoid publishing to git. The only field required is shown below:

bearer.token=${BEARER_TOKEN:bearerToken}

⚠️ ADD THE FILE TO YOUR .gitignore! Be sure you ignore this file in whatever version control system you are using in order to avoid publishing secret keys publicly. ⚠️

3) Build the front-end

You must have Node Package Manager installed to properly build the frontend. Once it is installed, navigate to the TwitterArchiver/frontend folder in your command line and run the following commands:

npm install
npm run build

Running

The backend sets up a local Apache-Tomcat server (default port set to 8080) and is run from the App file in the src.main.java package.

The frontend is run by navigating to the TwitterArchiver/frontend folder in your command line and running the following command:

npm start

Once both components are running you should be able to view the app on the default frontend port at http://localhost:3000/

The current beta release prompts for a converted user id (roadmap includes allowing Twitter handle input directly). You can convert the Twitter handle (what is shown in the users profile URL) of the user you wish to archive tweets from into a converted user id at this website.

Roadmap

  • Format README
    • Check this box
  • Merge frontend
  • Archive Tweets by User
    • Add user input with Twitter handle directly instead of requiring user to convert it
  • Archive Followers by User
  • Archive Likes by Tweet
  • Package frontend and backend into one-click solution (.jar? .exe?)

twitter-archiver-beta's People

Contributors

infomanc3r avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

klikus

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.