Inspiration

We noticed that some people's posting styles on Schoology receive much more positive reactions than others, or get many more people engaged. We wanted to help people improve those, by letting them analyze the statistics of positivity, objectivity, and engagement on their Schoology posts, so they can figure out what works and what doesn't.

What it does

Run main.py to start it. It'll open a tab in your browser to log into Schoology; log in, and press Approve to let this program access your data--don't worry; it stays private on your computer. Once you've logged in, go back to the app window and press any key to begin. Now, you can choose a course or group to analyze the posts of. The Schoology API refuses to work for courses (at least on my computer), but you can choose any group to analyze. Schoology won't let you access any group you're not in, but it has no way to tell which groups you're in, so just choose a group you're already in. Press the button on the bottom of the windo w to analyze the data. On the top of the next screen, choose which metric to analyze--polarity (positivity/negativity; most negative is -1.0, most positive is 1.0), subjectivity (most objective and unbiased style is 0.0, most subjective and biased is 1.0), or engagement (how many different users liked or commented). With the slider bar, you can set ranges; when you analyze the data, it'll graph how many posts are in each range over time. For example, if you're analyzing polarity, and you put the ranges as -1.0, 0.0, and 1.0, it'll show how many posts are in the range -1.0 to 0.0 (negative posts) and 0.0 to 1.0 (positive posts). Smoothing lets you average posts over time.

How we built it

(See built with)

Challenges we ran into

Connecting all the different windows together

Accomplishments that we're proud of

Making the matplotlib graphs and having them show up on the screen

What we learned

How to use machine learning to do text processing and display graphs on a UI using tkinter

What's next for Schoology Sentiment and Engagement Analyzer

Polish and make it more compact

Built With

  • matplotlib
  • python
  • schoologyapi
  • schoolopy
  • textblob
  • tkinter
Share this project:

Updates