Jupiter Core (EasyDMFollowers)
Contributors
Contents
🎉 Introduction
Jupiter Core (EasyDMFollowers) is a set of library functions that can be used to fetch a list your followers from Twitter using Twitter API, segment them into lists based on their popularity (followers count, tweets count, location, etc) and send targeted Mass DMs to them by creating and tracking campaigns.
Jupiter Core is available as an NPM package which means you can include it in your app built for any platform or web app.
💡 Background
The inspiration for this library came from the bounty contest here hosted by @balajiS. We built this library to submit our entry to the bounty contest.
🧱 Architecture
A decoupled architecture where we have an adapter for a given social media platform (Twitter) and connection to external databases through Sequelize ORM enables us to have flexibility with the DB engine used.
Benefits of this Architecture:
- Any database supported by Sequelize can be used
- Adapters for other social media platforms can be easily developed
- This library shared as an NPM package can be imported to build a native Windows/MacOS app or can be extended into a server with Express or Hapi to be further used by front-end webapps built on React, Angular, etc.
⚙️ Usage
Requirements
Twitter API keys with access permission set to 'Read, write and Direct Messages'. You can register for a twitter developer account here
Dev Setup
- Clone this repository into your local system
- Perform
npm i
- Copy database file from
./archive/db/jupiter.sqlite
to the root folder - Add Twitter API keys in the placeholders within
test.js
file in the root folder - Perform
npm run gulp
- Run
node dist/test.js
- [Optional] run
npx sequelize db:migrate
after initializing a db in sqlite to get the tables and associations mapped into your fresh database
Where to get started?
The test.js file in the src
folder contains test cases for all the methods exposed in the library. To look further into how the methods are defined you can look into the index.js file in the same folder.
Alternatively, you can clone our Jupiter GUI application from its repository here and follow the setup process and test the app. Jupiter Core will be included by default as a package dependency in the GUI app.
📄 License
Jupiter Core is MIT Licensed, as found in the LICENSE file.