depiktor is a full-stack SPA, which keeps you on top of technology trends via the Twitter API. Using the technologies listed in the 2020 StackOverflow Developer Survey, Depiktor queries Twitter for the number of mentions of those technologies every hour and saves the count to display it interactively.
You can find the live version here.
- ChartJS
- React
- CSS
- Express
- Sequelize
- PostgreSQL
- NodeJS
- Jest
- Supertest
- Jasmine
- Mocha
- Twitter Developer Account
- Registered Twitter app
- Node, npm, and PostgreSQL
- Download a copy of the repository on your machine.
- In your running PostgreSQL instance:
- Create a DB with the name
depiktor_dev - Seed the DB by running
node create_technologies.js - Run
npm installin the client and server folders.
- Create a
.envfile in the server folder like this:
TWITTER_CONSUMER_KEY=YOUR_TWITTER_CONSUMER_KEY
TWITTER_CONSUMER_SECRET=YOUR_TWITTER_CONSUMER_SECRET
PG_DATABASE_USER=YOUR_PG_DATABASE_USER
- Run
node background_worker.js, the DB will be populated with data every hour.
- Navigate to
client/src/services/ApiClient.jsx. - Follow the instructions to load mock data.
- In the server folder run
node start. - In the client/src folder run
npm start. - View the results in the browser. 📈
- In the client folder run
npm test, tests will be updated as you save files - In the server folder run
npm test, tests will be updated as you save files
- Have two background workers populating one half of the DB to avoid going over the Twitter API limit.
- Refactor
controller.jsinto acontroller.jsand aview.jsto separate concerns. - User can create a new tab and input their own search terms.
- User view their custom search terms when logged into their profile.
- Add a test suite.
- Mobile friendly.
- Make available offline via PWA.
- Train an NLP model to detect technologies in their correct context. Discard mentions of, for example, 'Angular' when they are not in the context of the Angular framework.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
