This project is in VERY early stages of development and is nowhere near where the final goal. Due to this, the scope is broad we encourage new ideas
💪such as new sources/methods for gathering data and processing it!
Having the ability to predict events and summarize what is happening around you is powerful. While this kind of project has been done before, either by governments or companies, an open source solution shaped by the community with the modular ability to extend data specific to the user's needs simpily dosen't exist (with the ease of access).
The goal for ID is to be scalable, utilizing modern data analysis methods such as machine learning, to present the user with accurate calculations guessing future events (or even what's happening at the current time). An end result would be a stunning UI displaying relevant results, ease of use (anyone with an above average computer can use the software) and excellent analytics - with good sources of information to feed it. These are just some crucial components for the success of ID.
In the meanwhile, a reasonable example of usage could be: ID seeing the influx of social media coverage on #GameOfThrones and concludes this is hype regarding the release of season 8.
The current program is split into three parts:
Currently, the web server consists of live updating content (using Ajax) such as a Twitter Feed, Sentiment Scatter Plot, and Hashtag Pie Chart. This is just for proof of concept and the future UI would not display such raw data.
Step 1) Clone the Repo
git clone https://github.com/SillySam/ID.git cd id python3 -m pip install -r requirements.txt
Step 2) Configure
Before you can run the software you need to add API keys into the
Getting your keys
Twitter API Firstly you'll need to get file a API request with Twitter to use this. Once the application is completed, create an App, then click 'details', followed by the 'Keys and Tokens' tab, containing all necessary keys (Access token & access token secret may need to be generated). Copy and paste your keys into the
config.pyfile and run!
Note: To ensure that the software complies with Twitter's Terms and Conditions, the database file
id.dbmust be deleted within 24 hours of creation. In the future, the software will store the tweet's URL instead (which complies with the terms).
uClassify Right now this is needed for Sentiment Analysis but is only temporarily! Go to uClassify to get a key. Removing this API from the project and replacing it with our own trained model is a high priority.
. (root dir)
id.py - The main program itself (what the user runs)
config.py - User's personal credentials to access essential APIs
id.db (generated on run) - The data collected from APIs
analyse.py - Analyses the data
gather.py - Through various methods, data collection happens here
app.py - Server's main file - all web responses are handled here
/templates - HTML/Frontend stuffs
/static - CSS and JS files (assets for UI)
Please jump on-board and offer your skills!
Feel free to make suggestions (by opening an issue) or submitting pull requests. As mentioned before, this project is just at the beginning stage and with some input and traction from the amazing GitHub community, this will be give the average person access to insightful and powerful information.
And yes, the code at this moment is quite simple and the structure isn't extensible so if you want to take another approach (E.g total file restructure), let me know why and I'll probably agree with you - nothing is concrete, and when striving to be the best software around, it's important to listen to all suggestions to make it perfect.