A react Javascript website built with NodeJS and MySQL

Visit The Website View Code

About this project

Using the NewsAPI, TheWeeklyExtra aggregates news articles from various news outlets. Using a NodeJS server, calls to the API are handled with HTTP requests which are then sent to the client to be rendered/styled by react js and CSS/Material-UI. Those requests include; getting new articles, getting articles by category, getting articles based on search queries.

Users are also allowed to save articles to a ClearDB database provided by Heroku. However, these routes are protected from unauthorized users. Users register using token-based authentication provided by JWTs which is then saved to the browser using cookies. Once registered and saved into the ClearDB, users can save any article into their profile.


  • NewsAPI
  • NodeJS/Express
  • JWT
  • MySQL/ClearDB
  • ReactJS
  • CSS/Material-UI
  • Heroku


--Why did i build it?

Right before the inception of this site (which would have been around October 2020), there was uncertainty about the future. What will life be like after a pandemic? When can we expect a vaccine? What will the job outlook be like? Are the NY Giants finally going to make the playoffs? All important questions about the future. As a way to keep up with current events, I wanted to keep some tab on national news. However, I didn't want to get my information from one or two news sources nor, did I want to sift through several news outlets. Why? Because I'm lazy. That left news aggregators like Google News or AllTop. However, I didn't like the UI from either site. I felt there was a little too much going on onscreen, which gave off this feeling of being "cramped." So now I had issues with both single news outlets and news aggregators. Thus, the idea of "hey, maybe I should build my news aggregator" was born! One that had the styles similar to but grabbed from various news sites similar to what Google News does.

However!.... I needed a name. It "needed" to give off a feeling like your reading a newspaper. You know, the one that people might get at the local grocery store once a week. I also want it to give off the same feeling as an older newspaper. The ones where newspaper boys would hold while yelling "Extra!, Extra!, Read all about it!" Why? No reason. I just wanted to give it a feeling of old newspapers turning modern. Wait! "Week," "Extra"....."ExtraWeeklyNews?" No, that doesn't roll off the tongue. Hmmmmm..... Week?, Extra?, "TheWeeklyExtra"..... Perfect.

Problems/Bugs as of now

  • The favicon is really small and low quality

  • Logo should be resized

  • The bookmarked logo disappears after page reload

  • Article pictures and titles are too large on mobile devices

  • Cannot generate JWT refresh tokens, forcing users to login again after a day. This sounds like it would lead to terrible UX and security issues

  • Realtionship between user and saved article should be changd to avoid duplications in MySQL. Two users can save the same article and that article would appear twice in the SQL table. That's probably not a good thing

  • Lack of loading animations or spinners sites doesn't give me the same UX I get when I'm on other news sites. When the page is loading, how do I know if the articles are actually getting rendered? Better feedback could improve experience for users with slower internet

  • Many, many more that I'm not thinking of