Inspiration
Many students may develop an aversion towards reading if they are consistently presented with text that is too difficult for them. Crystal solves this issue by allowing students to filter through news articles by their grade level to find suitable material for their level. In addition, it exposes students to current events in a manner that they can understanding, helping them to become informed citizens.
What it does
Our web application, Crystal, is a clean and user-friendly news source that provides the users with news articles on their level of reading, taking into account their grade, sentiment, and desired level of subjectivity vs objectivity to provide them with the best overall experience. We strive to have students enjoy reading instead of having it feel like a chore.
How we built it
We used Flask for the backend, MongoDB for the database and basic HTML, CSS and JS for the frontend. Through the use of New York Times API for data, we were able to collect a dataset which we could use Coleman Liau Readability Index to accurately assign a score to each article that reflects the difficulty of vocabulary and comprehension. We could then sort these articles and allow the user to filter through them seamlessly. We also used the Python library TextBlob to assign each article a score for the sentiment and subjectivity, giving the user additional factors that they can filter their news with.
Challenges we ran into
One challenge we ran into was getting the application from our local host the web using Heroku, which involved us modifying some of the code. We had issues with Tensorflow crashing when trying to learn a sentiment analysis model due to an issue with the GPU and the cuDNN, so we chose to use TextBlob instead.
Accomplishments that we're proud of
We are also proud of the overall user interface and theme of the app, as it runs smoothly and is a large improvement over the aesthetics of our previous projects.
What we learned
We learned many things, including the Coleman Liau Readability Index and TextBlob. In addition, we gained familiarity in creating HTTP requests in both Python and JavaScript.
What's next for Crystal
In the future for Crystal, we would like to find more APIs of different news organizations to expand the scope and variety or our articles. In addition, we hope to implement more advanced sentiment and subjectivity models.
Log in or sign up for Devpost to join the conversation.