Skip to content

Contributing

Chen Wang edited this page Oct 2, 2026 · 2 revisions

SMM is built on open-source libraries and algorithms, is fully open source, and welcomes contributions of any kind. You can fork any of the repositories, open issues, and create pull requests. To discuss larger ideas or collaborations first, email smm@lists.illinois.edu.

Getting started

  1. Run it locally. There is no hosted instance anymore (the SMILE Playground and NCSA deployments are offline), so follow Run SMILE with Docker Compose to bring up the full stack on your machine. Then use it end to end, from collecting data, through analysis, to exporting results, to get a feel for the workflow.
  2. Pick a repository.
Repository What's in it Language
standalone-smm-smile SMILE web server and UI, including the analysis config files Node.js (Express, Pug)
standalone-smm-smile-graphql GraphQL data server for the social media platform APIs Node.js
standalone-smm-analytics Analysis algorithms, one container each Python
smm-deployment Docker Compose files and Helm chart YAML
standalone-smm-landing Landing page and this wiki HTML/CSS

Ways to contribute to SMILE

Add a new analysis

SMILE currently offers sentiment analysis, NLP preprocessing, topic modeling, automated phrase mining (AutoPhrase), named entity recognition, text classification, and network analysis. You can:

  • bring a new analysis, ideally in Python, although any language that runs in a container works;
  • add an alternative algorithm or improved method to one of the existing analyses.

Start with Adding a New Analysis to SMILE. The Analysis Config File Reference and SMILE Endpoints pages are useful alongside it.

Add a new social media data source

Data collection goes through the GraphQL data server. A new source involves working out:

  • how the platform authenticates and authorizes third-party apps;
  • what its data looks like;
  • the platform's policies on data collection and ownership;
  • a GraphQL schema for it in standalone-smm-smile-graphql.

Other areas

  • UI/UX design of the SMILE interface and the landing page.
  • Testing and monitoring.
  • Deployment: improving the Docker Compose and Helm setups, and running SMILE on other cloud or on-premises platforms.
  • Integrations with other analytics services and tools.
  • Documentation: this wiki is editable by collaborators. Fixes and new pages are welcome.
  • Community engagement: helping researchers discover the tools, and defining standards and workflows for bringing in new data sources and algorithms.

Clone this wiki locally